Summary: A Web interface to create projects and repositories, manage access and do code reviews
Name: gitlab-ce
-Version: 8.10.7
-Release: 0.59
+Version: 8.12.0
+Release: 0.74
License: MIT
Group: Applications/WWW
# md5 deliberately omitted until this package is useful
Requires(post,preun): /sbin/chkconfig
Requires: apache-base
Requires: git-core >= 2.7.4
-Requires: gitlab-shell >= 3.2.1
+Requires: gitlab-shell >= 3.4.0
+Requires: gitlab-workhorse >= 0.7.11
Requires: nodejs
Requires: rc-scripts
Requires: ruby-bundler
%define uname git
%define gname git
-%define homedir %{_localstatedir}/lib/gitlab
+%define appdir %{_prefix}/lib/gitlab
+%define vardir %{_localstatedir}/lib/gitlab
+%define cachedir %{_localstatedir}/cache/gitlab
%description
GitLab Community Edition (CE) is open source software to collaborate
test -d "$cachedir" && cp -aul "$cachedir"/* vendor/bundle
%endif
+# enable-gems to workaround https://github.com/ruby-prof/ruby-prof/pull/191
+# until https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6026 is merged
+RUBYOPT=--enable-gems \
bundle install %{_smp_mflags} \
--verbose \
--deployment \
# install newer rugged to fix diff view showing garbage
# https://gitlab.com/gitlab-org/gitlab-ce/issues/14972
-v=0.25.0b6
+v=0.25.0b7
test -d vendor/bundle/ruby/gems/rugged-$v || \
bundle exec gem install -v $v rugged --no-rdoc --no-ri --verbose
# use modified config so it doesn't croak
cp -p config/gitlab.yml{,.production}
sed -i -e '/secret_file:/d' config/gitlab.yml
-sed -i -e 's#/home/git/repositories/#./#' config/gitlab.yml
+sed -i -e 's#/var/lib/gitlab/repositories/#./#' config/gitlab.yml
bundle exec rake RAILS_ENV=production assets:clean assets:precompile USE_DB=false
mv -f config/gitlab.yml{.production,}
# remove secrets, log and cache that assets compile initialized
rm .gitlab_shell_secret
-rm .secret
-rm config/secrets.yml
+cp -f config/secrets.yml{.example,}
rm log/production.log
rm -r tmp/cache/*
%install
rm -rf $RPM_BUILD_ROOT
install -d \
- $RPM_BUILD_ROOT%{homedir}/public/{assets,uploads} \
- $RPM_BUILD_ROOT%{homedir}/satellites \
- $RPM_BUILD_ROOT%{homedir}/tmp/{cache/assets,sessions,backups} \
+ $RPM_BUILD_ROOT%{appdir}/public/{assets,uploads} \
+ $RPM_BUILD_ROOT%{appdir}/satellites \
+ $RPM_BUILD_ROOT%{appdir}/tmp/{cache/assets,sessions,backups} \
$RPM_BUILD_ROOT%{_sysconfdir}/gitlab \
$RPM_BUILD_ROOT%{_docdir}/gitlab \
+ $RPM_BUILD_ROOT%{vardir}/public \
+ $RPM_BUILD_ROOT%{cachedir}/tmp \
$RPM_BUILD_ROOT%{_localstatedir}/{run,log}/gitlab
# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
rm -f $RPM_BUILD_ROOT/VERSION
fi
-cp -a$l . $RPM_BUILD_ROOT%{homedir}
+cp -a$l . $RPM_BUILD_ROOT%{appdir}
# cleanup unneccessary cruft (gem build files, etc)
-sh -x %{SOURCE12} $RPM_BUILD_ROOT%{homedir}
+sh -x %{SOURCE12} $RPM_BUILD_ROOT%{appdir}
# replace the contents, yet leave it believe it has proper version installed (for gem dependencies)
-v=0.25.0b6
+v=0.25.0b7
ov=0.24.0
-rm -r $RPM_BUILD_ROOT%{homedir}/vendor/bundle/ruby/extensions/%{_arch}-linux/rugged-$ov
-mv $RPM_BUILD_ROOT%{homedir}/vendor/bundle/ruby/extensions/%{_arch}-linux/rugged-{$v,$ov}
-rm -r $RPM_BUILD_ROOT%{homedir}/vendor/bundle/ruby/gems/rugged-$ov
-mv $RPM_BUILD_ROOT%{homedir}/vendor/bundle/ruby/gems/rugged-{$v,$ov}
+rm -r $RPM_BUILD_ROOT%{appdir}/vendor/bundle/ruby/extensions/%{_arch}-linux/rugged-$ov
+mv $RPM_BUILD_ROOT%{appdir}/vendor/bundle/ruby/extensions/%{_arch}-linux/rugged-{$v,$ov}
+rm -r $RPM_BUILD_ROOT%{appdir}/vendor/bundle/ruby/gems/rugged-$ov
+mv $RPM_BUILD_ROOT%{appdir}/vendor/bundle/ruby/gems/rugged-{$v,$ov}
# rpm cruft from repackaging
-rm -f $RPM_BUILD_ROOT%{homedir}/debug*.list
-
-# nuke tests
-chmod -R u+w $RPM_BUILD_ROOT%{homedir}/vendor/bundle/ruby/gems/*/test
-rm -r $RPM_BUILD_ROOT%{homedir}/vendor/bundle/ruby/gems/*/test
+rm -f $RPM_BUILD_ROOT%{appdir}/debug*.list
# Creating links
-rmdir $RPM_BUILD_ROOT%{homedir}/{log,tmp/{pids,sockets}}
-ln -s %{_localstatedir}/run/gitlab $RPM_BUILD_ROOT%{homedir}/tmp/pids
-ln -s %{_localstatedir}/run/gitlab $RPM_BUILD_ROOT%{homedir}/tmp/sockets
-ln -s %{_localstatedir}/log/gitlab $RPM_BUILD_ROOT%{homedir}/log
+rmdir $RPM_BUILD_ROOT%{appdir}/{log,tmp/{pids,sockets}}
+ln -s %{_localstatedir}/run/gitlab $RPM_BUILD_ROOT%{appdir}/tmp/pids
+ln -s %{_localstatedir}/run/gitlab $RPM_BUILD_ROOT%{appdir}/tmp/sockets
+ln -s %{_localstatedir}/log/gitlab $RPM_BUILD_ROOT%{appdir}/log
# move $source to $target leaving symlink in original path
move_symlink() {
}
# Install config files
-for f in gitlab.yml unicorn.rb database.yml; do
- move_symlink %{homedir}/config/$f %{_sysconfdir}/gitlab/$f
+for f in gitlab.yml unicorn.rb database.yml secrets.yml; do
+ move_symlink %{appdir}/config/$f %{_sysconfdir}/gitlab/$f
done
+move_symlink %{appdir}/.gitlab_workhorse_secret %{_sysconfdir}/gitlab/.gitlab_workhorse_secret
cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/gitlab/.gitconfig
-ln -s %{_sysconfdir}/.gitconfig $RPM_BUILD_ROOT%{homedir}/.gitconfig
+ln -s %{_sysconfdir}/gitlab/.gitconfig $RPM_BUILD_ROOT%{vardir}/.gitconfig
touch $RPM_BUILD_ROOT%{_sysconfdir}/gitlab/skip-auto-migrations
# relocate to /etc as it's updated runtime, see 77cff54
-move_symlink %{homedir}/db/schema.rb %{_sysconfdir}/gitlab/schema.rb
+move_symlink %{appdir}/db/schema.rb %{_sysconfdir}/gitlab/schema.rb
+
+for a in satellites builds shared tmp public/{uploads,assets}; do
+ move_symlink %{appdir}/$a %{vardir}/$a
+done
+
+move_symlink %{vardir}/tmp/cache %{cachedir}/cache
+move_symlink %{vardir}/shared/artifacts/tmp/cache %{cachedir}/artifacts
install -d $RPM_BUILD_ROOT{%{_sbindir},%{systemdunitdir},%{systemdtmpfilesdir}} \
$RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,httpd/webapps.d}
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gitlab/gitlab.yml
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gitlab/unicorn.rb
%config(noreplace) %verify(not md5 mtime size) %attr(640,%{uname},%{gname}) %{_sysconfdir}/gitlab/schema.rb
+%config(noreplace) %verify(not md5 mtime size) %attr(640,%{uname},%{gname}) %{_sysconfdir}/gitlab/secrets.yml
%config(noreplace) %verify(not md5 mtime size) %attr(640,%{uname},%{gname}) %{_sysconfdir}/gitlab/.gitconfig
+%config(noreplace) %verify(not md5 mtime size) %attr(640,%{uname},%{gname}) %{_sysconfdir}/gitlab/.gitlab_workhorse_secret
+
%ghost %{_sysconfdir}/gitlab/skip-auto-migrations
%config(noreplace) %verify(not md5 mtime size) /etc/httpd/webapps.d/gitlab.conf
/etc/logrotate.d/gitlab.logrotate
%{systemdunitdir}/gitlab.target
%{systemdtmpfilesdir}/gitlab.conf
-%dir %{homedir}
-%{homedir}/.gitconfig
-%{homedir}/app
-%dir %{homedir}/bin
-%attr(-,root,root) %{homedir}/bin/*
-%{homedir}/builds
-%{homedir}/config
-%{homedir}/db
-%{homedir}/fixtures
-%{homedir}/generator_templates
-%{homedir}/lib
-
-%dir %{homedir}/public
-%{homedir}/public/ci
-%{homedir}/public/*.*
-%attr(-,%{uname},%{gname}) %{homedir}/public/uploads
-%attr(-,%{uname},%{gname}) %{homedir}/public/assets
-%dir %attr(755,%{uname},%{gname}) %{homedir}/satellites
-
-%dir %attr(755,%{uname},%{gname}) %{homedir}/tmp
-%attr(-,%{uname},%{gname}) %{homedir}/tmp/backups
-%attr(-,%{uname},%{gname}) %{homedir}/tmp/cache
-%attr(-,%{uname},%{gname}) %{homedir}/tmp/sessions
-%attr(-,%{uname},%{gname}) %{homedir}/tmp/sockets
-%attr(-,%{uname},%{gname}) %{homedir}/tmp/pids
-
-%dir %attr(750,%{uname},%{gname}) %{homedir}/shared
-%dir %attr(750,%{uname},%{gname}) %{homedir}/shared/artifacts
-%dir %attr(750,%{uname},%{gname}) %{homedir}/shared/artifacts/tmp
-%dir %attr(750,%{uname},%{gname}) %{homedir}/shared/artifacts/tmp/cache
-%dir %attr(750,%{uname},%{gname}) %{homedir}/shared/artifacts/tmp/uploads
-%dir %attr(750,%{uname},%{gname}) %{homedir}/shared/lfs-objects
-%dir %attr(750,%{uname},%{gname}) %{homedir}/shared/registry
-
-%dir %attr(755,%{uname},%{gname}) %{homedir}/.bundle
-%attr(-,%{uname},%{gname}) %{homedir}/.bundle/config
-%attr(-,%{uname},%{gname}) %{homedir}/.ruby-version
-%attr(-,%{uname},%{gname}) %{homedir}/CHANGELOG
-%attr(-,%{uname},%{gname}) %{homedir}/GITLAB_WORKHORSE_VERSION
-%attr(-,%{uname},%{gname}) %{homedir}/GITLAB_SHELL_VERSION
-%attr(-,%{uname},%{gname}) %{homedir}/Gemfile*
-%attr(-,%{uname},%{gname}) %{homedir}/LICENSE
-%attr(-,%{uname},%{gname}) %{homedir}/*.md
-%attr(-,%{uname},%{gname}) %{homedir}/Rakefile
-%attr(-,%{uname},%{gname}) %{homedir}/VERSION
-%attr(-,%{uname},%{gname}) %{homedir}/config.ru
-
-%{homedir}/log
+%dir %{appdir}
+%dir %{appdir}/bin
+%attr(-,root,root) %{appdir}/bin/*
+# files
+%{appdir}/*.md
+%{appdir}/.bundle
+%{appdir}/.gitlab_workhorse_secret
+%{appdir}/.ruby-version
+%{appdir}/CHANGELOG
+%{appdir}/GITLAB_SHELL_VERSION
+%{appdir}/GITLAB_WORKHORSE_VERSION
+%{appdir}/Gemfile*
+%{appdir}/LICENSE
+%{appdir}/Rakefile
+%{appdir}/VERSION
+%{appdir}/config.ru
+
+# dirs
+%{appdir}/app
+%{appdir}/builds
+%{appdir}/config
+%{appdir}/db
+%{appdir}/fixtures
+%{appdir}/generator_templates
+%{appdir}/lib
+%{appdir}/log
+%{appdir}/public
+%{appdir}/shared
+%{appdir}/tmp
+%{appdir}/satellites
+
+%dir %{vardir}
+%{vardir}/.gitconfig
+%dir %attr(755,%{uname},%{gname}) %{vardir}/satellites
+%dir %attr(755,%{uname},%{gname}) %{vardir}/builds
+%dir %{vardir}/public
+%attr(-,%{uname},%{gname}) %{vardir}/public/uploads
+%attr(-,%{uname},%{gname}) %{vardir}/public/assets
+%dir %attr(755,%{uname},%{gname}) %{vardir}/tmp
+%attr(-,%{uname},%{gname}) %{vardir}/tmp/backups
+%{vardir}/tmp/cache
+%attr(-,%{uname},%{gname}) %{vardir}/tmp/sessions
+%attr(-,%{uname},%{gname}) %{vardir}/tmp/sockets
+%attr(-,%{uname},%{gname}) %{vardir}/tmp/pids
+%dir %attr(750,%{uname},%{gname}) %{vardir}/shared
+%dir %attr(750,%{uname},%{gname}) %{vardir}/shared/artifacts
+%dir %attr(750,%{uname},%{gname}) %{vardir}/shared/artifacts/tmp
+%{vardir}/shared/artifacts/tmp/cache
+%dir %attr(750,%{uname},%{gname}) %{vardir}/shared/artifacts/tmp/uploads
+%dir %attr(750,%{uname},%{gname}) %{vardir}/shared/lfs-objects
+%dir %attr(750,%{uname},%{gname}) %{vardir}/shared/registry
+
+%dir %attr(750,root,%{gname}) %{cachedir}
+%attr(-,%{uname},%{gname}) %{cachedir}/cache
+%dir %attr(750,%{uname},%{gname}) %{cachedir}/artifacts
+
%dir %attr(771,root,%{gname}) %{_localstatedir}/log/gitlab
%dir %attr(771,root,%{gname}) %{_localstatedir}/run/gitlab
%defattr(-,root,root,-)
-%dir %{homedir}/vendor
-%{homedir}/vendor/*
+%dir %{appdir}/vendor
+%{appdir}/vendor/*
%files doc
%defattr(644,root,root,755)
-%{homedir}/doc
+%{appdir}/doc