/rocketgit.spec (4bee32faa18d9af843d9f02f954706f4b39edcbb) (5061 bytes) (mode 100644) (type blob)

%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.74
Release:	2
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, php-fpm, php-cli, php-pgsql, php-mbstring
Requires:	git-core, cronie, php-json, php-ldap
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, systemd, php-cli
BuildRequires:	util-linux, tidy, systemd-rpm-macros, openldap-servers
# 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}/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..."
/sbin/restorecon -R /var/lib/rocketgit || :

[ -r /tmp/rgsdebug ] && echo "systemd_post fpm..."
%systemd_post rocketgit-fpm.service
[ -r /tmp/rgsdebug ] && echo "systemd_post builder..."
%systemd_post rocketgit-builder.service
[ -r /tmp/rgsdebug ] && echo "systemd_post fs..."
%systemd_post rocketgit-fs.service
[ -r /tmp/rgsdebug ] && echo "systemd_post git..."
%systemd_post rocketgit-git.socket
[ -r /tmp/rgsdebug ] && 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/worker-main.conf.sample
%config(noreplace) /etc/rocketgit/config.php
%config(noreplace) /etc/rocketgit/php-fpm.conf
%config(noreplace) /etc/rocketgit/pool.conf
%config(noreplace) /etc/cron.d/rocketgit
%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
* Wed 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.


Mode Type Size Ref File
100644 blob 9 f3c7a7c5da68804a1bdf391127ba34aed33c3cca .exclude
100644 blob 95 3e2e24ae7f12c3618604c014e2a5cdbc7572d73d .gitignore
100644 blob 375 1f425bcd2049c526744d449511094fc045ceac74 AUTHORS
100644 blob 1132 dd65951315f3de6d52d52a82fca59889d1d95187 Certs.txt
100644 blob 1538 3f88d5ff4a2a7b3328dde912fc95c46e52da9a7d History.txt
100644 blob 34520 dba13ed2ddf783ee8118c6a581dbf75305f816a3 LICENSE
100644 blob 3341 994c8a35a81ada4c768ba38bbea6dae006a35be0 Makefile.in
100644 blob 5013 726b89f5ea8777af6099eb82110136fb1702c41b README
100644 blob 179703 3a70d08e1af14f7c82650d35086b17d82bb9cf7f TODO
100644 blob 1294 f22911eb777f0695fcf81ad686eac133eb11fcc4 TODO-plans
100644 blob 203 a2863c67c3da44126b61a15a6f09738c25e0fbe0 TODO.perf
100644 blob 967 56bbaa7c937381fb10a2907b6bbe056ef8cc824a TODO.vm
040000 tree - 21928e906ad2907a55c2e81c2a8b0502b586b8a0 artwork
100644 blob 5118 29b8b86a2eebbd5e33e7fe03c6bb8cf269601dbb compare.csv
100755 blob 30 92c4bc48245c00408cd7e1fd89bc1a03058f4ce4 configure
040000 tree - 9e126f629e04ddbf18a7ad306a0e931a281a2cea debian
040000 tree - 2e58bf5808e1f01f1e5f9fbc8764427436b6490f docker
040000 tree - f67d3605efbd6422a8acdd953578991139266391 docs
100755 blob 17577 06fe0062db5d1135bcfa1f48a10e84b3596d8c15 duilder
100644 blob 536 e31b63f440c725a5b491489e6a4bf35ee66ff073 duilder.conf
040000 tree - 1a62427b7e1e1e78bbb0c05f5d7bc62d7306e4d3 hooks
040000 tree - cc01aba03617920b3b5d4cbdd0fe625aa0a7b8cd inc
040000 tree - e255ce234c3993998edc12bc7e93fff555376eda misc
100644 blob 5061 4bee32faa18d9af843d9f02f954706f4b39edcbb rocketgit.spec
040000 tree - f6645983580a1bf9dde3845cb96d021643e93f81 root
040000 tree - 446a2345e5edc3f6d0819123cd7d7949e510526f samples
040000 tree - 27c6ee7bb2d82be49dd25b610c57ef02ce698388 scripts
040000 tree - a3cb7109a47e7dae03a78667841b986e23baa224 selinux
100755 blob 256 462ccd108c431f54e380cdac2329129875a318b5 spell_check.sh
040000 tree - 16e63d499e2c018ced3a78f3ed162d7b54b168ed techdocs
040000 tree - 4bf43340a24dd859890f3133b501bbd528389691 tests
040000 tree - e810d7397575886ef495708d571eb3675f6928ba tools
Hints:
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://rocketgit.com/user/catalinux/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/rocketgit

Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/rocketgit

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