[firewalld/f18] Fixes for RHBZ#903475, RHBZ#909466, RHBZ#915985, RHBZ#947230

Jiří Popelka jpopelka at fedoraproject.org
Wed Apr 3 10:27:09 UTC 2013


commit 3c57b18fdce8c33c5601bb502e486f896441e130
Author: Jiri Popelka <jpopelka at redhat.com>
Date:   Wed Apr 3 12:22:34 2013 +0200

    Fixes for RHBZ#903475, RHBZ#909466, RHBZ#915985, RHBZ#947230

 firewalld-0.2.12-bz903475.patch   |   57 ++++++++++++++++++++
 firewalld-0.2.12-bz909466_1.patch |   94 ++++++++++++++++++++++++++++++++
 firewalld-0.2.12-bz909466_2.patch |   90 +++++++++++++++++++++++++++++++
 firewalld-0.2.12-bz909466_3.patch |   57 ++++++++++++++++++++
 firewalld-0.2.12-bz915985.patch   |  106 +++++++++++++++++++++++++++++++++++++
 firewalld-0.2.12-bz947230.patch   |   70 ++++++++++++++++++++++++
 firewalld.spec                    |   26 +++++++--
 7 files changed, 495 insertions(+), 5 deletions(-)
---
diff --git a/firewalld-0.2.12-bz903475.patch b/firewalld-0.2.12-bz903475.patch
new file mode 100644
index 0000000..319c527
--- /dev/null
+++ b/firewalld-0.2.12-bz903475.patch
@@ -0,0 +1,57 @@
+From e2ae60bf86335ea914574174a722f0ffdfb81e2f Mon Sep 17 00:00:00 2001
+From: Thomas Woerner <twoerner at redhat.com>
+Date: Tue, 26 Feb 2013 18:36:41 +0100
+Subject: [PATCH] Fix interaction problem of changed event of gtk combobox with
+ polkit-kde by processing all remaining events.
+
+The changed callback is signaled before the popup window has been
+destroyed and before the focus (keyboard and mouse) has been reset.
+
+This results in a deadlock in KDE and Qt, because the polkit KDE
+agent can not get the focus and the user has no chance to enter the
+desired password into the agent and is also not able to close the
+agent with the mouse. The focus is still on the combobox popup.
+
+Update: Use gdk, code by Ray Strode
+
+Revert "Fix interaction problem of changed event of gtk combobox with polkit-kde"
+
+This reverts commit f57e72ba526e3cd982c8fc072cefc9efd616b428.
+---
+ src/firewall-config | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/src/firewall-config b/src/firewall-config
+index 199f202..9f4566a 100755
+--- a/src/firewall-config
++++ b/src/firewall-config
+@@ -23,7 +23,7 @@
+ import sys
+ 
+ try:
+-    from gi.repository import Gtk
++    from gi.repository import Gtk, Gdk
+ except RuntimeError as e:
+     print ("firewall-config: %s" % e)
+     print ("This is a graphical application and requires DISPLAY to be set.")
+@@ -810,6 +810,17 @@ class FirewallConfig(object):
+         self.fw.reload()
+ 
+     def onChangeView(self, *args):
++        # Fix interaction problem of changed event of gtk combobox with 
++        # polkit-kde by processing all remaining events.
++        #
++        # The changed callback is signaled before the popup window has been
++        # destroyed and before the focus (keyboard and mouse) has been reset.
++        # This results in a deadlock in KDE and Qt, because the polkit KDE
++        # agent can not get the focus and the user has no chance to enter the
++        # desired password into the agent and is also not able to close the
++        # agent with the mouse. The focus is still on the combobox popup.
++        Gdk.DisplayManager.get().get_default_display().flush()
++
+         self.runtime_view = (self.currentViewCombobox.get_active_text() == \
+                                  _("Runtime Configuration"))
+ 
+-- 
+1.8.1.4
+
diff --git a/firewalld-0.2.12-bz909466_1.patch b/firewalld-0.2.12-bz909466_1.patch
new file mode 100644
index 0000000..9591dde
--- /dev/null
+++ b/firewalld-0.2.12-bz909466_1.patch
@@ -0,0 +1,94 @@
+From c5bff8daecfc5f386a6169a200f208ed6a96d72e Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka at redhat.com>
+Date: Wed, 13 Feb 2013 12:57:37 +0100
+Subject: [PATCH 1/3] Check also services and icmptypes in Zone(), RHBZ#909466
+
+To be able to check if services and/or icmptypes exist,
+we need to add pointer to FirewallConfig instance, so
+we can use its get_services() and get_icmptypes() methods.
+---
+ src/firewall/core/fw.py         |  1 +
+ src/firewall/core/fw_config.py  |  2 ++
+ src/firewall/core/io/service.py |  2 +-
+ src/firewall/core/io/zone.py    | 15 +++++++++++++--
+ 4 files changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/src/firewall/core/fw.py b/src/firewall/core/fw.py
+index 39f8145..570f2d6 100644
+--- a/src/firewall/core/fw.py
++++ b/src/firewall/core/fw.py
+@@ -213,6 +213,7 @@ class Firewall:
+                     self.config.add_service(copy.deepcopy(obj), default)
+                 elif reader_type == "zone":
+                     obj = zone_reader(filename, path)
++                    obj.fw_config = self.config
+                     if obj.name in self.zone.get_zones():
+                         orig_obj = self.zone.get_zone(obj.name)
+                         if orig_obj.immutable:
+diff --git a/src/firewall/core/fw_config.py b/src/firewall/core/fw_config.py
+index 9ec2d40..abda3ce 100644
+--- a/src/firewall/core/fw_config.py
++++ b/src/firewall/core/fw_config.py
+@@ -451,6 +451,7 @@ class FirewallConfig:
+         x.name = name
+         x.filename = "%s.xml" % name
+         x.path = ETC_FIREWALLD_ZONES
++        x.fw_config = self
+ 
+         zone_writer(x)
+         self.add_zone(x, False)
+@@ -491,6 +492,7 @@ class FirewallConfig:
+         # new or updated file
+ 
+         obj = zone_reader(filename, path)
++        obj.fw_config = self
+         obj.defaults = False
+ 
+         # new zone
+diff --git a/src/firewall/core/io/service.py b/src/firewall/core/io/service.py
+index 406731e..6e7f1db 100644
+--- a/src/firewall/core/io/service.py
++++ b/src/firewall/core/io/service.py
+@@ -66,7 +66,7 @@ class Service(IO_Object):
+             for port in config:
+                 check_port(port[0])
+                 check_protocol(port[1])
+-        if item == "destination":
++        elif item == "destination":
+             for destination in config:
+                 if destination not in [ "ipv4", "ipv6" ]:
+                     raise FirewallError(INVALID_DESTINATION, destination)
+diff --git a/src/firewall/core/io/zone.py b/src/firewall/core/io/zone.py
+index 0f326be..b2ea63b 100644
+--- a/src/firewall/core/io/zone.py
++++ b/src/firewall/core/io/zone.py
+@@ -74,13 +74,24 @@ class Zone(IO_Object):
+         self.icmp_blocks = [ ]
+         self.masquerade = False
+         self.forward_ports = [ ]
++        self.fw_config = None # to be able to check services and a icmp_blocks
+ 
+     def _check_config(self, config, item):
+-        if item == "ports":
++        if item == "services" and self.fw_config:
++            existing_services = self.fw_config.get_services()
++            for service in config:
++                if not service in existing_services:
++                    raise FirewallError(INVALID_SERVICE, service)
++        elif item == "ports":
+             for port in config:
+                 check_port(port[0])
+                 check_protocol(port[1])
+-        if item == "forward_ports":
++        elif item == "icmp_blocks" and self.fw_config:
++            existing_icmptypes = self.fw_config.get_icmptypes()
++            for icmptype in config:
++                if not icmptype in existing_icmptypes:
++                    raise FirewallError(INVALID_ICMPTYPE, icmptype)
++        elif item == "forward_ports":
+             for fwd_port in config:
+                 check_port(fwd_port[0])
+                 check_protocol(fwd_port[1])
+-- 
+1.8.1.4
+
diff --git a/firewalld-0.2.12-bz909466_2.patch b/firewalld-0.2.12-bz909466_2.patch
new file mode 100644
index 0000000..0acf03d
--- /dev/null
+++ b/firewalld-0.2.12-bz909466_2.patch
@@ -0,0 +1,90 @@
+From 8871709124a3899d9bfb24c4b42bdf464258a6ab Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka at redhat.com>
+Date: Wed, 13 Feb 2013 15:12:09 +0100
+Subject: [PATCH 2/3] Continue loading zone in case of wrong service/port etc.
+ (RHBZ#909466)
+
+---
+ src/firewall/core/fw_zone.py | 57 ++++++++++++++++++++++----------------------
+ 1 file changed, 28 insertions(+), 29 deletions(-)
+
+diff --git a/src/firewall/core/fw_zone.py b/src/firewall/core/fw_zone.py
+index 1810f1c..6d874e5 100644
+--- a/src/firewall/core/fw_zone.py
++++ b/src/firewall/core/fw_zone.py
+@@ -54,44 +54,43 @@ class FirewallZone:
+         z = self._fw.check_zone(zone)
+         return self._zones[z]
+ 
++    def _error2warning(self, f, name, *args):
++        # transform errors into warnings
++        try:
++            f(name, *args)
++        except FirewallError as msg:
++            log.warning("%s: %s" % (name, msg))
++
+     def add_zone(self, obj):
+         obj.settings = { x : {} for x in [ "interfaces", "services", "ports",
+                                "masquerade", "forward_ports", "icmp_blocks" ] }
+ 
+         self._zones[obj.name] = obj
+ 
+-        # transform errors into warnings here, load zone in case of 
+-        # missing services, icmptypes etc.
+-        try:
+-            # apply default zone settings from config files
+-            for args in obj.icmp_blocks:
+-                self.add_icmp_block(obj.name, args)
+-            for args in obj.forward_ports:
+-                self.add_forward_port(obj.name, *args)
+-            for args in obj.services:
+-                self.add_service(obj.name, args)
+-            for args in obj.ports:
+-                self.add_port(obj.name, *args)
+-            if obj.masquerade:
+-                self.add_masquerade(obj.name)
+-        except FirewallError as msg:
+-            log.warning("%s: %s" % (obj.name, msg))
++        # load zone in case of missing services, icmptypes etc.
++        for args in obj.icmp_blocks:
++            self._error2warning(self.add_icmp_block, obj.name, args)
++        for args in obj.forward_ports:
++            self._error2warning(self.add_forward_port, obj.name, *args)
++        for args in obj.services:
++            self._error2warning(self.add_service, obj.name, args)
++        for args in obj.ports:
++            self._error2warning(self.add_port, obj.name, *args)
++        if obj.masquerade:
++            self._error2warning(self.add_masquerade, obj.name)
+ 
+     def remove_zone(self, zone):
+         obj = self._zones[zone]
+-        try:
+-            for args in obj.icmp_blocks:
+-                self.remove_icmp_block(obj.name, args)
+-            for args in obj.forward_ports:
+-                self.remove_forward_port(obj.name, *args)
+-            for args in obj.services:
+-                self.remove_service(obj.name, args)
+-            for args in obj.ports:
+-                self.remove_port(obj.name, *args)
+-            if obj.masquerade:
+-                self.remove_masquerade(obj.name)
+-        except FirewallError as msg:
+-            log.warning("%s: %s" % (obj.name, msg))
++        for args in obj.icmp_blocks:
++            self._error2warning(self.remove_icmp_block, obj.name, args)
++        for args in obj.forward_ports:
++            self._error2warning(self.remove_forward_port, obj.name, *args)
++        for args in obj.services:
++            self._error2warning(self.remove_service, obj.name, args)
++        for args in obj.ports:
++            self._error2warning(self.remove_port, obj.name, *args)
++        if obj.masquerade:
++            self._error2warning(self.remove_masquerade, obj.name)
+ 
+         obj.settings.clear()
+         del self._zones[zone]
+-- 
+1.8.1.4
+
diff --git a/firewalld-0.2.12-bz909466_3.patch b/firewalld-0.2.12-bz909466_3.patch
new file mode 100644
index 0000000..c8a261f
--- /dev/null
+++ b/firewalld-0.2.12-bz909466_3.patch
@@ -0,0 +1,57 @@
+From e9c7c99dbea80a8630cc43918855b3a1ad4656ec Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka at redhat.com>
+Date: Thu, 14 Feb 2013 11:08:05 +0100
+Subject: [PATCH 3/3] Amend commit c5bff8d
+
+---
+ src/firewall/core/fw.py        | 1 -
+ src/firewall/core/fw_config.py | 4 +++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/firewall/core/fw.py b/src/firewall/core/fw.py
+index 570f2d6..39f8145 100644
+--- a/src/firewall/core/fw.py
++++ b/src/firewall/core/fw.py
+@@ -213,7 +213,6 @@ class Firewall:
+                     self.config.add_service(copy.deepcopy(obj), default)
+                 elif reader_type == "zone":
+                     obj = zone_reader(filename, path)
+-                    obj.fw_config = self.config
+                     if obj.name in self.zone.get_zones():
+                         orig_obj = self.zone.get_zone(obj.name)
+                         if orig_obj.immutable:
+diff --git a/src/firewall/core/fw_config.py b/src/firewall/core/fw_config.py
+index abda3ce..a0196b0 100644
+--- a/src/firewall/core/fw_config.py
++++ b/src/firewall/core/fw_config.py
+@@ -427,12 +427,14 @@ class FirewallConfig:
+     def set_zone_config(self, obj, config):
+         if obj.defaults:
+             x = copy.copy(obj)
++            x.fw_config = self
+             x.import_config(config)
+             x.path = ETC_FIREWALLD_ZONES
+             self.add_zone(x, False)
+             zone_writer(x)
+             return x
+         else:
++            obj.fw_config = self
+             obj.import_config(config)
+             zone_writer(obj)
+             return obj
+@@ -447,11 +449,11 @@ class FirewallConfig:
+ 
+         x = Zone()
+         x.check_name(name)
++        x.fw_config = self
+         x.import_config(config)
+         x.name = name
+         x.filename = "%s.xml" % name
+         x.path = ETC_FIREWALLD_ZONES
+-        x.fw_config = self
+ 
+         zone_writer(x)
+         self.add_zone(x, False)
+-- 
+1.8.1.4
+
diff --git a/firewalld-0.2.12-bz915985.patch b/firewalld-0.2.12-bz915985.patch
new file mode 100644
index 0000000..1d4633c
--- /dev/null
+++ b/firewalld-0.2.12-bz915985.patch
@@ -0,0 +1,106 @@
+From be2be66d3d68ed1737fd43f9283cbbdf205d1f94 Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka at redhat.com>
+Date: Thu, 24 Jan 2013 17:39:47 +0100
+Subject: [PATCH] Use zone's target only in %s_ZONES chains.
+
+Previously if the zone's target was other than default
+and there were any services/ports etc. allowed, we
+were trying to add rules to TARGET_allow chain
+(i.e. ACCEPT_allow or DROP_allow), which doesn't exist.
+
+https://lists.fedorahosted.org/pipermail/firewalld-users/2013-January/000040.html
+---
+ src/firewall/core/fw_zone.py | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/src/firewall/core/fw_zone.py b/src/firewall/core/fw_zone.py
+index b13d050..1810f1c 100644
+--- a/src/firewall/core/fw_zone.py
++++ b/src/firewall/core/fw_zone.py
+@@ -117,7 +117,7 @@ class FirewallZone:
+ 
+         chains = [ ]
+         rules = [ ]
+-        zones = [ self._zones[zone].target.format(chain=SHORTCUTS[chain],
++        zones = [ DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS[chain],
+                                                   zone=zone) ]
+ 
+         # TODO: simplify for one zone only
+@@ -379,7 +379,7 @@ class FirewallZone:
+ 
+             # handle rules
+             for (port,proto) in svc.ports:
+-                target = self._zones[zone].target.format(
++                target = DEFAULT_ZONE_TARGET.format(
+                     chain=SHORTCUTS["INPUT"], zone=zone)
+                 rule = [ "%s_allow" % (target), "-t", "filter" ]
+                 if proto in [ "tcp", "udp" ]:
+@@ -477,7 +477,7 @@ class FirewallZone:
+ 
+         rules = [ ]
+         for ipv in [ "ipv4", "ipv6" ]:
+-            target = self._zones[zone].target.format(chain=SHORTCUTS["INPUT"],
++            target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"],
+                                                      zone=zone)
+             rules.append((ipv, [ "%s_allow" % (target),
+                                  "-t", "filter",
+@@ -548,12 +548,12 @@ class FirewallZone:
+ 
+         rules = [ ]
+         for ipv in [ "ipv4" ]: # IPv4 only!
+-            target = self._zones[zone].target.format(
++            target = DEFAULT_ZONE_TARGET.format(
+                 chain=SHORTCUTS["POSTROUTING"], zone=zone)
+             rules.append((ipv, [ "%s_allow" % (target),
+                                  "-t", "nat", "-j", "MASQUERADE" ]))
+             # FORWARD_OUT
+-            target = self._zones[zone].target.format(
++            target = DEFAULT_ZONE_TARGET.format(
+                 chain=SHORTCUTS["FORWARD_OUT"], zone=zone)
+             rules.append((ipv, [ "%s_allow" % (target),
+                                  "-t", "filter", "-j", "ACCEPT" ]))
+@@ -650,7 +650,7 @@ class FirewallZone:
+ 
+         rules = [ ]
+         for ipv in [ "ipv4" ]: # IPv4 only!
+-            target = self._zones[zone].target.format(
++            target = DEFAULT_ZONE_TARGET.format(
+                 chain=SHORTCUTS["PREROUTING"], zone=zone)
+             rules.append((ipv, [ "%s_allow" % (target),
+                                  "-t", "mangle",
+@@ -664,7 +664,7 @@ class FirewallZone:
+ 
+             if not toaddr:
+                 # local only
+-                target = self._zones[zone].target.format(
++                target = DEFAULT_ZONE_TARGET.format(
+                     chain=SHORTCUTS["INPUT"], zone=zone)
+                 rules.append((ipv, [ "%s_allow" % (target),
+                                      "-t", "filter", 
+@@ -672,7 +672,7 @@ class FirewallZone:
+                                   mark + [ "-j", "ACCEPT" ]))
+             else:
+                 # FORWARD_IN
+-                target = self._zones[zone].target.format(
++                target = DEFAULT_ZONE_TARGET.format(
+                     chain=SHORTCUTS["FORWARD_IN"], zone=zone)
+                 rules.append((ipv, [ "%s_allow" % (target),
+                                      "-t", "filter",
+@@ -774,12 +774,12 @@ class FirewallZone:
+                 proto = [ "-p", "ipv6-icmp" ]
+                 match = [ "-m", "icmp6", "--icmpv6-type", icmp ]
+ 
+-            target = self._zones[zone].target.format(chain=SHORTCUTS["INPUT"],
++            target = DEFAULT_ZONE_TARGET.format(chain=SHORTCUTS["INPUT"],
+                                                      zone=zone)
+             rules.append((ipv, [ "%s_deny" % (target),
+                                  "-t", "filter", ] + proto + \
+                               match + [ "-j", "%%REJECT%%" ]))
+-            target = self._zones[zone].target.format(
++            target = DEFAULT_ZONE_TARGET.format(
+                 chain=SHORTCUTS["FORWARD_IN"], zone=zone)
+             rules.append((ipv, [ "%s_deny" % (target),
+                                  "-t", "filter", ] + proto + \
+-- 
+1.8.1.4
+
diff --git a/firewalld-0.2.12-bz947230.patch b/firewalld-0.2.12-bz947230.patch
new file mode 100644
index 0000000..fdb1f48
--- /dev/null
+++ b/firewalld-0.2.12-bz947230.patch
@@ -0,0 +1,70 @@
+From bbc6e18ba0c0c1da16019813ce8c0326adc2cf06 Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka at redhat.com>
+Date: Tue, 2 Apr 2013 16:13:26 +0200
+Subject: [PATCH] firewall-applet: fix default zone hangling in 'shields-up'
+ (RHBZ#947230)
+
+default_zone_changed(): check/uncheck shields-up if something else
+                        changes default zone
+shieldsup_check_toggled(): do not change default zone if already changed
+connection_established(): do not call getDefaultZone() twice
+---
+ src/firewall-applet | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/src/firewall-applet b/src/firewall-applet
+index c547244..589af7a 100755
+--- a/src/firewall-applet
++++ b/src/firewall-applet
+@@ -42,6 +42,7 @@ from firewall.config import *
+ from firewall.config.dbus import *
+ from firewall.client import FirewallClient
+ from firewall.dbus_utils import dbus_to_python
++from firewall.errors import *
+ import dbus
+ 
+ 
+@@ -370,9 +371,15 @@ class TrayApplet(object):
+ 
+     def shieldsup_check_toggled(self, button):
+         if button.get_active():
+-            self.fw.setDefaultZone(self.settings.get_string("shields-up"))
++            zone = self.settings.get_string("shields-up")
+         else:
+-            self.fw.setDefaultZone(self.settings.get_string("shields-down"))
++            zone = self.settings.get_string("shields-down")
++
++        if self.fw.connected and self.fw.getDefaultZone() != zone:
++            try:
++                self.fw.setDefaultZone(zone)
++            except dbus.DBusException as e:
++                print("Error: %s" % e.message)
+ 
+     def notification_check_toggled(self, button, settings, key):
+         settings.set_boolean(key, button.get_active())
+@@ -519,7 +526,7 @@ class TrayApplet(object):
+             self.settings.reset("shields-down")
+ 
+         self.shieldsup_check.handler_block(self.shieldsup_check_id)
+-        if self.fw.getDefaultZone() == self.settings.get_string("shields-up"):
++        if self.default_zone == self.settings.get_string("shields-up"):
+             self.shieldsup_check.set_active(True)
+         else:
+             self.shieldsup_check.set_active(False)
+@@ -704,6 +711,13 @@ class TrayApplet(object):
+         self.update_active_zones()
+         self.update_tooltip()
+ 
++        # in case something else changes default zone
++        if self.default_zone == self.settings.get_string("shields-up"):
++            self.shieldsup_check.set_active(True)
++        else:
++            self.shieldsup_check.set_active(False)
++
++
+     def _panic_mode(self, enable):
+         self.panic_check.handler_block(self.panic_check_id)
+         self.panic_check.set_active(enable)
+-- 
+1.8.1.4
+
diff --git a/firewalld.spec b/firewalld.spec
index 4b6bff5..47b773a 100644
--- a/firewalld.spec
+++ b/firewalld.spec
@@ -1,7 +1,7 @@
 Summary: A firewall daemon with D-BUS interface providing a dynamic firewall
 Name: firewalld
 Version: 0.2.12
-Release: 4%{?dist}
+Release: 5%{?dist}
 URL: http://fedorahosted.org/firewalld
 License: GPLv2+
 ExclusiveOS: Linux
@@ -11,10 +11,17 @@ Source0: https://fedorahosted.org/released/firewalld/%{name}-%{version}.tar.bz2
 %if 0%{?fedora} > 17
 Patch0: firewalld-0.2.6-MDNS-default.patch
 %endif
-Patch1: firewalld-0.2.12-conf.patch
-Patch2: firewalld-0.2.12-gtk.patch
-Patch3: firewalld-0.2.12-bz912782.patch
-Patch4: firewalld-0.2.12-bz912782_2.patch
+Patch1:  firewalld-0.2.12-conf.patch
+Patch2:  firewalld-0.2.12-gtk.patch
+Patch3:  firewalld-0.2.12-bz912782.patch
+Patch4:  firewalld-0.2.12-bz912782_2.patch
+Patch5:  firewalld-0.2.12-bz903475.patch
+Patch6:  firewalld-0.2.12-bz909466_1.patch
+Patch7:  firewalld-0.2.12-bz909466_2.patch
+Patch8:  firewalld-0.2.12-bz909466_3.patch
+Patch9:  firewalld-0.2.12-bz915985.patch
+Patch10: firewalld-0.2.12-bz947230.patch
+
 BuildRequires: desktop-file-utils
 BuildRequires: gettext
 BuildRequires: intltool
@@ -84,6 +91,12 @@ firewalld.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
 
 %build
 %configure --with-systemd-unitdir=%{_unitdir}
@@ -200,6 +213,9 @@ fi
 %{_datadir}/icons/hicolor/*/apps/firewall-config*.*
 
 %changelog
+* Wed Apr 03 2013 Jiri Popelka <jpopelka at redhat.com> - 0.2.12-5
+- Fixes for RHBZ#903475, RHBZ#909466, RHBZ#915985, RHBZ#947230
+
 * Thu Mar 07 2013 Jiri Popelka <jpopelka at redhat.com> - 0.2.12-4
 - Another fix for RHBZ#912782
 


More information about the scm-commits mailing list