%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: 6%{?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-CVE-2012-0813.patch Patch3: wicd-1.7.0-CVE-2012-2095.patch Patch4: wicd-1.7.0-dhclient-zombie.patch Patch5: wicd-1.7.0-rhbz1211811.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n) BuildRequires: python2-devel BuildRequires: desktop-file-utils Requires: pm-utils >= 1.2.4 Requires: wicd-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: pygobject2 Requires: wireless-tools Requires: wpa_supplicant Requires: %{name} = %{version}-%{release} 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} = %{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} = %{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 # Fix CVE-2012-0813 # Patch based on upstream: # http://bazaar.launchpad.net/~wicd-devel/wicd/experimental/revision/682 %patch2 -p1 # Fix CVE-2012-2095 # Patch based on upstream: # http://bazaar.launchpad.net/~wicd-devel/wicd/experimental/revision/751 %patch3 -p1 # Make sure wicd-daemon.py waits for dhclient child # Debian bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=537195 %patch4 -p1 # Prevent wicd-curses from crashing on startup (#1211811) %patch5 -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 * Tue May 05 2015 David Cantrell - 1.7.0-6 - Prevent wicd-curses from crashing on startup (#1211811) * Thu Jun 12 2014 David Cantrell - 1.7.0-5 - Have wicd-common require pygobject2 (#1003200) * Thu Mar 14 2013 David Cantrell - 1.7.0-4 - Make sure wicd-daemon.py waits for dhclient child (#893807) * Fri Apr 13 2012 David Cantrell - 1.7.0-3 - Fix CVE-2012-2095 (#811764) * Fri Jan 27 2012 David Cantrell - 1.7.0-2 - Fix CVE-2012-0813 (#785147) * Mon Jun 21 2010 David Cantrell - 1.7.0-1 - Initial package