%global selinux_types %(%{__awk} '/^#[[:space:]]*SELINUXTYPE=/,/^[^#]/ { if ($3 == "-") printf "%s ", $2 }' /etc/selinux/config 2>/dev/null)
%global selinux_variants %([ -z "%{selinux_types}" ] && echo mls strict targeted || echo %{selinux_types})
%global selinux_policyver 0.0.0
%{?systemd_requires}
Summary: Light and fast Git hosting solution
Name: rocketgit
Version: 0.76
Release: 1
License: AGPLv3+
Group: Development/Tools
Source: http://kernel.embedromix.ro/us/rocketgit/%{name}-%{version}.tar.gz
URL: https://rocketgit.com/
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
BuildArch: noarch
Provides: rocketgit
# To easy upgrade from 'rocketgit' to 'catab+rocketgit'
Conflicts: rocketgit
# fuse is required for rgfs
Requires: httpd-filesystem, nginx-filesystem
Requires: php-pgsql, php-mbstring, php-json, php-ldap, php-fpm, php-cli
Requires: php-opcache
Requires: git-core, cronie
Requires: util-linux, qrencode, fuse, openssh-server, gpg
# SELinux stuff
# https://fedoraproject.org/wiki/SELinux_Policy_Modules_Packaging_Draft?rd=PackagingDrafts/SELinux/PolicyModules
BuildRequires: checkpolicy, selinux-policy-devel
# This is unknown yet. TODO
%if 0%{?rhel} < 9
BuildRequires: hardlink
%endif
BuildRequires: util-linux, systemd-rpm-macros, openldap-servers
BuildRequires: systemd, php-cli, tidy
Requires(pre): shadow-utils
Requires(post): /usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles
Requires(postun): /usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles
%description
Light and fast Git hosting solution, similar with Gitorious/Gitolite etc.
%pre
getent group rocketgit >/dev/null || groupadd -r rocketgit
getent passwd rocketgit >/dev/null || useradd -r -g rocketgit -s /bin/bash -m -d /home/rocketgit -c "RocketGit user" rocketgit
%post
for type in %{selinux_variants}; do
[ -r /tmp/rgsdebug ] && echo "Installing module ${type}..."
/usr/sbin/semodule -s ${type} -i \
/usr/share/selinux/${type}/rocketgit.pp &> /dev/null || :
done
[ -r /tmp/rgsdebug ] && echo "fixfiles -R..."
/sbin/fixfiles -R %{name} restore || :
# restorecon is needed because fixfiles -R will not restore the locks!
[ -r /tmp/rgsdebug ] && echo "restorecon -R..."
[ -r /tmp/rgsdebug ] && echo "restorecon -R /var/lib/rocketgit was disabled because it takes too much time"
#/sbin/restorecon -R /var/lib/rocketgit || :
[ -r /tmp/rgsdebug ] && echo "systemd_post fpm..."
echo "systemd_post fpm..."
%systemd_post rocketgit-fpm.service
[ -r /tmp/rgsdebug ] && echo "systemd_post builder..."
echo "systemd_post builder..."
%systemd_post rocketgit-builder.service
[ -r /tmp/rgsdebug ] && echo "systemd_post fs..."
echo "systemd_post fs..."
%systemd_post rocketgit-fs.service
[ -r /tmp/rgsdebug ] && echo "systemd_post git..."
echo "systemd_post git..."
%systemd_post rocketgit-git.socket
[ -r /tmp/rgsdebug ] && echo "'post' done..."
echo "'post' done..."
%preun
%systemd_preun rocketgit-fpm.service
%systemd_preun rocketgit-builder.service
%systemd_preun rocketgit-fs.service
%systemd_preun rocketgit-worker@.service
%systemd_preun rocketgit-git.socket
%postun
if [ $1 = 0 ]; then
for type in %{selinux_variants}
do
/usr/sbin/semodule -s ${type} -r rocketgit &> /dev/null || :
done
/sbin/fixfiles -R rocketgit restore || :
fi
%systemd_postun_with_restart rocketgit-fpm.service
%systemd_postun_with_restart rocketgit-builder.service
%systemd_postun_with_restart rocketgit-fs.service
%systemd_postun_with_restart rocketgit-worker@\*.service
%systemd_postun_with_restart rocketgit-git.socket
%prep
%setup -q
%build
%configure
# TODO: should we do this in configure?!
make selinux_variants="%{selinux_variants}"
%install
rm -rf ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}
make install DESTDIR=${RPM_BUILD_ROOT}
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
%defattr (-,root,root,0755)
%dir /usr/share/rocketgit
%doc README LICENSE TODO samples
%attr(0700,rocketgit,rocketgit) %dir /etc/rocketgit
/etc/rocketgit/config.php.sample
/etc/httpd/conf.d/rocketgit.conf.sample
/etc/nginx/conf.d/rocketgit.conf.sample
/etc/rocketgit/php-fpm.conf.sample
/etc/rocketgit/pool.conf.sample
/etc/rocketgit/worker-main.conf.sample
%config(noreplace) /etc/rocketgit/config.php
%config(noreplace) /etc/httpd/conf.d/rocketgit.conf
%config(noreplace) /etc/nginx/conf.d/rocketgit.conf
%config(noreplace) /etc/rocketgit/php-fpm.conf
%config(noreplace) /etc/rocketgit/pool.conf
%config(noreplace) /etc/cron.d/rocketgit
%config(noreplace) /etc/rocketgit/worker-main.conf
%config(noreplace) /etc/ssh/sshd_config.d/*
%attr(0700,rocketgit,rocketgit) %dir /var/log/rocketgit
%attr(0771,rocketgit,rocketgit) %dir /var/lib/rocketgit
%attr(0700,rocketgit,rocketgit) %dir /var/lib/rocketgit/locks
%attr(0700,rocketgit,rocketgit) %dir /var/lib/rocketgit/repos
%attr(0700,rocketgit,rocketgit) %dir /var/lib/rocketgit/q_merge_requests
%attr(0700,rocketgit,rocketgit) %dir /var/lib/rocketgit/sockets
%attr(0700,rocketgit,rocketgit) %dir /var/lib/rocketgit/tmp
%attr(0755,root,root) /usr/sbin/*
/usr/share/rocketgit/*
/usr/share/selinux/*/rocketgit.pp
%{_unitdir}/*
%changelog
* Sat Oct 22 2022 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.76
Mostly worker changes.
* Thu Feb 17 2022 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.75
Lots of changes. deb packages.
* Thu Oct 21 2021 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.74
Lots of changes. rpm packages.
* Fri Jun 05 2020 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.72
Lots of changes.
* Sat Oct 26 2019 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.71
Lots of changes.
* Wed Oct 17 2012 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.10
Alpha1 version released with a lot of fixes and some features.
* Mon Jun 27 2011 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.2
Another round of bulk changes.