[firewalld/f16] convert to systemd

Tom Callaway spot at fedoraproject.org
Fri Sep 9 18:52:12 UTC 2011


commit 2d8218a0006b59b56c78c1467b5b4cb196711aff
Author: Tom "spot" Callaway <tcallawa at redhat.com>
Date:   Fri Sep 9 14:51:59 2011 -0400

    convert to systemd

 firewalld.service |   13 ++++++++++++
 firewalld.spec    |   54 +++++++++++++++++++++++++++++++++++++---------------
 2 files changed, 51 insertions(+), 16 deletions(-)
---
diff --git a/firewalld.service b/firewalld.service
new file mode 100644
index 0000000..0f8e858
--- /dev/null
+++ b/firewalld.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Firewall dynamic change handling daemon
+After=syslog.target
+
+[Service]
+Type=forking
+EnvironmentFile=-/etc/sysconfig/firewalld
+ExecStart=/usr/sbin/firewalld $FIREWALLD_ARGS
+ExecReload=/usr/bin/firewall-cmd --reload
+
+[Install]
+WantedBy=multi-user.target
+Alias=dbus-org.fedoraproject.FirewallD.service
diff --git a/firewalld.spec b/firewalld.spec
index 6df38df..cc91142 100644
--- a/firewalld.spec
+++ b/firewalld.spec
@@ -1,24 +1,26 @@
 Summary: A firewall daemon with D-BUS interface providing a dynamic firewall
 Name: firewalld
 Version: 0.1.3
-Release: 2%{?dist}
+Release: 3%{?dist}
 URL: http://fedorahosted.org/firewalld
 License: GPLv2+
 ExclusiveOS: Linux
 Group: System Environment/Base
-BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 BuildArch: noarch
 Source0: https://fedorahosted.org/released/firewalld/%{name}-%{version}.tar.bz2
-
+Source1: firewalld.service
 BuildRequires: desktop-file-utils
 BuildRequires: gettext
 BuildRequires: intltool
+BuildRequires: systemd-units
+Requires(post): systemd-sysv
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
 Requires: system-config-firewall-base >= 1.2.28
 Requires: dbus-python
 Requires: python-slip-dbus >= 0.2.7
 Requires: iptables, ebtables
-Requires(post): chkconfig
-Requires(preun): chkconfig
 
 %description
 firewalld is a firewall service daemon that provides a dynamic customizable 
@@ -58,10 +60,13 @@ the firewall settings.
 %configure
 
 %install
-rm -rf %{buildroot}
-
 make install DESTDIR=%{buildroot}
 
+# systemd
+rm -rf %{buildroot}%{_initddir}
+mkdir -p %{buildroot}%{_unitdir}
+install -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/
+
 desktop-file-install --delete-original \
   --dir %{buildroot}%{_datadir}/applications \
   %{buildroot}%{_datadir}/applications/firewall-applet.desktop
@@ -71,11 +76,11 @@ desktop-file-install --delete-original \
 
 %find_lang %{name} --all-name
 
-%clean
-rm -rf %{buildroot}
-
 %post
-/sbin/chkconfig --add firewalld
+if [ $1 -eq 1 ] ; then 
+    # Initial installation 
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
 touch --no-create %{_datadir}/icons/hicolor
 if [ -x /usr/bin/gtk-update-icon-cache ]; then
   gtk-update-icon-cache -q %{_datadir}/icons/hicolor
@@ -83,20 +88,34 @@ fi
 
 %preun
 if [ $1 = 0 ]; then
-  %{_initrddir}/firewalld stop >/dev/null 2>&1
-  /sbin/chkconfig --del firewalld
+    # Package removal, not upgrade
+    /bin/systemctl --no-reload disable firewalld.service > /dev/null 2>&1 || :
+    /bin/systemctl stop firewalld.service > /dev/null 2>&1 || :
 fi
-exit 0
 
 %postun
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+    # Package upgrade, not uninstall
+    /bin/systemctl try-restart firewalld.service >/dev/null 2>&1 || :
+fi
 touch --no-create %{_datadir}/icons/hicolor
 if [ -x /usr/bin/gtk-update-icon-cache ]; then
   gtk-update-icon-cache -q %{_datadir}/icons/hicolor
 fi
 
+%triggerun -- httpd < 1.0-2
+# Save the current service runlevel info
+# User must manually run systemd-sysv-convert --apply firewalld
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save firewalld >/dev/null 2>&1 ||:
+
+# Run these because the SysV package being removed won't do them
+/sbin/chkconfig --del firewalld >/dev/null 2>&1 || :
+/bin/systemctl try-restart firewalld.service >/dev/null 2>&1 || :
+
 
 %files -f %{name}.lang
-%defattr(-,root,root)
 %doc COPYING
 %{_sbindir}/firewalld
 %{_bindir}/firewall-cmd
@@ -104,7 +123,7 @@ fi
 %attr(0755,root,root) %dir %{_sysconfdir}/firewalld
 %config(noreplace) %{_sysconfdir}/firewalld/firewalld.conf
 %config(noreplace) %{_sysconfdir}/sysconfig/firewalld
-%attr(0755,root,root) %{_initrddir}/firewalld
+%{_unitdir}/firewalld.service
 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/FirewallD.conf
 %{_datadir}/polkit-1/actions/org.fedoraproject.FirewallD.policy
 %attr(0755,root,root) %dir %{_datadir}/firewalld/
@@ -127,6 +146,9 @@ fi
 #%{_datadir}/icons/hicolor/*/apps/firewall-config*.*
 
 %changelog
+* Fri Sep  9 2011 Tom Callaway <spot at fedoraproject.org> 0.1.3-3
+- convert to systemd
+
 * Mon Feb 14 2011 Thomas Woerner <twoerner at redhat.com> 0.1.3-1
 - new version 0.1.3
 - restore all firewall features for reload: panic and virt rules and chains


More information about the scm-commits mailing list