/rocketgit.spec.in (8758a1ee20648d07818308f22356182da1048b36) (4792 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:		@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

# fuse is required for rgfs
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, 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
%if 0%{?fedora} < 31
BuildRequires:	hardlink
%endif
# 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}/@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
	[ -r /tmp/rgsdebug ] && echo "Reloading xinetd..."
	/usr/bin/systemctl reload xinetd &>/dev/null || :
fi
[ -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 "systemd_post fs..."
%systemd_post @PRJ@-fs.service
[ -r /tmp/rgsdebug ] && echo "'post' done..."

%preun
%systemd_preun @PRJ@-fpm.service
%systemd_preun @PRJ@-builder.service
%systemd_preun @PRJ@-fs.service
%systemd_preun @PRJ@-worker@\*.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_with_restart @PRJ@-fpm.service
%systemd_postun_with_restart @PRJ@-builder.service
%systemd_postun_with_restart @PRJ@-fs.service
%systemd_postun_with_restart @PRJ@-worker@\*.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@.* samples/*
%attr(0700,rocketgit,rocketgit) %dir @ETC@/@PRJ@
@ETC@/@PRJ@/config.php.sample
@ETC@/httpd/conf.d/rocketgit.conf.sample
@ETC@/nginx/conf.d/rocketgit.conf.sample
@ETC@/@PRJ@/worker-main.conf.sample
%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@/*
@USR_SHARE@/@PRJ@/*
@USR_SHARE@/selinux/*/@PRJ@.pp
%{_unitdir}/*.service

%changelog
* 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 102 eaeb7d777062c60a55cdd4b5734902cdf6e1790c .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 3411 0015f1acb344e72a0ecb745a6f486dccf82952be Makefile.in
100644 blob 5867 0c5899445818b82269b17da3fff4c39a89f760bb README
100644 blob 178294 7de126e87b5b6274fbe15a03fb6832c82bdbe3a2 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 5919 2a697d6de800ea8989951c30c21eb02ce1ead64a compare.csv
100755 blob 30 92c4bc48245c00408cd7e1fd89bc1a03058f4ce4 configure
040000 tree - 03c8adc1d40f2218407164412524c8a59cc24542 debian
040000 tree - 66259ce45683624a10fd72d3f89a1c9d2194e14c docker
040000 tree - f67d3605efbd6422a8acdd953578991139266391 docs
100755 blob 17577 06fe0062db5d1135bcfa1f48a10e84b3596d8c15 duilder
100644 blob 536 d5789e7e10060753e7d7317b764b0e21c65b99a9 duilder.conf
040000 tree - 1a62427b7e1e1e78bbb0c05f5d7bc62d7306e4d3 hooks
040000 tree - 50d3e276a7d8ae88fec67430ae55477a19087db6 inc
040000 tree - e255ce234c3993998edc12bc7e93fff555376eda misc
100644 blob 4792 8758a1ee20648d07818308f22356182da1048b36 rocketgit.spec.in
040000 tree - 2d206dff25e1889943cccf59c58c2aeda20b71a6 root
040000 tree - 6dea405f1aa2ce53797c9c4232e6018f60f4102a samples
040000 tree - 7f0935acf43614fd1fe86ee47c8a8ef0f1d34b03 scripts
040000 tree - a3cb7109a47e7dae03a78667841b986e23baa224 selinux
100755 blob 256 462ccd108c431f54e380cdac2329129875a318b5 spell_check.sh
040000 tree - 9b6c399012aec30448bd1c73f4ed3ef775945d26 techdocs
040000 tree - 568161af9588ea3854696a3da7d928adaa726897 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