%define apfver 9.7-1 Summary: Advanced Policy Firewall Name: apf Version: 9.7.1 Release: 3%{?dist} License: GPLv2 Group: Applications/System # The author does not provide a way of downloading a specific version. # You can only download the latest release. # http://www.rfxn.com/downloads/apf-current.tar.gz Source0: %{name}-current.tar.gz URL: http://www.rfxn.com/projects/advanced-policy-firewall/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root Requires: iptables, wget BuildArch: noarch Requires(post): /sbin/chkconfig Requires(preun):/sbin/chkconfig Requires(preun):/sbin/service %description APF is an iptables (netfilter) based firewall system designed around the essential needs of today's Linux servers. The configuration is designed to be very informative and easy to follow. %prep %setup -q -n %{name}-%{apfver} %{__sed} -i 's/\r//' %{_builddir}/%{name}-%{apfver}/COPYING.GPL %build %install rm -rf %{buildroot} mkdir -p %{buildroot}%{_sysconfdir}/apf mkdir -p %{buildroot}%{_sbindir} cp -R files/* %{buildroot}%{_sysconfdir}/apf find %{buildroot}%{_sysconfdir}/apf/ -type f -exec chmod 640 {} \; chmod 750 %{buildroot}%{_sysconfdir}/apf/ chmod 750 %{buildroot}%{_sysconfdir}/apf/apf chmod 750 %{buildroot}%{_sysconfdir}/apf/firewall chmod 750 %{buildroot}%{_sysconfdir}/apf/vnet/vnetgen chmod 750 %{buildroot}%{_sysconfdir}/apf/extras/get_ports chmod 750 %{buildroot}%{_sysconfdir}/apf/extras/dshield/install chmod 750 %{buildroot}%{_sysconfdir}/apf cp -pf .ca.def importconf %{buildroot}%{_sysconfdir}/apf/extras/ ln -fs %{_sysconfdir}/apf/apf %{buildroot}%{_sbindir}/apf ln -fs %{_sysconfdir}/apf/apf %{buildroot}%{_sbindir}/fwmgr mkdir -p %{buildroot}%{_sysconfdir}/cron.daily mkdir -p %{buildroot}%{_sysconfdir}/init.d mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d install -m 0755 cron.daily %{buildroot}%{_sysconfdir}/cron.daily/apf install -m 0755 apf.init %{buildroot}%{_sysconfdir}/init.d/apf install -m 0644 logrotate.d.apf %{buildroot}%{_sysconfdir}/logrotate.d/apf %{__sed} -i 's/MONOKERN="0"/MONOKERN="1"/' %{buildroot}/%{_sysconfdir}/apf/conf.apf # fix the init.d entry %{__sed} -i 's/chkconfig: 345 55 25/chkconfig: - 55 25/' %{buildroot}%{_sysconfdir}/init.d/apf %{__sed} -i 's/^restart/restart|reload/' %{buildroot}%{_sysconfdir}/init.d/apf %{__sed} -i '/^restart/istatus)\n\t/usr/local/sbin/apf --status\n\t;;' %{buildroot}%{_sysconfdir}/init.d/apf %{__sed} -i 's|/usr/local/sbin/apf|/usr/sbin/apf|' %{buildroot}%{_sysconfdir}/init.d/apf %clean rm -rf %{buildroot} %post if [ $1 -eq 1 ]; then /sbin/chkconfig --add apf fi %preun if [ $1 -eq 0 ]; then /sbin/service apf stop /sbin/chkconfig --del apf fi %files %defattr(-,root,root) %attr(0750,root,root) %dir %{_sysconfdir}/apf %attr(-,root,root) %{_sysconfdir}/apf/doc %attr(-,root,root) %{_sysconfdir}/apf/extras %attr(-,root,root) %{_sysconfdir}/apf/internals %attr(-,root,root) %{_sysconfdir}/apf/vnet %attr(-,root,root) %{_sysconfdir}/apf/VERSION %attr(-,root,root) %{_sysconfdir}/apf/firewall %attr(-,root,root) %{_sysconfdir}/apf/apf %config(noreplace) %{_sysconfdir}/apf/conf.apf %attr(0755,root,root) %{_sysconfdir}/init.d/apf %attr(0644,root,root) %{_sysconfdir}/logrotate.d/apf %attr(0755,root,root) %{_sysconfdir}/cron.daily/apf %config(noreplace) %{_sysconfdir}/apf/*.rules %doc COPYING.GPL CHANGELOG README.apf %{_sbindir}/apf %{_sbindir}/fwmgr %changelog * Sat Jan 15 2010 Mark McKinstry 9.7.1-3 - get rid of basedir macro - install docs more cleanly - don't start the service after installing it - fix logrotate, init.d, cron permissions - add some stuff to the serivce so it is in line with what Fedroa expects * Fri Nov 20 2009 Mark McKinstry 9.7.1-2 - add comment about not being able to download specific versions - replace spaces with tabs - clean buildroot - fix permission problems * Sun Oct 25 2009 Mark McKinstry - initial build