/rocketgit.spec (67d5e75076766ad844969abaff446face8ca9eff) (6307 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.80
Release:	1
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, pandoc

# SELinux stuff
# https://fedoraproject.org/wiki/SELinux_Policy_Modules_Packaging_Draft?rd=PackagingDrafts/SELinux/PolicyModules
BuildRequires:	checkpolicy, selinux-policy-devel
# This is unknown yet. TODO
%if 0%{?rhel} < 9
BuildRequires:	hardlink
%endif

BuildRequires:	util-linux, systemd-rpm-macros, openldap-servers
BuildRequires:	systemd, php-cli, tidy

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
if [ $1 -eq 1 ]; then
	# First install
	[ -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 /var/lib/rocketgit..."
	/sbin/restorecon -R /var/lib/rocketgit || :
fi
/sbin/restorecon -R /etc/rocketgit
/sbin/restorecon -R /usr/share/rocketgit
/sbin/restorecon -R /var/log/rocketgit
/sbin/restorecon /var/lib/rocketgit
/sbin/restorecon /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
* Wed Nov 20 2024 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.80

* Thu Jun 15 2023 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.79

* Thu Jun 15 2023 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.78
Fixed delete account feature
Render readme files
All around fixes..

* Mon Dec 12 2022 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.77
All around fixes..

* Sat Oct 22 2022 Catalin(ux) M. BOIE <catab at embedromix dot ro> 0.76
Mostly worker changes.

* 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 108 acc2186b1d357966e09df32afcea14933f5f0c78 .gitignore
100644 blob 375 1f425bcd2049c526744d449511094fc045ceac74 AUTHORS
100644 blob 2375 07d4a2277dd1c385e2562a9ac7c636bcdd084c18 History.txt
100644 blob 34520 dba13ed2ddf783ee8118c6a581dbf75305f816a3 LICENSE
100644 blob 3632 f216d8f6ca7180c095ee4fcbe96d8fc2ca2b0dee Makefile.in
100644 blob 5325 96c40d868ce10b715299085ccffb30f96a730cf3 README
100644 blob 194273 a9c3e002022f833d092ae0e17dec1155b07d8dce 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 5328 d5be4cc3f15d059ad8d267d800c602e9774816a8 compare.csv
100755 blob 30 92c4bc48245c00408cd7e1fd89bc1a03058f4ce4 configure
040000 tree - 0a74883db0753f35db9a227ed8f0f46e3c8b1746 debian
040000 tree - 98aa7eab5457a649ed3c683caa22699a1f44e138 docker
040000 tree - f67d3605efbd6422a8acdd953578991139266391 docs
100755 blob 18252 e2438615edba7066a730ed6a796a5302263f1f37 duilder
100644 blob 536 4d35fc700881fc03e043a4c22d8770baa298d093 duilder.conf
040000 tree - 73914e7faf49474a12b29e936ae77006254cc1a1 hooks
040000 tree - bf54b3a349c49c5bcd7ee565433ed9a527a2ded0 inc
040000 tree - e255ce234c3993998edc12bc7e93fff555376eda misc
100644 blob 6307 67d5e75076766ad844969abaff446face8ca9eff rocketgit.spec
040000 tree - 150931608e051754ede7f677e94d3b4025ad7b3b root
040000 tree - 19d974acea12eaedf6dd233d2997183b3f84f1a6 samples
040000 tree - 598183d3781803f4d6014853bf75f2848be67b29 scripts
040000 tree - 454044f7e286fe13ec18598fce6b613190f52e5e selinux
100755 blob 256 462ccd108c431f54e380cdac2329129875a318b5 spell_check.sh
040000 tree - d9260d3cf0d6490be720312893600a8041bf991b techdocs
040000 tree - fae18775ac52de4a170fcd1baa733433f31b9559 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