%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: @PRJ@ Version: @VER@ Release: @REV@ 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 Requires: httpd-filesystem, nginx-filesystem, php-fpm, php-cli, php-pgsql, php-mbstring Requires: git-core, cronie, xinetd, php-json, php-ldap Requires: util-linux, qrencode # SELinux stuff # https://fedoraproject.org/wiki/SELinux_Policy_Modules_Packaging_Draft?rd=PackagingDrafts/SELinux/PolicyModules BuildRequires: checkpolicy, selinux-policy-devel, systemd, php-cli BuildRequires: util-linux, tidy, systemd-rpm-macros %if 0%{?fedora} < 31 BuildRequires: hardlink %endif # This is unknown yet. TODO %if 0%{?rhel} < 9 BuildRequires: hardlink %endif 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}/@PRJ@.pp &> /dev/null || : done [ -r /tmp/rgsdebug ] && echo "fixfiles -R..." /sbin/fixfiles -R @PRJ@ restore || : # restorecon is needed because fixfiles -R will not restore the locks! [ -r /tmp/rgsdebug ] && echo "restorecon -R..." /sbin/restorecon -R @VAR_LIB@/@PRJ@ || : if [ $1 -ne 0 ]; then [ -r /tmp/rgsdebug ] && echo "Reloading xinetd..." /usr/bin/systemctl reload xinetd &>/dev/null || : fi [ -r /tmp/rgsdebug ] && echo "systemd_post fpm..." %systemd_post @PRJ@-fpm.service [ -r /tmp/rgsdebug ] && echo "systemd_post builder..." %systemd_post @PRJ@-builder.service [ -r /tmp/rgsdebug ] && echo "'post' done..." %preun %systemd_preun @PRJ@-fpm.service %systemd_preun @PRJ@-builder.service %systemd_preun @PRJ@-worker@\*.service %postun if [ $1 = 0 ]; then for type in %{selinux_variants} do /usr/sbin/semodule -s ${type} -r @PRJ@ &> /dev/null || : done /sbin/fixfiles -R @PRJ@ restore || : fi %systemd_postun_with_restart @PRJ@-fpm.service %systemd_postun_with_restart @PRJ@-builder.service %systemd_postun_with_restart @PRJ@-worker@\*.service %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@/@PRJ@ %doc README LICENSE Changelog TODO selinux/@PRJ@.* samples/* %attr(0700,rocketgit,rocketgit) %dir @ETC@/@PRJ@ @ETC@/@PRJ@/config.php.sample @ETC@/httpd/conf.d/rocketgit.conf.sample @ETC@/nginx/conf.d/rocketgit.conf.sample @ETC@/@PRJ@/worker-main.conf.sample %config(noreplace) @ETC@/@PRJ@/config.php %config(noreplace) @ETC@/@PRJ@/php-fpm.conf %config(noreplace) @ETC@/@PRJ@/pool.conf %config(noreplace) @ETC@/cron.d/rocketgit %config(noreplace) @ETC@/xinetd.d/rocketgit %attr(0700,rocketgit,rocketgit) %dir @VAR_LOG@/@PRJ@ %attr(0771,rocketgit,rocketgit) %dir @VAR_LIB@/@PRJ@ %attr(0700,rocketgit,rocketgit) %dir @VAR_LIB@/@PRJ@/locks %attr(0700,rocketgit,rocketgit) %dir @VAR_LIB@/@PRJ@/repos %attr(0700,rocketgit,rocketgit) %dir @VAR_LIB@/@PRJ@/q_merge_requests %attr(0700,rocketgit,rocketgit) %dir @VAR_LIB@/@PRJ@/sockets %attr(0700,rocketgit,rocketgit) %dir @VAR_LIB@/@PRJ@/tmp %attr(0755,root,root) @USR_SBIN@/* @USR_SHARE@/@PRJ@/* @USR_SHARE@/selinux/*/@PRJ@.pp %{_unitdir}/*.service %changelog * 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.