diff --git a/CHANGES b/CHANGES index 7cf7a3f..7556ef8 100644 --- a/CHANGES +++ b/CHANGES @@ -1,11 +1,160 @@ -MAJOR CHANGES FROM 1.5: - * Enhanced GUI - * Console client (wicd-curses) - * Support for multiple backends - * Enhanced network setting properties - * Bug fixes - -CHANGELOG: +------------------------------------------------------------ +revno: 369 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Sun 2009-04-26 08:00:33 +0900 +message: + Redirected bzr output to /dev/null +------------------------------------------------------------ +revno: 368 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Sun 2009-04-26 07:53:24 +0900 +message: + Fixed setup.py translations installation and made wicd-daemon.py +x +------------------------------------------------------------ +revno: 367 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Thu 2009-04-23 19:41:10 +0800 +message: + Merged + ------------------------------------------------------------ + revno: 365.1.2 + committer: Andrew Psaltis + branch nick: 1.6 + timestamp: Wed 2009-04-22 17:40:07 -0400 + message: + Merged r318 of experimental-nacl, fixing yet another wicd-curses bug. + ------------------------------------------------------------ + revno: 202.2.27 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Wed 2009-04-22 17:37:50 -0400 + message: + Made the network preferences dialogs save whether they are using static IPs or not. Thanks to Adam for finding this one. + ------------------------------------------------------------ + revno: 202.2.26 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Wed 2009-04-22 14:06:26 -0400 + message: + Merged r366 of mainline 1.6. + ------------------------------------------------------------ + revno: 365.1.1 + committer: Andrew Psaltis + branch nick: 1.6 + timestamp: Wed 2009-04-22 12:13:06 -0400 + message: + Set the SVG wicd icon as the window icon in wicd-client. +------------------------------------------------------------ +revno: 366 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Thu 2009-04-23 19:38:48 +0800 +message: + Updated CHANGES and added NEWS +------------------------------------------------------------ +revno: 365 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Wed 2009-04-22 22:17:39 +0800 +message: + fixed another typo +------------------------------------------------------------ +revno: 364 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Wed 2009-04-22 22:11:33 +0800 +message: + fixed a typo +------------------------------------------------------------ +revno: 363 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Wed 2009-04-22 22:02:31 +0800 +message: + Updated version number +------------------------------------------------------------ +revno: 362 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Wed 2009-04-22 21:45:51 +0800 +message: + Updated vcsinfo.py generation logic +------------------------------------------------------------ +revno: 361 +committer: Dan O'Reilly +branch nick: experimental +timestamp: Tue 2009-04-21 21:25:59 -0400 +message: + Refactor monitor.py polling code to remove reliance on globals. + Make sure we update the polling rate in wicd-monitor when the backend changes. +------------------------------------------------------------ +revno: 360 +committer: Dan O'Reilly +branch nick: experimental +timestamp: Tue 2009-04-21 20:30:40 -0400 +message: + Use atexit instead of catching SIGTERM in wicd-daemon. + Use Popen to launch wicd-monitor instead of gobject.spawn_async. +------------------------------------------------------------ +revno: 359 +committer: Andrew Psaltis +branch nick: 1.6 +timestamp: Tue 2009-04-21 17:47:46 -0400 +message: + Merged r316 of experimental-nacl, providing some small feature additions and bufixes. + ------------------------------------------------------------ + revno: 202.2.25 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Tue 2009-04-21 14:09:29 -0400 + message: + Fixed a problem where if a scan is initiated externally, and wicd-curses doesn't see it, wicd-curses will half-drop a running big dialog. + ------------------------------------------------------------ + revno: 202.2.24 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Tue 2009-04-21 13:34:01 -0400 + message: + Fix bug introduced in r356 where wicd would crash upon not finding dhclient. + ------------------------------------------------------------ + revno: 202.2.23 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Tue 2009-04-21 13:16:44 -0400 + message: + Added support for disabling nonexistent external tools in the pref_curses.py. + Added a DynRadioButton in curses_misc.py. + ------------------------------------------------------------ + revno: 202.2.22 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Tue 2009-04-21 13:15:30 -0400 + message: + Merged with r358 of mainline 1.6. + ------------------------------------------------------------ + revno: 202.2.21 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Fri 2009-04-17 08:04:02 -0400 + message: + Merged r355 of mainline 1.6. + ------------------------------------------------------------ + revno: 202.2.20 + committer: Andrew Psaltis + branch nick: experimental-nacl + timestamp: Sun 2009-04-12 12:12:38 -0400 + message: + Merge r352 of mainline 1.6 +------------------------------------------------------------ +revno: 358 +committer: Adam Blackburn +branch nick: 1.6 +timestamp: Tue 2009-04-21 22:33:29 +0800 +message: + Updated CHANGES ------------------------------------------------------------ revno: 357 committer: Andrew Psaltis diff --git a/INSTALL b/INSTALL index e563e4b..7537ed4 100644 --- a/INSTALL +++ b/INSTALL @@ -1,15 +1,16 @@ Installation of Wicd should be done using your distribution package if one exists. If not, the installation is relatively straightforward, but there are a few dependencies: - 1. python (obviously) and pygtk + 1. python (>=2.4, <3.0) + 2. pygtk (>=2.10) 2. dbus and its glib and python bindings 3. a dhcp client (dhclient, dhcpcd, and pump are supported) 4. wireless-tools (iwlist, iwconfig, etcetera) 5. net-tools (ip, route, etcetera) 6. a graphical sudo application (gksu, kdesu, and ktsuss are supported), while optional, is strongly recommended - 7. urwid (if you want to use the curses client) - 8. pm-utils (optional for suspend/resume integration - needs version 1.2.4+) + 7. urwid (if you want to use the curses client - needs version >=0.9.8.3) + 8. pm-utils (optional for suspend/resume integration - needs version >=1.2.4) If you are installing from a bzr pull or beta/rc tarball and you want the native language translations, first run this: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..536b3f1 --- /dev/null +++ b/NEWS @@ -0,0 +1,34 @@ +Wicd 1.6.x Branch + +Major Changes: +- Improved tray icon and gui images (thanks to Martin Sagastume) +- Reorganized network list in the gui for easier navigation +- New experimental ioctl backend, which is more cpu-friendly than the + previous one +- Added a curses client (thanks to Andrew Psaltis) +- Added a right-click connection menu to the tray icon +- Added options to specify a dns domain and search domain for static networks +- Reworked the Preferences menu to be more in line with GNOME standards +- Added support for global scripts +- Made it possible to have optional entries in encryption templates + +Minor Changes and Other Enchancements: +- Better autoconnection behavior +- Tray/GUI will survive the daemon being killed +- Reasons for connection failures will now bubble back to the GUI +- Add/Remove wired profile system is now more user-friendly +- Support for using resolvconf instead of directly editing /etc/resolv.conf +- Wicd won't blindly kill dhcp clients / wpa_supplicant any more +- Added an option to automatically switch from a wireless network to a wired + one as soon as a cable is plugged in +- Moved scanning to its own thread, which makes GUI and daemon more responsive + during scans +- Made it possible to specify macros in script entries +- The gui will now display the encryption entry dialog if you attempt to + connect to an encrypted network without entering a password +- Static gateway entry is now optional +- Passwords with leading or trailing whitespace are now stored properly +- Many init/config script, man page, and setup.py fixes/updates, including + better autodetection of file placement with regard to sleep hooks and + kde autostart files (thanks to Robby Workman) + diff --git a/setup.py b/setup.py index a66f187..376552c 100755 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ import subprocess # Be sure to keep this updated! # VERSIONNUMBER -VERSION_NUM = '1.6.0a2' +VERSION_NUM = '1.6.0a3' # REVISION_NUM is automatically updated REVISION_NUM = 'unknown' CURSES_REVNO = 'uimod' @@ -33,7 +33,7 @@ CURSES_REVNO = 'uimod' os.chdir(os.path.abspath(os.path.split(__file__)[0])) try: - if os.path.exists('.bzr') and os.system('bzr') == 0: + if os.path.exists('.bzr') and os.system('bzr > /dev/null 2>&1') == 0: try: os.system('bzr version-info --python > vcsinfo.py') except: @@ -463,14 +463,10 @@ try: print 'Using pid path', os.path.basename(wpath.pidfile) print 'Language support for', for language in os.listdir('translations/'): - if not language.startswith('.'): - codes = language.split('_') - short_language = language - if codes[0].lower() == codes[1].lower(): - short_language = codes[0].lower() - print short_language, - data.append((wpath.translations + short_language + '/LC_MESSAGES/', - ['translations/' + language + '/LC_MESSAGES/wicd.mo'])) + print language, + data.append((wpath.translations + language + '/LC_MESSAGES/', + ['translations/' + language + '/LC_MESSAGES/wicd.mo'])) + print except Exception, e: print str(e) print '''Error setting up data array. This is normal if diff --git a/wicd/autoconnect.py b/wicd/autoconnect.py index b591076..b68a5c7 100755 --- a/wicd/autoconnect.py +++ b/wicd/autoconnect.py @@ -23,7 +23,6 @@ from wicd import dbusmanager import dbus import time -import gobject import sys if getattr(dbus, 'version', (0, 0, 0)) < (0, 80, 0): diff --git a/wicd/configmanager.py b/wicd/configmanager.py index 9426e53..8862bc8 100644 --- a/wicd/configmanager.py +++ b/wicd/configmanager.py @@ -106,8 +106,9 @@ class ConfigManager(RawConfigParser): # Try to intelligently handle the type of the return value. try: - ret = int(ret) - except (ValueError, TypeError): + if not ret.startswith('0') or len(ret) == 1: + ret = int(ret) + except (ValueError, TypeError, AttributeError): ret = Noneify(ret) # This is a workaround for a python-dbus issue on 64-bit systems. if isinstance(ret, (int)): diff --git a/wicd/dbusmanager.py b/wicd/dbusmanager.py index 6cd3ec3..17e9e0c 100644 --- a/wicd/dbusmanager.py +++ b/wicd/dbusmanager.py @@ -24,7 +24,6 @@ A module for managing wicd's dbus interfaces. # import dbus -from dbus import DBusException if getattr(dbus, "version", (0, 0, 0)) < (0, 80, 0): import dbus.glib else: diff --git a/wicd/gui.py b/wicd/gui.py index e6bdecb..e792579 100644 --- a/wicd/gui.py +++ b/wicd/gui.py @@ -31,7 +31,6 @@ import pango import gtk import gtk.glade from dbus import DBusException -from dbus import version as dbus_version from wicd import misc from wicd import wpath @@ -41,7 +40,7 @@ from wicd import netentry from wicd.misc import noneToString from wicd.netentry import WiredNetworkEntry, WirelessNetworkEntry from wicd.prefs import PreferencesDialog -from wicd.guiutil import error, GreyLabel, LabelEntry, SmallLabel +from wicd.guiutil import error, LabelEntry from wicd.translations import language if __name__ == '__main__': @@ -149,7 +148,7 @@ class appGui(object): gladefile = os.path.join(wpath.share, "wicd.glade") self.wTree = gtk.glade.XML(gladefile) self.window = self.wTree.get_widget("window1") - self.window.set_icon_from_file(wpath.icons +'scalable/apps/wicd-client.svg') + self.window.set_icon_name("wicd-client") size = daemon.ReadWindowSize("main") width = size[0] height = size[1] @@ -709,7 +708,7 @@ class appGui(object): try: daemon.WriteWindowSize(width, height, "main") daemon.SetGUIOpen(False) - except dbusmanager.DBusException: + except DBusException: pass if self.standalone: diff --git a/wicd/logfile.py b/wicd/logfile.py index 408aea2..639a912 100644 --- a/wicd/logfile.py +++ b/wicd/logfile.py @@ -25,8 +25,6 @@ import sys import os import time -import wicd.wpath as wpath - class SizeError(IOError): pass diff --git a/wicd/monitor.py b/wicd/monitor.py index 82727cd..4accb0e 100755 --- a/wicd/monitor.py +++ b/wicd/monitor.py @@ -26,7 +26,6 @@ when appropriate. import gobject import time -import sys from dbus import DBusException @@ -53,7 +52,7 @@ def diewithdbus(func): ret = func(self, *__args, **__kargs) self.__lost_dbus_count = 0 return ret - except dbusmanager.DBusException, e: + except DBusException, e: print "Caught exception %s" % str(e) if not hasattr(self, "__lost_dbus_count"): self.__lost_dbus_count = 0 diff --git a/wicd/netentry.py b/wicd/netentry.py index 28722ab..460f387 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -29,7 +29,7 @@ import misc import wpath import dbusmanager from misc import noneToString, stringToNone, noneToBlankString, to_bool -from guiutil import error, SmallLabel, LabelEntry, GreyLabel, LeftAlignedLabel, string_input +from guiutil import error, LabelEntry, GreyLabel, LeftAlignedLabel, string_input from translations import language diff --git a/wicd/prefs.py b/wicd/prefs.py index f511c42..30d7a5d 100644 --- a/wicd/prefs.py +++ b/wicd/prefs.py @@ -26,7 +26,7 @@ handles recieving/sendings the settings from/to the daemon. import gtk import gobject -import pango +#import pango import os import gtk.glade diff --git a/wicd/wicd-client.py b/wicd/wicd-client.py index bcb4900..0c34f7e 100755 --- a/wicd/wicd-client.py +++ b/wicd/wicd-client.py @@ -40,7 +40,6 @@ import gobject import getopt import os import pango -import time import atexit from dbus import DBusException diff --git a/wicd/wicd-daemon.py b/wicd/wicd-daemon.py old mode 100755 new mode 100644 diff --git a/wicd/wnettools.py b/wicd/wnettools.py index 51ad50c..d09e8f2 100644 --- a/wicd/wnettools.py +++ b/wicd/wnettools.py @@ -112,10 +112,9 @@ def GetWirelessInterfaces(): """ dev_dir = '/sys/class/net/' - ifnames = [] - - ifnames = [iface for iface in os.listdir(dev_dir) if os.path.isdir(dev_dir + iface) - and 'wireless' in os.listdir(dev_dir + iface)] + ifnames = [iface for iface in os.listdir(dev_dir) + if os.path.isdir(dev_dir + iface) and + 'wireless' in os.listdir(dev_dir + iface)] return ifnames @@ -134,10 +133,7 @@ def IsValidWpaSuppDriver(driver): """ Returns True if given string is a valid wpa_supplicant driver. """ output = misc.Run(["wpa_supplicant", "-D%s" % driver, "-iolan19", "-c/etc/abcd%sdefzz.zconfz" % random.randint(1, 1000)]) - if re.match("Unsupported driver", output): - return False - else: - return True + return not "Unsupported driver" in output def neediface(default_response): """ A decorator for only running a method if self.iface is defined.