1 Summary: GitLab ssh access and repository management
6 Group: Applications/Shells
7 Source0: https://github.com/gitlabhq/gitlab-shell/archive/v%{version}/%{name}-%{version}.tar.gz
8 # Source0-md5: 730c60e3d3d14d0f0ce0e82ff3a88a23
9 Patch0: config.yml.patch
10 URL: https://github.com/gitlabhq/gitlab-shell
11 BuildRequires: rpm-rubyprov
12 BuildRequires: rpmbuild(macros) >= 1.665
13 Requires: ruby >= 1:2.0
16 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
18 %define gitlab_uid 65434
19 %define gitlab_gid 65434
20 %define homedir %{_localstatedir}/lib/gitlab
23 GitLab Shell is an application that allows you to execute git commands
24 and provide ssh access to git repositories. It is not a Unix shell nor
25 a replacement for Bash or Zsh.
31 mv config.yml.example config.yml
33 # cleanup backups after patching
34 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
37 rm -rf $RPM_BUILD_ROOT
38 install -d $RPM_BUILD_ROOT%{_datadir}/%{name}
39 cp -a * $RPM_BUILD_ROOT%{_datadir}/%{name}
41 # exclude tests and other unwanted files
42 rm -r $RPM_BUILD_ROOT%{_datadir}/%{name}/spec
43 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/G*
44 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/debug*
46 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/support/rewrite-hooks.sh
47 # stupid script, rather not package it at all
48 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/support/truncate_repositories.sh*
50 install -d $RPM_BUILD_ROOT%{homedir}/.ssh
51 touch $RPM_BUILD_ROOT%{homedir}/.ssh/authorized_keys
53 install -d $RPM_BUILD_ROOT%{homedir}/repositories
55 install -d $RPM_BUILD_ROOT%{_sysconfdir}/gitlab
56 mv $RPM_BUILD_ROOT%{_datadir}/gitlab-shell/config.yml $RPM_BUILD_ROOT%{_sysconfdir}/gitlab/gitlab-shell-config.yml
57 ln -sf %{_sysconfdir}/gitlab/gitlab-shell-config.yml $RPM_BUILD_ROOT%{_datadir}/gitlab-shell/config.yml
59 # it will attempt to symlink if it doesn't exist
60 # /var/lib/gitlab/config/initializers/gitlab_shell_secret_token.rb +18
61 touch $RPM_BUILD_ROOT%{_sysconfdir}/gitlab/.gitlab_shell_secret
62 ln -s %{_sysconfdir}/gitlab/.gitlab_shell_secret $RPM_BUILD_ROOT%{_datadir}/%{name}/.gitlab_shell_secret
65 rm -rf $RPM_BUILD_ROOT
69 %groupadd gitlab -g %{gitlab_gid}
70 %useradd -u %{gitlab_uid} -c 'Gitlab user' -d %{homedir} -g gitlab -s /bin/false gitlab
75 echo "INFO: after installing gitlab run:"
76 echo " sudo -u gitlab -H bundle exec rake gitlab:shell:setup RAILS_ENV=production"
80 %defattr(644,root,root,755)
82 %dir %{_sysconfdir}/gitlab
83 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gitlab/gitlab-shell-config.yml
84 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gitlab/.gitlab_shell_secret
85 %dir %{_datadir}/%{name}
86 %{_datadir}/%{name}/lib
87 %dir %{_datadir}/%{name}/bin
88 %attr(755,root,root) %{_datadir}/%{name}/bin/*
89 %{_datadir}/%{name}/.gitlab_shell_secret
90 %{_datadir}/%{name}/[A-Z]*
91 %{_datadir}/%{name}/config.yml
92 %dir %{_datadir}/%{name}/hooks
93 %attr(755,root,root) %{_datadir}/%{name}/hooks/*
96 %dir %attr(700,gitlab,gitlab) %{homedir}/.ssh
97 %config(noreplace) %attr(600,gitlab,gitlab) %{homedir}/.ssh/authorized_keys
98 %dir %attr(2770,gitlab,gitlab) %{homedir}/repositories