commit 7b71d038df2e7f783bf51da9a119ef40add0c9a8 Author: dogsheng <960055655@qq.com> Date: Tue Nov 19 11:53:02 2019 +0800 Package init diff --git a/portreserve-0.0.5.tar.bz2 b/portreserve-0.0.5.tar.bz2 new file mode 100644 index 0000000..ba75b95 Binary files /dev/null and b/portreserve-0.0.5.tar.bz2 differ diff --git a/portreserve-pid-file.patch b/portreserve-pid-file.patch new file mode 100644 index 0000000..c865712 --- /dev/null +++ b/portreserve-pid-file.patch @@ -0,0 +1,13 @@ +diff -up portreserve-0.0.5/src/portreserve.c.pid-file portreserve-0.0.5/src/portreserve.c +--- portreserve-0.0.5/src/portreserve.c.pid-file 2011-06-23 16:50:21.000000000 +0100 ++++ portreserve-0.0.5/src/portreserve.c 2013-11-27 09:48:01.073647566 +0000 +@@ -314,6 +314,9 @@ portreserve (void) + + free (cfgfile); + ++ /* Give init a chance to spot our PID file (bug #901988). */ ++ sleep (1); ++ + return 0; + } + diff --git a/portreserve.service b/portreserve.service new file mode 100644 index 0000000..284c9b8 --- /dev/null +++ b/portreserve.service @@ -0,0 +1,15 @@ +[Unit] +Description=Port reservation utility +After=sockets.target +Before=basic.target shutdown.target +Conflicts=shutdown.target +DefaultDependencies=no + +[Service] +Type=forking +PIDFile=/var/run/portreserve.pid +ExecStart=/sbin/portreserve +Restart=no + +[Install] +WantedBy=multi-user.target diff --git a/portreserve.spec b/portreserve.spec new file mode 100644 index 0000000..772aeb0 --- /dev/null +++ b/portreserve.spec @@ -0,0 +1,77 @@ +Name: portreserve +Version: 0.0.5 +Release: 21 +Summary: Reserve ports to prevent portmap mapping them +License: GPLv2+ +URL: http://cyberelk.net/tim/portreserve/ +Source0: http://cyberelk.net/tim/data/portreserve/stable/%{name}-%{version}.tar.bz2 +Source1: portreserve.service +Patch0001: portreserve-pid-file.patch +BuildRequires: gcc xmlto systemd-units +Requires(post): systemd-units systemd-sysv +Requires(preun): systemd-units +Requires(postun): systemd-units +Obsoletes: portreserve-selinux < 0.0.3-3 + +%description +The portreserve program aims to help services with well-known ports that lie in the +bindresvport() range (currently 600-1023).. It prevents programs requesting a port +to the libc from occupying a real service's port by occupying it itself, until the +real service tells it to release the port (generally in the init script). + +%package help +Summary: Help documents for portreserve +Requires: %{name} = %{version}-%{release} + +%description help +Man pages and other related help documents for portreserve. + +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +%configure --sbindir=/sbin +make + +%install +%make_install +install -d %{buildroot}%{_unitdir} +install -d %{buildroot}%{_tmpfilesdir} +install -d %{buildroot}%{_sysconfdir}/portreserve +install -d %{buildroot}%{_localstatedir}/run/portreserve +install -m644 %{SOURCE1} %{buildroot}%{_unitdir}/portreserve.service +cat << EOF > %{buildroot}%{_tmpfilesdir}/portreserve.conf +d %{_localstatedir}/run/portreserve 0755 root root 10d +EOF + +%post +%systemd_post portreserve.service + +%preun +%systemd_preun portreserve.service + +%postun +%systemd_postun_with_restart portreserve.service + +%triggerun -- portreserve < 0.0.5-3 +%{_bindir}/systemd-sysv-convert --save portreserve >/dev/null 2>&1 ||: + +/sbin/chkconfig --del portreserve >/dev/null 2>&1 || : +/bin/systemctl try-restart portreserve.service >/dev/null 2>&1 || : + +%files +%doc COPYING +%{_unitdir}/portreserve.service +%dir %{_sysconfdir}/portreserve +%dir %{_localstatedir}/run/portreserve +%config %{_tmpfilesdir}/portreserve.conf +/sbin/* + +%files help +%doc ChangeLog README NEWS +%{_mandir}/*/* + +%changelog +* Wed Nov 06 2019 yanzhihua - 0.0.5-21 +- Package init +