%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, mod_ssl, php-fpm, php-cli, php-pgsql, xinetd Requires: git, cronie, postgresql-server Requires: util-linux # SELinux stuff # https://fedoraproject.org/wiki/SELinux_Policy_Modules_Packaging_Draft?rd=PackagingDrafts/SELinux/PolicyModules BuildRequires: checkpolicy, selinux-policy-devel, hardlink, systemd, php-cli # Needed for Fedora <= 19 %if "%{selinux_policyver}" != "" Requires: selinux-policy >= %{selinux_policyver} %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 /sbin/service xinetd reload &>/dev/null || : /sbin/service httpd reload &>/dev/null || : fi %systemd_post @PRJ@-fpm.service %preun %systemd_preun @PRJ@-fpm.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 @PRJ@-fpm.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@.* %attr(0700,rocketgit,rocketgit) %dir @ETC@/@PRJ@ @ETC@/@PRJ@/config.php.sample @ETC@/logrotate.d/rocketgit %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 %config(noreplace) @ETC@/httpd/conf.d/rocketgit.conf %attr(0700,rocketgit,rocketgit) %dir @VAR_LOG@/@PRJ@ %attr(0755,root,root) %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(0700,root,root) %dir @VAR_LIB@/@PRJ@/worker %attr(0700,root,root) @USR_SBIN@/* @USR_SHARE@/@PRJ@/* @USR_SHARE@/selinux/*/@PRJ@.pp %{_unitdir}/*.service %changelog * 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.