File portus.spec of Package portus.2625
#
# spec file for package portus
#
# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: portus
# When you release a new version, set Version and branch accordingly.
# For example:
# Version: 2.0.5
# %define branch 1.0.0
Version: 2.0.5
%define branch 2.0.5
Release: 0.0.1
License: Apache-2.0
Summary: Authorization service and fronted for Docker registry (v2)
Url: https://github.com/SUSE/Portus
Source: %{branch}.tar.gz
Group: System/Management
%define portusdir /srv/Portus
Patch0: version-git.patch
Requires: ruby >= 2.1
Requires: timezone
Requires: net-tools
%if 0%{?suse_version} >= 1210
BuildRequires: systemd-rpm-macros
%endif
BuildRequires: fdupes
BuildRequires: ruby-macros >= 5
Requires: rubygem-passenger-apache2
%{?systemd_requires}
Provides: Portus = %{version}
Obsoletes: Portus < %{version}
# Portus-20151120162040 was accidentaly released when it should have been Portus-2.0
# This is the reason why we are obsoleting it
Obsoletes: Portus = 20151120162040
# javascript engine to build assets
BuildRequires: nodejs
%define rb_build_versions %{rb_default_ruby}
BuildRequires: %{rubydevel}
BuildRequires: %{rubygem gem2rpm}
BuildRequires: %{rubygem bundler} >= 1.3.0
BuildRequires: %{rubygem actionmailer} = 4.2.2
BuildRequires: %{rubygem actionpack} = 4.2.2
BuildRequires: %{rubygem actionview} = 4.2.2
BuildRequires: %{rubygem activejob} = 4.2.2
BuildRequires: %{rubygem activemodel} = 4.2.2
BuildRequires: %{rubygem active_model_serializers} = 0.9.0
BuildRequires: %{rubygem activerecord} = 4.2.2
BuildRequires: %{rubygem active_record_union} = 1.1.0
BuildRequires: %{rubygem activesupport} = 4.2.2
BuildRequires: %{rubygem arel} = 6.0.0
BuildRequires: %{rubygem autoprefixer-rails} = 5.2.0.1
BuildRequires: %{rubygem base32} = 0.3.2
BuildRequires: %{rubygem bcrypt} = 3.1.10
BuildRequires: %{rubygem bootstrap-sass} = 3.3.5
BuildRequires: %{rubygem builder} = 3.2.2
BuildRequires: %{rubygem coffee-rails} = 4.1.0
BuildRequires: %{rubygem coffee-script} = 2.4.1
BuildRequires: %{rubygem coffee-script-source} = 1.9.1.1
BuildRequires: %{rubygem crono} = 0.9.0
BuildRequires: %{rubygem devise} = 3.5.1
BuildRequires: %{rubygem erubis} = 2.7.0
BuildRequires: %{rubygem execjs} = 2.2.2
BuildRequires: %{rubygem globalid} = 0.3.5
BuildRequires: %{rubygem gravatar_image_tag} = 1.2.0
BuildRequires: %{rubygem hike} = 1.2.3
BuildRequires: %{rubygem i18n} = 0.7.0
BuildRequires: %{rubygem jquery-rails} = 3.1.3
BuildRequires: %{rubygem jquery-turbolinks} = 2.1.0
BuildRequires: %{rubygem json} = 1.8.1
BuildRequires: %{rubygem jwt} = 1.5.0
BuildRequires: %{rubygem kaminari} = 0.16.3
BuildRequires: %{rubygem loofah} = 2.0.2
BuildRequires: %{rubygem mail} = 2.5.4
BuildRequires: %{rubygem mime-types} = 1.25
BuildRequires: %{rubygem mini_portile} = 0.5.2
BuildRequires: %{rubygem minitest} = 5.7.0
BuildRequires: %{rubygem multi_json} = 1.8.2
BuildRequires: %{rubygem mysql2} = 0.3.18
BuildRequires: libmysqlclient-devel
Recommends: mariadb
BuildRequires: %{rubygem net-ldap} = 0.11
BuildRequires: %{rubygem nokogiri} = 1.6.1
BuildRequires: libxml2-devel libxslt-devel
BuildRequires: %{rubygem orm_adapter} = 0.5.0
BuildRequires: %{rubygem polyglot} = 0.3.3
BuildRequires: %{rubygem public_activity} = 1.4.2
BuildRequires: %{rubygem pundit} = 1.0.1
BuildRequires: %{rubygem rack} = 1.6.4
BuildRequires: %{rubygem rack-test} = 0.6.2
BuildRequires: %{rubygem rails} = 4.2.2
BuildRequires: %{rubygem rails-deprecated_sanitizer} = 1.0.3
BuildRequires: %{rubygem rails-dom-testing} = 1.0.6
BuildRequires: %{rubygem rails-html-sanitizer} = 1.0.2
BuildRequires: %{rubygem railties} = 4.2.2
BuildRequires: %{rubygem rake} = 10.3.2
BuildRequires: %{rubygem responders} = 2.1.0
BuildRequires: %{rubygem sass} = 3.4.13
BuildRequires: %{rubygem sass-rails} = 5.0.3
BuildRequires: %{rubygem search_cop} = 1.0.6
BuildRequires: %{rubygem slim} = 2.0.2
BuildRequires: %{rubygem sprockets} = 2.12.3
BuildRequires: %{rubygem sprockets-rails} = 2.3.1
BuildRequires: %{rubygem temple} = 0.6.7
BuildRequires: %{rubygem thor} = 0.18.1
BuildRequires: %{rubygem thread_safe} = 0.3.5
BuildRequires: %{rubygem tilt} = 1.4.1
BuildRequires: %{rubygem treetop} = 1.4.15
BuildRequires: %{rubygem turbolinks} = 2.5.3
BuildRequires: %{rubygem tzinfo} = 1.2.2
BuildRequires: %{rubygem uglifier} = 2.7.2
BuildRequires: %{rubygem warden} = 1.2.3
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Portus targets version 2 of the Docker registry API. It aims to act both as an authoritzation server and as a user interface for the next generation of the Docker registry.
This package has been built with commit 2.0.5 from branch v2.0 on date Tue, 24 May 2016 11:22:12 +0200
%prep
%setup -q -n Portus-%{branch}
%patch0 -p1
%build
install -d vendor/cache
cp %{_libdir}/ruby/gems/%{rb_ver}/cache/*.gem vendor/cache
export NOKOGIRI_USE_SYSTEM_LIBRARIES=1
export PACKAGING=yes
SKIP_MIGRATION="yes" SECRET_KEY_BASE="assets_precompilation" RAILS_ENV=production bundle exec rake assets:precompile
export IGNORE_ASSETS=yes
# patch landing_page
APPLICATION_CSS=$(find . -name application-*.css 2>/dev/null)
cp $APPLICATION_CSS public/landing.css
# run bundle list to redo the Gemfile.lock
bundle list
# deploy gems
bundle install --retry=3 --local --deployment
# install bundler
gem install --no-rdoc --no-ri --install-dir vendor/bundle/ruby/%{rb_ver}/ vendor/cache/bundler-*.gem
rm -rf vendor/cache
# Remove these files, they are going to be created by portusctl setup
rm config/secrets.yml
rm config/database.yml
%install
install -d %{buildroot}/%{portusdir}
cp -av . %{buildroot}/%{portusdir}
rm -rf %{buildroot}/%{portusdir}/log
mkdir %{buildroot}/%{portusdir}/log
rm -rf %{buildroot}/%{portusdir}/tmp
mkdir %{buildroot}/%{portusdir}/tmp
install -d %{buildroot}/%{_sbindir}
cp packaging/suse/bin/portus_crono %{buildroot}/%{_sbindir}/
cp packaging/suse/bin/portusctl %{buildroot}/%{_sbindir}/
%__install -D -m 444 packaging/suse/conf/portus_crono.service %{buildroot}%{_unitdir}/portus_crono.service
%fdupes %{buildroot}/%{portusdir}
%pre
%service_add_pre portus_crono.service
%post
%service_add_post portus_crono.service
%{restart_on_update apache2}
if [ \! -e "/srv/Portus/config/config-local.yml" ]; then
# First installation of Portus
cat %{portusdir}/packaging/suse/README.install
fi
%preun
%service_del_preun portus_crono.service
%postun
%service_del_postun portus_crono.service
%{restart_on_update apache2}
%files
%defattr(-,root,root)
%{portusdir}
%exclude %{portusdir}/spec
%exclude %{portusdir}/vagrant
%exclude %{portusdir}/Vagrantfile
%doc %{portusdir}/README.md
%doc %{portusdir}/CONTRIBUTING.md
%doc %{portusdir}/LICENSE
%defattr(0640, root, www)
%config(noreplace) %{portusdir}/config/environment.rb
%defattr(-, root, www, 1770)
%{portusdir}/log/
%{portusdir}/tmp/
%{portusdir}/db/
%{_sbindir}/portus_crono
%{_sbindir}/portusctl
%{_unitdir}/portus_crono.service
%changelog