Compare commits

...
Sign in to create a new pull request.

8 commits

Author SHA1 Message Date
David Cantrell
5d118fe3cd Attempt to work with the latest upstream python-urwid (#879155)
- Add missing sanitize_config() function (#873016)
2013-03-14 14:55:48 -04:00
David Cantrell
7f1ae9466e Fix some Unicode text handling problems (#845749) 2012-10-23 14:20:03 -04:00
David Cantrell
63967d1945 Fix property handling for CVE-2012-2095 upstream patch (#820166) 2012-08-02 13:34:53 -04:00
David Cantrell
93adda7df4 Remove duplicate logrotate file (#820139) 2012-08-02 10:46:36 -04:00
David Cantrell
4743ac008c Upgrade to wicd-1.7.2.1 to fix CVE-2012-2095 (#811763) 2012-04-13 10:05:51 -04:00
David Cantrell
10a80c7031 Remove our wicd.service file, this is provided by upstream now
- Make sure systemd unit files go to /usr/lib/systemd
- Stop mangling logfile.py so bytecompiling will actually work
- 91wicd -> 55wicd
- Pick up new encryption template files in the %files list
- BR babel
- Remove po/ast.po because babel doesn't understand it
- Ensure wpath.etc is set to /etc/wicd, not /etc/dhcp (#754412)
- Initialize child_pid to None in wicd-daemon.py (#798692)
- Make wicd-gtk subpackage require notify-python (#748258)
- Work around no-op problem in DaemonClosing calls (#740317)
- Upgrade to wicd-1.7.1 final release (#789380)
- Have wicd-common require pygobject2 (#754416)
- Remove patches that have been incorporated upstream
2012-03-26 14:07:14 -04:00
David Cantrell
eede8cfd9b Make wicd-common require pygobject2 (#799537) 2012-03-21 15:01:45 -04:00
David Cantrell
549278e4f6 Make wicd-common require pygobject2 (#799537) 2012-03-21 15:00:55 -04:00
16 changed files with 344 additions and 179 deletions

2
.gitignore vendored
View file

@ -1 +1 @@
wicd-1.7.1b2.tar.bz2
wicd-1.7.2.1.tar.gz

View file

@ -1 +1 @@
65a6f6c9483d3fcf4ec8dfb8204fcd51 wicd-1.7.1b2.tar.bz2
96c0a08b2bc0c7f1977219a58ad70cd9 wicd-1.7.2.1.tar.gz

View file

@ -0,0 +1,12 @@
diff -up wicd-1.7.1/wicd/wicd-daemon.py.orig wicd-1.7.1/wicd/wicd-daemon.py
--- wicd-1.7.1/wicd/wicd-daemon.py.orig 2012-02-02 11:38:26.000000000 -0500
+++ wicd-1.7.1/wicd/wicd-daemon.py 2012-03-22 10:21:38.735140300 -0400
@@ -812,7 +812,7 @@ class WicdDaemon(dbus.service.Object):
pass
@dbus.service.signal(dbus_interface='org.wicd.daemon', signature='')
- def DaemonClosing(self):
+ def DaemonClosing(self, arg1=None, arg2=None):
""" Emits a signal indicating the daemon will be closing. """
pass

View file

@ -0,0 +1,49 @@
diff -up wicd-1.7.1/cli/wicd-cli.py.dbus-failure wicd-1.7.1/cli/wicd-cli.py
--- wicd-1.7.1/cli/wicd-cli.py.dbus-failure 2012-01-15 09:19:03.000000000 -0500
+++ wicd-1.7.1/cli/wicd-cli.py 2012-02-10 15:26:31.709169719 -0500
@@ -47,6 +47,10 @@ if not daemon:
print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
sys.exit(3)
+if daemon is None:
+ print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
+ sys.exit(3)
+
parser = optparse.OptionParser()
parser.add_option('--network', '-n', type='int', default=-1)
diff -up wicd-1.7.1/curses/wicd-curses.py.dbus-failure wicd-1.7.1/curses/wicd-curses.py
--- wicd-1.7.1/curses/wicd-curses.py.dbus-failure 2012-02-02 11:38:26.000000000 -0500
+++ wicd-1.7.1/curses/wicd-curses.py 2012-02-10 15:26:31.709169719 -0500
@@ -1037,6 +1037,10 @@ def setup_dbus(force=True):
print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
sys.exit(3)
+ if daemon is None:
+ print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
+ sys.exit(3)
+
netentry_curses.dbus_init(dbus_ifaces)
return True
diff -up wicd-1.7.1/gtk/gui.py.dbus-failure wicd-1.7.1/gtk/gui.py
--- wicd-1.7.1/gtk/gui.py.dbus-failure 2012-01-15 09:24:23.000000000 -0500
+++ wicd-1.7.1/gtk/gui.py 2012-02-10 15:26:31.711170031 -0500
@@ -158,6 +158,17 @@ class appGui(object):
d.run()
sys.exit(1)
+ if daemon is None:
+ errmsg = "Error connecting to wicd service via D-Bus." + \
+ "Please ensure the wicd service is running."
+ d = gtk.MessageDialog(parent=None,
+ flags=gtk.DIALOG_MODAL,
+ type=gtk.MESSAGE_ERROR,
+ buttons=gtk.BUTTONS_OK,
+ message_format=errmsg)
+ d.run()
+ sys.exit(1)
+
self.tray = tray
gladefile = os.path.join(wpath.gtk, "wicd.ui")

View file

@ -1,19 +0,0 @@
diff -up wicd-1.7.1b2/wicd/configmanager.py.CVE-2012-0813 wicd-1.7.1b2/wicd/configmanager.py
--- wicd-1.7.1b2/wicd/configmanager.py.CVE-2012-0813 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/wicd/configmanager.py 2012-01-27 14:17:48.773091678 -0500
@@ -107,8 +107,13 @@ class ConfigManager(RawConfigParser):
ret = ret[3:-3]
if default:
if self.debug:
- print ''.join(['found ', option, ' in configuration ',
- str(ret)])
+ # mask out sensitive information
+ if option in ['apsk', 'password', 'identity', 'private_key', \
+ 'private_key_passwd', 'key', 'passphrase']:
+ print ''.join(['found ', option, ' in configuration *****'])
+ else:
+ print ''.join(['found ', option, ' in configuration ',
+ str(ret)])
else:
if default != "__None__":
print 'did not find %s in configuration, setting default %s' % (option, str(default))

View file

@ -1,49 +0,0 @@
diff -up wicd-1.7.1b2/cli/wicd-cli.py.orig wicd-1.7.1b2/cli/wicd-cli.py
--- wicd-1.7.1b2/cli/wicd-cli.py.orig 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/cli/wicd-cli.py 2011-08-19 17:06:57.834035455 -0400
@@ -43,6 +43,10 @@ except dbus.DBusException:
print 'Error: Could not connect to the daemon. Please make sure it is running.'
sys.exit(3)
+if daemon is None:
+ print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
+ sys.exit(3)
+
parser = optparse.OptionParser()
parser.add_option('--network', '-n', type='int', default=-1)
diff -up wicd-1.7.1b2/curses/wicd-curses.py.orig wicd-1.7.1b2/curses/wicd-curses.py
--- wicd-1.7.1b2/curses/wicd-curses.py.orig 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/curses/wicd-curses.py 2011-08-19 17:06:57.835034617 -0400
@@ -1017,6 +1017,10 @@ def setup_dbus(force=True):
wireless = dbus_ifaces['wireless']
wired = dbus_ifaces['wired']
+ if daemon is None:
+ print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
+ sys.exit(3)
+
netentry_curses.dbus_init(dbus_ifaces)
return True
diff -up wicd-1.7.1b2/gtk/gui.py.orig wicd-1.7.1b2/gtk/gui.py
--- wicd-1.7.1b2/gtk/gui.py.orig 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/gtk/gui.py 2011-08-19 17:06:57.836054170 -0400
@@ -145,6 +145,17 @@ class appGui(object):
""" Initializes everything needed for the GUI. """
setup_dbus()
+ if daemon is None:
+ errmsg = "Error connecting to wicd service via D-Bus." + \
+ "Please ensure the wicd service is running."
+ d = gtk.MessageDialog(parent=None,
+ flags=gtk.DIALOG_MODAL,
+ type=gtk.MESSAGE_ERROR,
+ buttons=gtk.BUTTONS_OK,
+ message_format=errmsg)
+ d.run()
+ sys.exit(1)
+
self.tray = tray
gladefile = os.path.join(wpath.gtk, "wicd.ui")

View file

@ -1,27 +0,0 @@
diff -up wicd-1.7.1b2/curses/wicd-curses.py.orig wicd-1.7.1b2/curses/wicd-curses.py
--- wicd-1.7.1b2/curses/wicd-curses.py.orig 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/curses/wicd-curses.py 2011-08-19 17:07:55.523159764 -0400
@@ -1030,7 +1030,7 @@ if __name__ == '__main__':
parser = OptionParser(version="wicd-curses-%s (using wicd %s)" % (CURSES_REV,daemon.Hello()), prog="wicd-curses")
except Exception, e:
if "DBus.Error.AccessDenied" in e.get_dbus_name():
- print language['access_denied_wc'].replace('$A','\033[1;34m'+wpath.wicd_group+'\033[0m')
+ print language['access_denied_wc']
sys.exit(1)
else:
raise
diff -up wicd-1.7.1b2/wicd/translations.py.orig wicd-1.7.1b2/wicd/translations.py
--- wicd-1.7.1b2/wicd/translations.py.orig 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/wicd/translations.py 2011-08-19 17:07:55.524160039 -0400
@@ -214,9 +214,9 @@ language['connection_established'] = _('
language['disconnected'] = _('''Disconnected''')
language['establishing_connection'] = _('''Establishing connection...''')
language['association_failed'] = _('''Connection failed: Could not contact the wireless access point.''')
-language['access_denied'] = _('''Unable to contact the Wicd daemon due to an access denied error from DBus. Please check that your user is in the $A group.''')
+language['access_denied'] = _('''Unable to contact the Wicd daemon due to an access denied error from DBus. Please check your D-Bus policy configuration.''')
language['disconnecting_active'] = _('''Disconnecting active connections...''')
-language['access_denied_wc'] = _('''ERROR: wicd-curses was denied access to the wicd daemon: please check that your user is in the "$A" group.''')
+language['access_denied_wc'] = _('''ERROR: wicd-curses was denied access to the wicd daemon: please check your D-Bus policy configuration.''')
language['post_disconnect_script'] = _('''Run post-disconnect script''')
language['resume_script'] = _('''Resume script''')
language['suspend_script'] = _('''Suspend script''')

View file

@ -1,13 +0,0 @@
diff -up wicd-1.7.1b2/cli/wicd-cli.py.orig wicd-1.7.1b2/cli/wicd-cli.py
--- wicd-1.7.1b2/cli/wicd-cli.py.orig 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/cli/wicd-cli.py 2011-08-19 17:10:38.582160338 -0400
@@ -191,6 +191,9 @@ if options.connect:
check = lambda: wired.CheckIfWiredConnecting()
message = lambda: wired.CheckWiredConnectingMessage()
+ else:
+ check = lambda: False
+ message = lambda: False
# update user on what the daemon is doing
last = None

View file

@ -1,11 +0,0 @@
diff -up wicd-1.7.1b2/gtk/gui.py.orig wicd-1.7.1b2/gtk/gui.py
--- wicd-1.7.1b2/gtk/gui.py.orig 2010-10-29 11:36:55.000000000 -0400
+++ wicd-1.7.1b2/gtk/gui.py 2011-08-19 17:09:39.142160320 -0400
@@ -208,6 +208,7 @@ class appGui(object):
self.refreshing = False
self.prev_state = None
self.update_cb = None
+ self._wired_showing = False
self.network_list.set_sensitive(False)
label = gtk.Label("%s..." % language['scanning'])
self.network_list.pack_start(label)

View file

@ -0,0 +1,84 @@
diff -up wicd-1.7.2.1/wicd/wicd-daemon.py.CVE-2012-2095 wicd-1.7.2.1/wicd/wicd-daemon.py
--- wicd-1.7.2.1/wicd/wicd-daemon.py.CVE-2012-2095 2012-08-02 13:30:29.880928627 -0400
+++ wicd-1.7.2.1/wicd/wicd-daemon.py 2012-08-02 13:32:44.938076206 -0400
@@ -946,28 +946,6 @@ class WirelessDaemon(dbus.service.Object
self.LastScan = []
self.config = ConfigManager(wireless_conf, debug=debug)
- self._validProperties = (
- 'bssid',
- 'essid',
- 'hidden',
- 'channel',
- 'mode',
- 'enctype',
- 'encryption_method',
- 'key',
- 'automatic',
- 'ip',
- 'netmask',
- 'broadcast',
- 'gateway',
- 'use_static_dns',
- 'use_global_dns',
- 'dns1',
- 'dns2',
- 'dns3',
- 'use_settings_globally',
- )
-
def get_debug_mode(self):
return self._debug_mode
def set_debug_mode(self, mode):
@@ -1086,9 +1064,9 @@ class WirelessDaemon(dbus.service.Object
def SetWirelessProperty(self, netid, prop, value):
""" Sets property to value in network specified. """
# We don't write script settings here.
- if prop.strip() not in self._validProperties:
- print "Trying to set invalid property (or property not " \
- "permitted): "+ prop.strip() + "."
+ if misc.sanitize_config(prop).endswith('script'):
+ print 'Setting script properties through the daemon' \
+ + ' is not permitted.'
return False
self.LastScan[netid][prop] = misc.to_unicode(misc.Noneify(value))
@@ -1377,25 +1355,6 @@ class WiredDaemon(dbus.service.Object):
self.WiredNetwork = {}
self.config = ConfigManager(wired_conf, debug=debug)
- self._validProperties = (
- 'ip',
- 'broadcast',
- 'netmask',
- 'gateway',
- 'search_domain',
- 'dns_domain',
- 'dns1',
- 'dns2',
- 'dns3',
- 'encryption_enabled',
- 'default',
- 'dhcphostname',
- 'lastused',
- 'profilename',
- 'use_global_dns',
- 'use_static_dns',
- )
-
def get_debug_mode(self):
return self._debug_mode
def set_debug_mode(self, mode):
@@ -1447,9 +1406,9 @@ class WiredDaemon(dbus.service.Object):
def SetWiredProperty(self, prop, value):
""" Sets the given property to the given value. """
if self.WiredNetwork:
- if prop.strip() not in self._validProperties:
- print "Trying to set invalid property (or property not " \
- "permitted): "+ prop.strip() + "."
+ if misc.sanitize_config(prop).endswith('script'):
+ print 'Setting script properties through the daemon' \
+ + ' is not permitted.'
return False
self.WiredNetwork[prop] = misc.to_unicode(misc.Noneify(value))
return True

View file

@ -0,0 +1,80 @@
diff -up wicd-1.7.2.1/curses/curses_misc.py.orig wicd-1.7.2.1/curses/curses_misc.py
--- wicd-1.7.2.1/curses/curses_misc.py.orig 2011-10-18 17:26:55.000000000 -0400
+++ wicd-1.7.2.1/curses/curses_misc.py 2013-03-14 14:48:27.145602491 -0400
@@ -350,6 +350,10 @@ class ComboBox(urwid.WidgetWrap):
self.use_enter = use_enter
self.focus = focus
+ if urwid.VERSION < (1, 1, 0):
+ self.focus = focus
+ else:
+ self._w.focus_position = focus
self.callback = callback
self.user_args = user_args
@@ -363,6 +367,14 @@ class ComboBox(urwid.WidgetWrap):
def set_focus(self,index):
self.focus = index
+ if urwid.VERSION < (1, 1, 0):
+ self.focus = index
+ else:
+ try:
+ self._w.focus_position = index
+ except IndexError:
+ pass
+
# API changed between urwid 0.9.8.4 and 0.9.9
try:
self.cbox.set_w(SelText(self.list[index]+self.DOWN_ARROW))
@@ -376,16 +388,21 @@ class ComboBox(urwid.WidgetWrap):
def build_combobox(self,parent,ui,row):
str,trash = self.label.get_text()
- self.cbox = DynWrap(SelText([self.list[self.focus]+self.DOWN_ARROW]),
+ if urwid.VERSION < (1, 1, 0):
+ index = self.focus
+ else:
+ index = self._w.focus_position
+
+ self.cbox = DynWrap(SelText([self.list[index]+self.DOWN_ARROW]),
attrs=self.attrs,focus_attr=self.focus_attr)
if str != '':
w = urwid.Columns([('fixed',len(str),self.label),self.cbox],
dividechars=1)
- self.overlay = self.ComboSpace(self.list,parent,ui,self.focus,
+ self.overlay = self.ComboSpace(self.list,parent,ui,index,
pos=(len(str)+1,row))
else:
w = urwid.Columns([self.cbox])
- self.overlay = self.ComboSpace(self.list,parent,ui,self.focus,
+ self.overlay = self.ComboSpace(self.list,parent,ui,index,
pos=(0,row))
self._w = w
@@ -419,7 +436,10 @@ class ComboBox(urwid.WidgetWrap):
if self.overlay:
return self.overlay._listbox.get_focus()
else:
- return None,self.focus
+ if urwid.VERSION < (1, 1, 0):
+ return None, self.focus
+ else:
+ return None, self._w.focus_position
def get_sensitive(self):
return self.cbox.get_sensitive()
diff -up wicd-1.7.2.1/curses/wicd-curses.py.orig wicd-1.7.2.1/curses/wicd-curses.py
--- wicd-1.7.2.1/curses/wicd-curses.py.orig 2012-04-12 15:59:00.000000000 -0400
+++ wicd-1.7.2.1/curses/wicd-curses.py 2013-03-14 14:41:35.895635604 -0400
@@ -1042,6 +1042,10 @@ def setup_dbus(force=True):
print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
sys.exit(3)
+ if daemon is None:
+ print 'Error connecting to wicd via D-Bus. Please make sure the wicd service is running.'
+ sys.exit(3)
+
netentry_curses.dbus_init(dbus_ifaces)
return True

View file

@ -0,0 +1,16 @@
diff -up wicd-1.7.2.1/wicd/misc.py.orig wicd-1.7.2.1/wicd/misc.py
--- wicd-1.7.2.1/wicd/misc.py.orig 2012-02-17 08:19:13.000000000 -0500
+++ wicd-1.7.2.1/wicd/misc.py 2013-03-14 14:54:12.672935263 -0400
@@ -612,3 +612,12 @@ def grouper(n, iterable, fillvalue=None)
"""
args = [iter(iterable)] * n
return izip_longest(fillvalue=fillvalue, *args)
+
+def sanitize_config(s):
+ """ Sanitize property names to be used in config-files. """
+ allowed = string.ascii_letters + '_' + string.digits
+ table = string.maketrans(allowed, ' ' * len(allowed))
+
+ # s is a dbus.String -- since we don't allow unicode property keys,
+ # make it simple.
+ return s.encode('ascii', 'replace').translate(None, table)

View file

@ -0,0 +1,21 @@
diff -up wicd-1.7.2.1/curses/netentry_curses.py.unicode wicd-1.7.2.1/curses/netentry_curses.py
--- wicd-1.7.2.1/curses/netentry_curses.py.unicode 2012-02-11 15:35:45.000000000 -0500
+++ wicd-1.7.2.1/curses/netentry_curses.py 2012-10-23 14:18:22.243926856 -0400
@@ -264,7 +264,7 @@ class WiredSettingsDialog(AdvancedSettin
self.set_values()
self.prof_name = name
- title = _('Configuring preferences for wired profile "$A"').replace('$A',self.prof_name)
+ title = ''.join([_('Configuring preferences for wired profile'), self.prog_name])
self._w.header = urwid.Text( ('header',title),align='right' )
self.set_values()
@@ -386,7 +386,7 @@ class WirelessSettingsDialog(AdvancedSet
self.encrypt_types = misc.LoadEncryptionMethods()
self.set_values()
- title = _('Configuring preferences for wireless network "$A" ($B)').replace('$A',wireless.GetWirelessProperty(networkID,'essid')).replace('$B',wireless.GetWirelessProperty(networkID,'bssid'))
+ title = ''.join([_('Configuring preferences for wireless network'), wireless.GetWirelessProperty(networkID,'essid'), "(%s)" % wireless.GetWirelessProperty(networkID,'bssid')])
self._w.header = urwid.Text(('header',title),align='right' )
def set_values(self):

View file

@ -1,6 +0,0 @@
/var/log/wicd.log {
missingok
notifempty
size 30k
create 0600 root root
}

View file

@ -1,15 +0,0 @@
[Unit]
Description=Wicd a wireless and wired network manager for Linux
After=syslog.target
Wants=network.target
Before=network.target
Conflicts=NetworkManager.service
[Service]
Type=dbus
BusName=org.wicd.daemon
ExecStart=/usr/sbin/wicd --no-daemon
[Install]
WantedBy=multi-user.target
Alias=dbus-org.wicd.daemon.service

117
wicd.spec
View file

@ -6,30 +6,29 @@
%{!?_systemd_unitdir: %global _systemd_unitdir %(pkg-config systemd --variable=systemdsystemunitdir)}
%define debug_package %{nil}
%define alphatag b2
Name: wicd
Version: 1.7.1
Release: 0.3.%{alphatag}%{?dist}
Version: 1.7.2.1
Release: 5%{?dist}
Summary: Wireless and wired network connection manager
Group: System Environment/Base
License: GPLv2+
URL: http://wicd.sourceforge.net/
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}%{alphatag}.tar.bz2
Source1: wicd.logrotate
Source2: wicd.service
Source3: org.wicd.daemon.service
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
Source1: org.wicd.daemon.service
Patch0: wicd-1.7.0-remove-WHEREAREMYFILES.patch
Patch1: wicd-1.7.1b2-dbus-failure.patch
Patch2: wicd-1.7.1b2-error-messages.patch
Patch3: wicd-1.7.0-dbus-policy.patch
Patch4: wicd-1.7.1b2-wired_showing.patch
Patch5: wicd-1.7.1b2-initialize-check-and-message.patch
Patch6: wicd-1.7.1b2-CVE-2012-0813.patch
Patch1: wicd-1.7.1-dbus-failure.patch
Patch2: wicd-1.7.0-dbus-policy.patch
Patch3: wicd-1.7.1-DaemonClosing.patch
Patch4: wicd-1.7.2.1-CVE-2012-2095.patch
Patch5: wicd-1.7.2.1-unicode.patch
Patch6: wicd-1.7.2.1-new-urwid.patch
Patch7: wicd-1.7.2.1-sanitize_config.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
BuildRequires: babel
BuildRequires: python2-devel
BuildRequires: desktop-file-utils
BuildRequires: pkgconfig
@ -60,6 +59,7 @@ Requires: logrotate
Requires: net-tools
Requires: wireless-tools
Requires: wpa_supplicant
Requires: pygobject2
Requires(post): systemd-units
Requires(preun): systemd-units
Requires(postun): systemd-units
@ -82,13 +82,14 @@ Summary: GTK+ client for wicd
Group: Applications/Internet
BuildArch: noarch
Requires: %{name}-common = %{version}-%{release}
Requires: notify-python
Requires: pygtk2-libglade >= 2.10
%description gtk
Client program for wicd that uses a GTK+ interface.
%prep
%setup -q -n %{name}-%{version}%{alphatag}
%setup -q
# Remove the WHEREAREMYFILES and resetting of ~/.wicd/WHEREAREMYFILES
# This is pointless. The documentation can just provide WHEREAREMYFILES,
@ -98,35 +99,43 @@ Client program for wicd that uses a GTK+ interface.
# Handle D-Bus connection failures a little better
%patch1 -p1
# Direct users to D-Bus policy configuration on connection failure
# Allow users at the console to control wicd
%patch2 -p1
# Allow users at the console to control wicd
# Work around bug in DaemonClosing() calls
%patch3 -p1
# Initialize appGui._wired_showing in __init__
# Correct errors with the original fix for CVE-2012-2095
# (see f16 branch for more details on this change)
%patch4 -p1
# Make sure check and message are always a lambda
# Fix some Unicode text handling problems
%patch5 -p1
# Fix CVE-2012-0813
# Patch based on upstream:
# http://bazaar.launchpad.net/~wicd-devel/wicd/experimental/revision/682
# Attempt to work with the latest python-urwid
# There are upstream patches and the problem is described here:
# https://bugs.launchpad.net/wicd/+bug/1075399
# Gentoo appears to be successfully (?) using these patches, whatever
# that's worth.
%patch6 -p1
# Add missing sanitize_config() function from upstream
%patch7 -p1
%build
# NOTE: --etc is where dhclient.conf.template goes
rm -f po/ast.po
%{__python} setup.py configure \
--distro redhat \
--lib %{_libdir} \
--share %{_datadir}/wicd \
--etc %{_sysconfdir}/dhcp \
--etc %{_sysconfdir}/wicd \
--bin %{_bindir} \
--pmutils %{_libdir}/pm-utils/sleep.d \
--log %{_localstatedir}/log \
--systemd %{_systemd_unitdir} \
--no-install-init
%{__python} setup.py build
%{__python} setup.py compile_translations
%install
rm -rf %{buildroot}
@ -152,17 +161,10 @@ for lib in %{buildroot}%{python_sitelib}/wicd/*.py ; do
mv $lib.new $lib
done
sed -i -e 's/.$//' %{buildroot}%{python_sitelib}/wicd/logfile.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{python_sitelib}/wicd/logfile.py
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/wicd
mkdir -p %{buildroot}%{_systemd_unitdir}
install -m 0644 %{SOURCE2} %{buildroot}%{_systemd_unitdir}/wicd.service
mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services
install -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/dbus-1/system-services/org.wicd.daemon.service
install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/dbus-1/system-services/org.wicd.daemon.service
mv %{buildroot}%{_sysconfdir}/logrotate.d/%{name}.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
desktop-file-install \
--remove-category="Application" \
@ -218,7 +220,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files
%defattr(-,root,root,-)
%{_libdir}/pm-utils/sleep.d/91wicd
%{_libdir}/pm-utils/sleep.d/55wicd
%files common -f %{name}.lang
%defattr(-,root,root,-)
@ -235,23 +237,29 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_sysconfdir}/acpi/resume.d/80-wicd-connect.sh
%{_sysconfdir}/acpi/suspend.d/50-wicd-suspend.sh
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/wicd.conf
%config(noreplace) %{_sysconfdir}/dhcp/dhclient.conf.template.default
%config(noreplace) %{_sysconfdir}/wicd/dhclient.conf.template.default
%config(noreplace) %{_sysconfdir}/logrotate.d/wicd
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/active
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/active_wired
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/eap
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/eap-tls
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/leap
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/peap
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/peap-tkip
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/psu
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/ttls
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wep-hex
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wep-passphrase
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wep-shared
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wired_8021x
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wpa
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wpa-psk
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wpa-peap
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wpa2-leap
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wpa2-peap
%{_systemd_unitdir}/wicd.service
%{python_sitelib}/wicd/*
%{python_sitelib}/Wicd-%{version}*.egg-info
%{python_sitelib}/wicd-%{version}*.egg-info
%{_bindir}/wicd-cli
%{_bindir}/wicd-client
%{_sbindir}/wicd
@ -299,8 +307,43 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_datadir}/icons/hicolor/scalable/apps/wicd-gtk.svg
%changelog
* Thu Mar 14 2013 David Cantrell <dcantrell@redhat.com> - 1.7.2.1-5
- Attempt to work with the latest upstream python-urwid (#879155)
- Add missing sanitize_config() function (#873016)
* Tue Oct 23 2012 David Cantrell <dcantrell@redhat.com> - 1.7.2.1-4
- Fix some Unicode text handling problems (#845749)
* Thu Aug 02 2012 David Cantrell <dcantrell@redhat.com> - 1.7.2.1-3
- Fix property handling for CVE-2012-2095 upstream patch (#820166)
* Thu Aug 02 2012 David Cantrell <dcantrell@redhat.com> - 1.7.2.1-2
- Remove duplicate logrotate file (#820139)
* Fri Apr 13 2012 David Cantrell <dcantrell@redhat.com> - 1.7.2.1-1
- Upgrade to wicd-1.7.2.1 to fix CVE-2012-2095 (#811763)
* Mon Mar 26 2012 David Cantrell <dcantrell@redhat.com> - 1.7.1-1
- Remove our wicd.service file, this is provided by upstream now
- Make sure systemd unit files go to /usr/lib/systemd
- Stop mangling logfile.py so bytecompiling will actually work
- 91wicd -> 55wicd
- Pick up new encryption template files in the %%files list
- BR babel
- Remove po/ast.po because babel doesn't understand it
- Ensure wpath.etc is set to /etc/wicd, not /etc/dhcp (#754412)
- Initialize child_pid to None in wicd-daemon.py (#798692)
- Make wicd-gtk subpackage require notify-python (#748258)
- Work around no-op problem in DaemonClosing calls (#740317)
- Upgrade to wicd-1.7.1 final release (#789380)
- Have wicd-common require pygobject2 (#754416)
- Remove patches that have been incorporated upstream
* Wed Mar 21 2012 David Cantrell <dcantrell@redhat.com> - 1.7.1b2-0.4
- Make wicd-common require pygobject2 (#799537)
* Fri Jan 27 2012 David Cantrell <dcantrell@redhat.com> - 1.7.1b2-0.3
- Fix CVS-2012-0813 (#785147)
- Fix CVE-2012-0813 (#785147)
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.1-0.2.b2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild