xaizek / rocketgit (License: AGPLv3+) (since 2018-12-09)
Light and fast Git hosting solution suitable to serve both as a hub or as a personal code storage with its tickets, pull requests, API and much more.
<root> / rocketgit.spec.in (549c56428615002dd1bd0dab413c5e4c05c6d02d) (4,576B) (mode 100644) [raw]
%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

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
# This is unknown yet. TODO
%if 0%{?rhel} < 9
BuildRequires:	hardlink
Requires(pre):	shadow-utils
Requires(post):	/usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles
Requires(postun):	/usr/sbin/semodule, /sbin/restorecon, /sbin/fixfiles

Light and fast Git hosting solution, similar with Gitorious/Gitolite/etc.

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

for type in %{selinux_variants}
	[ -r /tmp/rgsdebug ] && echo "Installing module ${type}..."
	/usr/sbin/semodule -s ${type} -i \
		@USR_SHARE@/selinux/${type}/@PRJ@.pp &> /dev/null || :
[ -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 || :
[ -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..."

%systemd_preun @PRJ@-fpm.service
%systemd_preun @PRJ@-builder.service
%systemd_preun @PRJ@-worker@\*.service

if [ $1 = 0 ]; then
	for type in %{selinux_variants}
		/usr/sbin/semodule -s ${type} -r @PRJ@ &> /dev/null || :
	/sbin/fixfiles -R @PRJ@ restore || :
%systemd_postun_with_restart @PRJ@-fpm.service
%systemd_postun_with_restart @PRJ@-builder.service
%systemd_postun_with_restart @PRJ@-worker@\*.service

%setup -q

# TODO: should we do this in configure?!
make selinux_variants="%{selinux_variants}"

rm -rf ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}
make install DESTDIR=${RPM_BUILD_ROOT}

rm -rf ${RPM_BUILD_ROOT}

%defattr (-,root,root,0755)
%dir @USR_SHARE@/@PRJ@
%doc README LICENSE Changelog TODO selinux/@PRJ@.* samples/*
%attr(0700,rocketgit,rocketgit) %dir @ETC@/@PRJ@
%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@/*

* 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.

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master