# NOTE:
# A very helpful document for packaging Shorewall is "Anatomy of Shorewall 4.0"
# which is found at http://www.shorewall.net/Anatomy.html
-# TODO
-# - rc-script inits
+#
+%define ver 5.2.1
+%define rel .4
+
Summary: Shoreline Firewall - an iptables-based firewall for Linux systems
Summary(pl.UTF-8): Shoreline Firewall - zapora sieciowa oparta na iptables
Name: shorewall
-Version: 5.2.0.4
-Release: 0.1
+Version: %{ver}%{rel}
+Release: 1
License: GPL
Group: Networking/Utilities
-Source0: http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.0/%{name}-%{version}.tar.bz2
-# Source0-md5: b8702d14846f890d263f5ea2447b5bed
-Source1: http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.0/%{name}-lite-%{version}.tar.bz2
-# Source1-md5: 0dd43f44f7555418ae2f153fbf7ce1ef
-Source2: http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.0/%{name}6-%{version}.tar.bz2
-# Source2-md5: 14c87b9880bc69c82792854af45335e6
-Source3: http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.0/%{name}6-lite-%{version}.tar.bz2
-# Source3-md5: 9f03407f5f7dac39f286bdaf3ec051e8
-Source4: http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.0/%{name}-init-%{version}.tar.bz2
-# Source4-md5: cf6b2a6c1a8827a99c1b3e717d42ccff
-Source5: http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.0/%{name}-core-%{version}.tar.bz2
-# Source5-md5: be73e2f76b2438e7813f62873a50c203
+Source0: http://www.shorewall.net/pub/shorewall/5.2/shorewall-%{ver}/%{name}-%{version}.tar.bz2
+# Source0-md5: 42cc5587493e702e9201cc5c90baa8ea
+Source1: http://www.shorewall.net/pub/shorewall/5.2/shorewall-%{ver}/%{name}-lite-%{version}.tar.bz2
+# Source1-md5: 265fbda05093d745aef7b2309156a643
+Source2: http://www.shorewall.net/pub/shorewall/5.2/shorewall-%{ver}/%{name}6-%{version}.tar.bz2
+# Source2-md5: f8eea62a4d350f7117ae3b163ba9e444
+Source3: http://www.shorewall.net/pub/shorewall/5.2/shorewall-%{ver}/%{name}6-lite-%{version}.tar.bz2
+# Source3-md5: 14429bc48f88cf090c28df1eccb4e0fa
+Source4: http://www.shorewall.net/pub/shorewall/5.2/shorewall-%{ver}/%{name}-init-%{version}.tar.bz2
+# Source4-md5: 1e6ce776526e45525c827c82d4284a40
+Source5: http://www.shorewall.net/pub/shorewall/5.2/shorewall-%{ver}/%{name}-core-%{version}.tar.bz2
+# Source5-md5: dc95164f743236441e9b07f19fa68ae9
Source10: %{name}.init
+Source11: %{name}.logrotate
Patch0: %{name}-config.patch
-Patch1: tld.patch
-Patch2: man.patch
-Patch3: init.patch
+Patch1: %{name}-logging.patch
+Patch2: tld.patch
+Patch3: man.patch
+Patch4: init.patch
+Patch5: shell-fix.patch
URL: http://www.shorewall.net/
BuildRequires: perl
BuildRequires: perl(Digest::SHA)
BuildRequires: bash >= 4.0
BuildRequires: sed
+Requires: bash >= 4.0
Requires: %{name}-core = %{version}-%{release}
Requires: iproute2
Requires: iptables
+Requires: perl-modules
Requires(post): /sbin/chkconfig
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%package core
Summary: Core libraries for Shorewall
Group: Applications/System
+Requires: logrotate
%description core
This package contains the core libraries for Shorewall.
%setup -qcT -a0 -a1 -a2 -a3 -a4 -a5
targets="shorewall-core shorewall shorewall-lite shorewall6 shorewall6-lite shorewall-init"
for i in $targets; do
- cp -p $i-%{version}/shorewallrc.{redhat,tld}
- %{__sed} -i -r -e 's!RedHat/Fedora!TLD !; s/^HOST\=redhat/HOST\=tld/; /^(SERVICEDIR|SERVICEFILE)/d;' $i-%{version}/shorewallrc.tld
+ mv $i-%{version} $i
+ cp -p $i/shorewallrc.{redhat,tld}
+ %{__sed} -i -r -e 's!RedHat/Fedora!TLD !; s/^HOST\=redhat/HOST\=tld/; /^(SERVICEDIR|SERVICEFILE)/d;' $i/shorewallrc.tld
done
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
+%patch5 -p1
# Remove hash-bang from files which are not directly executed as shell
# scripts. This silences some rpmlint errors.
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
-install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/shorewall
targets="shorewall-core shorewall shorewall-lite shorewall6 shorewall6-lite shorewall-init"
for i in $targets; do
- cd $i-%{version}
+ cd $i
./configure \
VENDOR=tld \
LIBEXECDIR=%{_libexecdir} \
cd -
done
+install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
+install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/shorewall
+install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/logrotate.d/shorewall
+
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+/sbin/chkconfig --add shorewall
+%service shorewall restart "Shorewall"
+
+%preun
+if [ "$1" = "0" ]; then
+ %service shorewall stop
+ /sbin/chkconfig --del shorewall
+fi
+
%files
%defattr(644,root,root,755)
-%doc shorewall-%{version}/{COPYING,changelog.txt,releasenotes.txt,Samples}
+%doc shorewall/{COPYING,changelog.txt,releasenotes.txt,Samples}
%attr(755,root,root) %{_sbindir}/shorewall
%dir %{_sysconfdir}/shorewall
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/shorewall/*
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall-init
%{_datadir}/shorewall/action.*
%{_datadir}/shorewall/actions.std
%{_datadir}/shorewall/configfiles/
%files lite
%defattr(644,root,root,755)
-%doc shorewall-lite-%{version}/{COPYING,changelog.txt,releasenotes.txt}
+%doc shorewall-lite/{COPYING,changelog.txt,releasenotes.txt}
%attr(755,root,root) %{_sbindir}/shorewall-lite
%dir %{_sysconfdir}/shorewall-lite
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/shorewall-lite/shorewall-lite.conf
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall-lite
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall-lite-init
%{_datadir}/shorewall-lite
%{_libexecdir}/shorewall-lite
%{_mandir}/man5/shorewall-lite*
%files -n shorewall6
%defattr(644,root,root,755)
-%doc shorewall6-%{version}/{COPYING,changelog.txt,releasenotes.txt,Samples6}
+%doc shorewall6/{COPYING,changelog.txt,releasenotes.txt,Samples6}
%attr(755,root,root) %{_sbindir}/shorewall6
%dir %{_sysconfdir}/shorewall6
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/shorewall6/*
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall6
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall6-init
%{_mandir}/man5/shorewall6*
%exclude %{_mandir}/man5/shorewall6-lite*
%{_mandir}/man8/shorewall6*
%files -n shorewall6-lite
%defattr(644,root,root,755)
-%doc shorewall6-lite-%{version}/{COPYING,changelog.txt,releasenotes.txt}
+%doc shorewall6-lite/{COPYING,changelog.txt,releasenotes.txt}
%attr(755,root,root) %{_sbindir}/shorewall6-lite
%dir %{_sysconfdir}/shorewall6-lite
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/shorewall6-lite/shorewall6-lite.conf
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall6-lite
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall6-lite-init
%{_mandir}/man5/shorewall6-lite*
%{_mandir}/man8/shorewall6-lite*
%{_datadir}/shorewall6-lite
%files core
%defattr(644,root,root,755)
-%doc shorewall-core-%{version}/{COPYING,changelog.txt,releasenotes.txt}
+%doc shorewall-core/{COPYING,changelog.txt,releasenotes.txt}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall
%dir %{_datadir}/shorewall/
%{_datadir}/shorewall/coreversion
%{_datadir}/shorewall/functions
%files init
%defattr(644,root,root,755)
-%doc shorewall-init-%{version}/{COPYING,changelog.txt,releasenotes.txt}
+%doc shorewall-init/{COPYING,changelog.txt,releasenotes.txt}
%attr(755,root,root) %{_sbindir}/shorewall-init
%attr(755,root,root) %{_sysconfdir}/NetworkManager/dispatcher.d/01-shorewall
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/shorewall-init
-/etc/logrotate.d/shorewall-init
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/shorewall-ifupdown
%{_mandir}/man8/shorewall-init.8.*
%{_datadir}/shorewall-init
%dir %{_libexecdir}/shorewall-init