/rocketgit.spec (efd9f5408b22d981d0eb4c3d610485d996837ada) (5661 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.75
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
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, 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..."
[ -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
* 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.


Mode Type Size Ref File
100644 blob 9 f3c7a7c5da68804a1bdf391127ba34aed33c3cca .exclude
100644 blob 95 3e2e24ae7f12c3618604c014e2a5cdbc7572d73d .gitignore
100644 blob 375 1f425bcd2049c526744d449511094fc045ceac74 AUTHORS
100644 blob 1667 4875f36ec0039e3ab9ad91ff6799bec9e7400461 History.txt
100644 blob 34520 dba13ed2ddf783ee8118c6a581dbf75305f816a3 LICENSE
100644 blob 3624 1c4ccf9cceb2e56ae71334442aff3183b242c333 Makefile.in
100644 blob 5013 726b89f5ea8777af6099eb82110136fb1702c41b README
100644 blob 185818 8be349556b828ba538154ab2508729237e5b2886 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 5292 cf28f2fcc8c67fb2c6931cf14605c5def5c11bbe compare.csv
100755 blob 30 92c4bc48245c00408cd7e1fd89bc1a03058f4ce4 configure
040000 tree - a8d02c97003cdd0b8e58f3985229b84664f0fa92 debian
040000 tree - 360183b3f53e23b7573907810044fb4af88b6798 docker
040000 tree - f67d3605efbd6422a8acdd953578991139266391 docs
100755 blob 18252 e2438615edba7066a730ed6a796a5302263f1f37 duilder
100644 blob 536 6c803d6cf070ed5d164d0e197caac54e8f259297 duilder.conf
040000 tree - 1a62427b7e1e1e78bbb0c05f5d7bc62d7306e4d3 hooks
040000 tree - edf540eb19e40f040491f1c08c2b8c342d96d85c inc
040000 tree - e255ce234c3993998edc12bc7e93fff555376eda misc
100644 blob 5661 efd9f5408b22d981d0eb4c3d610485d996837ada rocketgit.spec
040000 tree - 1c4303d90ca823d1a119a11583db032b9a2f972d root
040000 tree - 4fe2273637e99a4db80320f7153578ea48c62bde samples
040000 tree - e80e2b3978f981bad02fd813a5b7d89c1852cb7b scripts
040000 tree - 23d2decf7e4cd61adf8d5b02174dd405f8d7f3de selinux
100755 blob 256 462ccd108c431f54e380cdac2329129875a318b5 spell_check.sh
040000 tree - 7aaa439e933ed8d68898a4997891520fe942277a techdocs
040000 tree - 0d62db4de2200de38a35f740f4bfc40be239190a 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