Compare commits

..

6 commits

Author SHA1 Message Date
David Cantrell
4ed1559ef6 Initialize appGui._wired_showing in __init__ (#731163) 2011-08-19 14:57:41 -04:00
David Cantrell
a149b229e9 Actually apply the D-Bus connection failure patch (#713109) 2011-08-09 21:01:11 -04:00
David Cantrell
88b1811c74 Catch D-Bus connection failures and prevent abrt reporting (#713109) 2011-08-05 11:14:53 -04:00
David Cantrell
5484559175 - Use cPickle instead of deepcopy in configmanager.py (#645251) 2010-10-22 10:37:17 -10:00
David Cantrell
d45f6383c4 Remove hard dependency on the base package by wicd-common.
Remove hard dependency on the base package by wicd-common.  The
base package is arch-specific and contains optional components
for wicd.  If it is present, wicd will make use of it, but it is
not required for normal functionality.
2010-08-25 06:34:32 -10:00
d4516944cb - Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild 2010-07-31 02:53:34 +02:00
10 changed files with 473 additions and 1 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
wicd-1.7.0.tar.bz2

View file

@ -1 +0,0 @@
Orphaned for 6+ weeks

1
sources Normal file
View file

@ -0,0 +1 @@
7e5956891d6696b6185baa7f5dc70c56 wicd-1.7.0.tar.bz2

View file

@ -0,0 +1,50 @@
diff -up wicd-1.7.0/cli/wicd-cli.py.orig wicd-1.7.0/cli/wicd-cli.py
--- wicd-1.7.0/cli/wicd-cli.py.orig 2010-01-14 23:49:11.000000000 -0500
+++ wicd-1.7.0/cli/wicd-cli.py 2011-08-05 11:09:57.561058338 -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.0/curses/wicd-curses.py.orig wicd-1.7.0/curses/wicd-curses.py
--- wicd-1.7.0/curses/wicd-curses.py.orig 2010-01-14 23:49:11.000000000 -0500
+++ wicd-1.7.0/curses/wicd-curses.py 2011-08-05 11:09:00.248056606 -0400
@@ -1016,6 +1016,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.0/gtk/gui.py.orig wicd-1.7.0/gtk/gui.py
--- wicd-1.7.0/gtk/gui.py.orig 2010-01-14 23:49:11.000000000 -0500
+++ wicd-1.7.0/gtk/gui.py 2011-08-05 10:49:08.392177338 -0400
@@ -146,6 +146,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.glade")
diff -up wicd-1.7.0/gtk/wicd-client.py.orig wicd-1.7.0/gtk/wicd-client.py

50
wicd-1.7.0-deepcopy.patch Normal file
View file

@ -0,0 +1,50 @@
diff -up wicd-1.7.0/wicd/configmanager.py.deepcopy wicd-1.7.0/wicd/configmanager.py
--- wicd-1.7.0/wicd/configmanager.py.deepcopy 2010-01-14 18:49:11.000000000 -1000
+++ wicd-1.7.0/wicd/configmanager.py 2010-10-22 10:18:14.000000000 -1000
@@ -25,6 +25,7 @@ reusable for other purposes as well.
#
import os, copy
+import cPickle
from ConfigParser import RawConfigParser
@@ -35,7 +36,7 @@ from dbus import Int32
class ConfigManager(RawConfigParser):
""" A class that can be used to manage a given configuration file. """
def __init__(self, path, debug=False, mark_whitespace="`'`"):
- RawConfigParser.__init__(self)
+ RawConfigParser.__init__(self, allow_no_value = True)
self.config_file = path
self.debug = debug
self.mrk_ws = mark_whitespace
@@ -67,7 +68,7 @@ class ConfigManager(RawConfigParser):
if value.startswith(' ') or value.endswith(' '):
value = "%(ws)s%(value)s%(ws)s" % {"value" : value,
"ws" : self.mrk_ws}
- RawConfigParser.set(self, section, str(option), value)
+ RawConfigParser.set(self, section, str(option), "None" if value is None else value)
if write:
self.write()
@@ -176,9 +177,7 @@ class ConfigManager(RawConfigParser):
def _copy_section(self, name):
- # Yes, deepcopy sucks, but it is robust to changes in both
- # this class and RawConfigParser.
- p = copy.deepcopy(self)
+ p = cPickle.loads(cPickle.dumps(self, -1))
for sname in p.sections():
if sname != name:
p.remove_section(sname)
@@ -188,8 +187,7 @@ class ConfigManager(RawConfigParser):
def write(self):
""" Writes the loaded config file to disk. """
- # Really don't like this deepcopy.
- p = copy.deepcopy(self)
+ p = cPickle.loads(cPickle.dumps(self, -1))
for sname in p.sections():
fname = p.get_option(sname, '_filename_')
if fname and fname != self.config_file:

View file

@ -0,0 +1,12 @@
diff -up wicd-1.7.0/in/init=redhat=wicd.in.orig wicd-1.7.0/in/init=redhat=wicd.in
--- wicd-1.7.0/in/init=redhat=wicd.in.orig 2010-01-14 18:49:11.000000000 -1000
+++ wicd-1.7.0/in/init=redhat=wicd.in 2010-05-30 12:45:31.000000000 -1000
@@ -43,7 +43,7 @@ force_stop()
killproc -p $pidfile wicd
RETVAL=$?
echo
- if [ $retval -eq 0 ]; then
+ if [ $RETVAL -eq 0 ]; then
rm -f /var/lock/subsys/$servicename
rm -f $pidfile
fi

View file

@ -0,0 +1,53 @@
diff -up wicd-1.7.0/in/man=wicd-curses.8.in.orig wicd-1.7.0/in/man=wicd-curses.8.in
--- wicd-1.7.0/in/man=wicd-curses.8.in.orig 2010-01-14 18:49:11.000000000 -1000
+++ wicd-1.7.0/in/man=wicd-curses.8.in 2010-05-19 09:20:00.000000000 -1000
@@ -57,10 +57,6 @@ Bring up instructions on how to edit the
.BR O
Raise the Ad-Hoc network creation dialog
-.SH "FILES"
-.TP
-.I ~/.wicd/WHEREAREMYFILES
-Reminder that your network configuration files are not here ;-)
.PP
.SH "SEE ALSO"
.BR wicd-client (1),
diff -up wicd-1.7.0/in/scripts=wicd-client.in.orig wicd-1.7.0/in/scripts=wicd-client.in
--- wicd-1.7.0/in/scripts=wicd-client.in.orig 2010-01-14 18:49:11.000000000 -1000
+++ wicd-1.7.0/in/scripts=wicd-client.in 2010-05-19 09:20:25.000000000 -1000
@@ -6,10 +6,6 @@ NC=$(tput sgr0)
if [ ! -d "$HOME/.wicd" ]; then
mkdir -p "$HOME/.wicd"
fi
-# Make sure the user knows WHEREAREMYFILES ;-)
-if [ -e "%VARLIB%WHEREAREMYFILES" ] && [ ! -L "$HOME/.wicd/WHEREAREMYFILES" ]; then
- ln -s "%VARLIB%WHEREAREMYFILES" "$HOME/.wicd/WHEREAREMYFILES"
-fi
if [ "$DISPLAY" = "" ]; then
if [ -x "%BIN%wicd-curses" ]; then
if [ ! -f "$HOME/.wicd/CLIENT_CURSES_WARNING" ]; then
diff -up wicd-1.7.0/in/scripts=wicd-curses.in.orig wicd-1.7.0/in/scripts=wicd-curses.in
--- wicd-1.7.0/in/scripts=wicd-curses.in.orig 2010-01-14 18:49:11.000000000 -1000
+++ wicd-1.7.0/in/scripts=wicd-curses.in 2010-05-19 09:20:36.000000000 -1000
@@ -2,8 +2,5 @@
if [ ! -d "$HOME/.wicd" ]; then
mkdir -p "$HOME/.wicd"
fi
-if [ -e "%VARLIB%WHEREAREMYFILES" ] && [ ! -L "$HOME/.wicd/WHEREAREMYFILES" ]; then
- ln -s "%VARLIB%WHEREAREMYFILES" "$HOME/.wicd/WHEREAREMYFILES"
-fi
exec %PYTHON% -O %SHARE%curses/wicd-curses.py $@
diff -up wicd-1.7.0/in/scripts=wicd-gtk.in.orig wicd-1.7.0/in/scripts=wicd-gtk.in
--- wicd-1.7.0/in/scripts=wicd-gtk.in.orig 2010-01-14 18:49:11.000000000 -1000
+++ wicd-1.7.0/in/scripts=wicd-gtk.in 2010-05-19 09:20:44.000000000 -1000
@@ -4,9 +4,5 @@
if [ ! -d "$HOME/.wicd" ]; then
mkdir -p "$HOME/.wicd"
fi
-# Make sure the user knows WHEREAREMYFILES ;-)
-if [ -e "/var/lib/wicd/WHEREAREMYFILES" ] && [ ! -L "$HOME/.wicd/WHEREAREMYFILES" ]; then
- ln -s "/var/lib/wicd/WHEREAREMYFILES" "$HOME/.wicd/WHEREAREMYFILES"
-fi
exec %PYTHON% -O %SHARE%gtk/wicd-client.py $@

View file

@ -0,0 +1,11 @@
diff -up wicd-1.7.0/gtk/gui.py.orig wicd-1.7.0/gtk/gui.py
--- wicd-1.7.0/gtk/gui.py.orig 2011-08-19 14:53:37.667180427 -0400
+++ wicd-1.7.0/gtk/gui.py 2011-08-19 14:55:43.657056952 -0400
@@ -220,6 +220,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)

6
wicd.logrotate Normal file
View file

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

289
wicd.spec Normal file
View file

@ -0,0 +1,289 @@
%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5)
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%endif
%define debug_package %{nil}
Name: wicd
Version: 1.7.0
Release: 7%{?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}.tar.bz2
Source1: wicd.logrotate
Patch0: wicd-1.7.0-remove-WHEREAREMYFILES.patch
Patch1: wicd-1.7.0-initscript.patch
Patch2: wicd-1.7.0-deepcopy.patch
Patch3: wicd-1.7.0-dbus-failure.patch
Patch4: wicd-1.7.0-wired_showing.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
BuildRequires: python2-devel
BuildRequires: desktop-file-utils
Requires: pm-utils >= 1.2.4
Requires: %{name}-common = %{version}-%{release}
%description
Wicd is designed to give the user as much control over behavior of network
connections as possible. Every network, both wired and wireless, has its
own profile with its own configuration options and connection behavior.
Wicd will try to automatically connect only to networks the user specifies
it should try, with a preference first to a wired network, then to wireless.
This package provides the architecture-dependent components of wicd.
%package common
Summary: Wicd common files
Group: System Environment/Base
BuildArch: noarch
Requires: dbus
Requires: dbus-python
Requires: dhclient
Requires: ethtool
Requires: iproute
Requires: logrotate
Requires: net-tools
Requires: wireless-tools
Requires: wpa_supplicant
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(preun): initscripts
Requires(postun): initscripts
%description common
This package provides the main wicd daemon and the wicd-cli front-end.
%package curses
Summary: Curses client for wicd
Group: Applications/System
BuildArch: noarch
Requires: %{name}-common = %{version}-%{release}
Requires: python-urwid >= 0.9.8.3
%description curses
Client program for wicd that uses a curses interface.
%package gtk
Summary: GTK+ client for wicd
Group: Applications/Internet
BuildArch: noarch
Requires: %{name}-common = %{version}-%{release}
Requires: pygtk2-libglade >= 2.10
%description gtk
Client program for wicd that uses a GTK+ interface.
%prep
%setup -q
# Remove the WHEREAREMYFILES and resetting of ~/.wicd/WHEREAREMYFILES
# This is pointless. The documentation can just provide WHEREAREMYFILES,
# which we do in this package.
%patch0 -p1
# Init scripts should use $RETVAL, not $retval
# Reported upstream: https://bugs.launchpad.net/wicd/+bug/587690
%patch1 -p1
# Use cPickle instead of deepcopy in configmanager.py
%patch2 -p1
# Handle D-Bus connection failures a little better
%patch3 -p1
# Initialize appGui._wired_showing in __init__
%patch4 -p1
%build
# NOTE: --etc is where dhclient.conf.template goes
%{__python} setup.py configure \
--distro redhat \
--lib %{_libdir} \
--share %{_datadir}/wicd \
--etc %{_sysconfdir}/dhcp \
--bin %{_bindir} \
--pmutils %{_libdir}/pm-utils/sleep.d \
--log %{_localstatedir}/log
%{__python} setup.py build
%install
rm -rf %{buildroot}
%{__python} setup.py install --skip-build --no-compile --root %{buildroot}
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/backends/be-external.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/backends/be-ioctl.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/cli/wicd-cli.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/curses/curses_misc.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/curses/netentry_curses.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/curses/prefs_curses.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/daemon/wicd-daemon.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/gtk/gui.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/gtk/prefs.py
sed -i -e '/^#!\//, 1d' %{buildroot}%{_datadir}/wicd/gtk/wicd-client.py
rm -f %{buildroot}%{_localstatedir}/lib/wicd/WHEREAREMYFILES
rm -rf %{buildroot}%{_datadir}/doc
find %{buildroot} -type f -name ".empty_on_purpose" | xargs rm
for lib in %{buildroot}%{python_sitelib}/wicd/*.py ; do
sed '/\/usr\/bin\/env/d' $lib > $lib.new &&
touch -r $lib $lib.new &&
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
desktop-file-install \
--remove-category="Application" \
--delete-original \
--dir=%{buildroot}%{_datadir}/applications \
%{buildroot}%{_datadir}/applications/wicd.desktop
desktop-file-install \
--dir=%{buildroot}%{_sysconfdir}/xdg/autostart \
%{buildroot}%{_sysconfdir}/xdg/autostart/wicd-tray.desktop
%find_lang %{name}
%clean
rm -rf %{buildroot}
%post common
/sbin/chkconfig --add wicd
%preun common
if [ $1 -eq 0 ]; then
/sbin/service wicd stop >/dev/null 2>&1
/sbin/chkconfig --del wicd
fi
%postun common
if [ $1 -ge 1 ]; then
/sbin/service wicd condrestart >/dev/null 2>&1 || :
fi
%post gtk
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%postun gtk
if [ $1 -eq 0 ]; then
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
%posttrans gtk
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files
%defattr(-,root,root,-)
%doc AUTHORS CHANGES LICENSE NEWS README other/WHEREAREMYFILES
%{_libdir}/pm-utils/sleep.d/91wicd
%files common -f %{name}.lang
%defattr(-,root,root,-)
%dir %{python_sitelib}/wicd
%dir %{_sysconfdir}/wicd
%dir %{_sysconfdir}/wicd/encryption
%dir %{_sysconfdir}/wicd/encryption/templates
%dir %{_sysconfdir}/wicd/scripts
%dir %{_sysconfdir}/wicd/scripts/postconnect
%dir %{_sysconfdir}/wicd/scripts/postdisconnect
%dir %{_sysconfdir}/wicd/scripts/preconnect
%dir %{_sysconfdir}/wicd/scripts/predisconnect
%{_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}/logrotate.d/wicd
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/active
%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/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/wpa
%config(noreplace) %{_sysconfdir}/wicd/encryption/templates/wpa-psk
%{_initddir}/wicd
%{python_sitelib}/wicd/*
%{python_sitelib}/Wicd-%{version}*.egg-info
%{_bindir}/wicd-cli
%{_bindir}/wicd-client
%{_sbindir}/wicd
%{_datadir}/applications/wicd.desktop
%{_datadir}/man/man1/wicd-client.1*
%{_datadir}/man/man5/wicd-manager-settings.conf.5*
%{_datadir}/man/man5/wicd-wired-settings.conf.5*
%{_datadir}/man/man5/wicd-wireless-settings.conf.5*
%{_datadir}/man/man8/wicd-cli.8*
%{_datadir}/man/man8/wicd.8*
%lang(nl) %{_datadir}/man/nl/man1/wicd-client.1*
%lang(nl) %{_datadir}/man/nl/man5/wicd-manager-settings.conf.5*
%lang(nl) %{_datadir}/man/nl/man5/wicd-wired-settings.conf.5*
%lang(nl) %{_datadir}/man/nl/man5/wicd-wireless-settings.conf.5*
%lang(nl) %{_datadir}/man/nl/man8/wicd.8*
%dir %{_datadir}/wicd
%dir %{_datadir}/wicd/backends
%dir %{_datadir}/wicd/cli
%dir %{_datadir}/wicd/daemon
%{_datadir}/wicd/backends/*
%{_datadir}/wicd/cli/*
%{_datadir}/wicd/daemon/*
%dir %{_localstatedir}/lib/wicd
%dir %{_localstatedir}/lib/wicd/configurations
%files curses
%defattr(-,root,root,-)
%dir %{_datadir}/wicd/curses
%{_datadir}/wicd/curses/*
%{_bindir}/wicd-curses
%{_datadir}/man/man8/wicd-curses.8*
%lang(nl) %{_datadir}/man/nl/man8/wicd-curses.8*
%files gtk
%defattr(-,root,root,-)
%dir %{_datadir}/wicd/gtk
%dir %{_datadir}/pixmaps/wicd
%{_sysconfdir}/xdg/autostart/wicd-tray.desktop
%{_datadir}/wicd/gtk/*
%{_datadir}/pixmaps/wicd/*
%{_datadir}/pixmaps/wicd-gtk.xpm
%{_bindir}/wicd-gtk
%{_datadir}/icons/hicolor/*/apps/wicd-gtk.png
%{_datadir}/icons/hicolor/scalable/apps/wicd-gtk.svg
%changelog
* Fri Aug 19 2011 David Cantrell <dcantrell@redhat.com> - 1.7.0-7
- Initialize appGui._wired_showing in __init__ (#731163)
* Tue Aug 09 2011 David Cantrell <dcantrell@redhat.com> - 1.7.0-6
- Actually apply the D-Bus connection failure patch (#713109)
* Fri Aug 05 2011 David Cantrell <dcantrell@redhat.com> - 1.7.0-5
- Catch D-Bus connection failures and prevent abrt reporting (#713109)
* Fri Oct 22 2010 David Cantrell <dcantrell@redhat.com> - 1.7.0-4
- Use cPickle instead of deepcopy in configmanager.py (#645251)
* Wed Aug 25 2010 David Cantrell <dcantrell@redhat.com> - 1.7.0-3
- Remove hard dependency on the base package by wicd-common. The
base package is arch-specific and contains optional components
for wicd. If it is present, wicd will make use of it, but it is
not required for normal functionality.
* Fri Jul 30 2010 Thomas Spura <tomspur@fedoraproject.org> - 1.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Mon Jun 21 2010 David Cantrell <dcantrell@redhat.com> - 1.7.0-1
- Initial package