--- network-manager-applet-0.7.1~rc4.1.orig/aclocal.m4 +++ network-manager-applet-0.7.1~rc4.1/aclocal.m4 @@ -0,0 +1 @@ +# empty file --- network-manager-applet-0.7.1~rc4.1.orig/debian/rules +++ network-manager-applet-0.7.1~rc4.1/debian/rules @@ -0,0 +1,37 @@ +#!/usr/bin/make -f + +DEB_AUTO_UPDATE_LIBTOOL = pre +DEB_AUTO_UPDATE_AUTOHEADER = 2.50 +DEB_AUTO_UPDATE_ACLOCAL = 1.9 +DEB_AUTO_UPDATE_AUTOMAKE = 1.9 -a -c -f +DEB_AUTO_UPDATE_AUTOCONF = 2.50 + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk +include /usr/share/cdbs/1/class/gnome.mk + +DEB_CONFIGURE_EXTRA_FLAGS = \ + --without-gnutls \ + --with-nss \ + --with-mbca \ + $(NULL) + +build/network-manager-gnome:: + /usr/bin/docbook-to-man debian/nm-applet.sgml > debian/nm-applet.1 + +common-binary-arch:: + rm -rf debian/network-manager-gnome/usr/include/ + cp -f debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-vpn-active-lock.png \ + debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-vpn-lock.png + cp -f debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-device-wired.png \ + debian/network-manager-gnome/usr/share/icons/hicolor/22x22/apps/nm-device-wired-autoip.png + +clean:: + rm -f po/*.gmo + rm -f debian/*.1 + rm -f gtk-doc.make + echo "# empty file" > aclocal.m4 + +pre-build:: + intltoolize -f -c + --- network-manager-applet-0.7.1~rc4.1.orig/debian/network-manager-applet.manpages +++ network-manager-applet-0.7.1~rc4.1/debian/network-manager-applet.manpages @@ -0,0 +1 @@ +debian/nm-applet.1 --- network-manager-applet-0.7.1~rc4.1.orig/debian/changelog +++ network-manager-applet-0.7.1~rc4.1/debian/changelog @@ -0,0 +1,500 @@ +network-manager-applet (0.7.1~rc4.1-0ubuntu2.1) jaunty-security; urgency=low + + * SECURITY UPDATE: information disclosure via incorrect certificate + validation + - debian/patches/security_CVE-2009-4144.patch: improve error handling + in src/applet-device-wifi.c, src/applet-device-wired.c, + src/connection-editor/nm-connection-list.c, + src/gconf-helpers/gconf-helpers.{c,h}, + src/gconf-helpers/nma-gconf-connection.c, src/utils/utils.{c,h}. + - CVE-2009-4144 + * SECURITY UPDATE: information disclosure via DBus + - debian/patches/security_CVE-2009-4145.patch: prevent any registration + of objects on the system bus in src/applet.c, + src/connection-editor/nm-connection-list.c, + src/gconf-helpers/nma-gconf-connection.c, + src/gconf-helpers/nma-gconf-settings.{c,h}. + - CVE-2009-4145 + + -- Marc Deslauriers Tue, 12 Jan 2010 10:42:35 -0500 + +network-manager-applet (0.7.1~rc4.1-0ubuntu2) jaunty; urgency=low + + * point Vcs-Bzr header to proper branch + - update control + * fix LP: #358526 - Notification shows wrong WiFi disconnected icon when + resuming from suspend; we use the proper generic disconnected icon + if we don't know which device type caused the "offline" event. + - add patches/lp358526_generic_disconnected_notification_icon.patch + - update patches/series + + -- Alexander Sack Tue, 14 Apr 2009 12:52:44 +0200 + +network-manager-applet (0.7.1~rc4.1-0ubuntu1) jaunty; urgency=low + + * New upstream release 0.7.1 rc4 + + svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1254 + + drop upstreamed patches + - delete patches/lp331799_sensible_notify_actions.patch + - update patches/series + + adjust diverged patches to new upstream codebase + - update patches/add_libmbca_support.patch + - update patches/lp341684_device_sensitive_disconnect_notify.patch + + fix build failure with our gcc introduced upstream (string format issue) + - add patches/fix_upstream_buildfailure.patch + - update patches/series + * rename patch for disconnect states to match the bug it fixed (LP: #341684) + - rename patches/lpXXX_device_sensitive_disconnect_notify.patch => + lp341684_device_sensitive_disconnect_notify.patch + - update patche/series + * fix LP: #348612 - Wired disconnect icon is wrong; we fix a typo in icon name + - update patches/lp341684_device_sensitive_disconnect_notify.patch + * fix LP: #354420 - offline notification should have NOTIFY_URGENCY_CRITICAL; + normal disconnect notifications get NOTIFY_URGENCY_NORMAL + - update patches/lp341684_device_sensitive_disconnect_notify.patch + * eliminate string changes from a few notification patches + - update patches/lp330571_dxteam_wired_connect_text.patch + - update patches/lp330608_dxteam_gsm_connect_text.patch + and adjust follow up patches + - update patches/lp337960_dxteam_notification_icon_names.diff + + -- Alexander Sack Mon, 06 Apr 2009 13:25:39 +0200 + +network-manager-applet (0.7.1~rc3-0ubuntu4) jaunty; urgency=low + + * use the notification-gsm-disconnected icon name used by human theme for jaunty beta + - update patches/lpXXX_device_sensitive_disconnect_notify.patch + + -- Alexander Sack Thu, 19 Mar 2009 17:02:01 +0100 + +network-manager-applet (0.7.1~rc3-0ubuntu3) jaunty; urgency=low + + * fix bug in lpXXX_device_sensitive_disconnect_notify.patch that made + disconnect events to not display a notification if the overall state + still was online + - update patches/lpXXX_device_sensitive_disconnect_notify.patch + + -- Alexander Sack Thu, 19 Mar 2009 15:44:43 +0100 + +network-manager-applet (0.7.1~rc3-0ubuntu2) jaunty; urgency=low + + * flip title in wifi "Connection Established" notification bubble (LP: #338389) + - update patches/lp328572-dxteam-connect-text.patch + - update patches/lp337960_dxteam_notification_icon_names.diff + * add patch to support device sensitive disconnect/offline notifications; + this patch queues event from NMClient and NMDevice and then decides what + kind of disconnect happened and which device was reponsible. + - add patches/lpXXX_device_sensitive_disconnect_notify.patch + - update patches/series + + -- Alexander Sack Thu, 19 Mar 2009 14:54:03 +0100 + +network-manager-applet (0.7.1~rc3-0ubuntu1) jaunty; urgency=low + + * new upstream RC 0.7.1rc3 + + rev: 982 + + revision-id: svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1212 + + branch: http://bzr-playground.gnome.org/network-manager-applet/branches/NETWORKMANAGER_APPLET_0_7/ + - update .bzr-builddeb/default.conf + * bump lower builds for network-manager build depends to >= 0.7.1~rc3 + - update control + * fix LP: #328572 - Connecting/disconnecting notification changes; we apply the + the "Connecting" part of this patch, as the disconnecting part would require + string changes that need to be done upstream + - add patches/lp328572-dxteam-connect-text.patch + - update patches/series + * fix LP: #330571 - Wired connected message in nm-applet too long + - add patches/lp330571_dxteam_wired_connect_text.patch + - update patches/series + * fix LP: #330608 - GSM connection message too long in nm-applet + - add patches/lp330608_dxteam_gsm_connect_text.patch + - update patches/series + * fix LP: #337960 - nm-applet jaunty icon changes - brought to you by d(u)xteam; + we apply two patches: first patch changes the icon names referred to in notifications; + second patch ships fallback icons for those names within network-manager-gnome + package + + -- Alexander Sack Thu, 05 Mar 2009 01:30:46 +0100 + +network-manager-applet (0.7.1~rc1+20090219+bzr974-0ubuntu2) jaunty; urgency=low + + * "Network Connections" settings entry does not appear in gnome-control-center; + we fix a typo in the .desktop file introduced by the xfce patch + - update patches/lp295788_xfce_menu_entry.patch + + -- Alexander Sack Mon, 23 Feb 2009 15:45:07 +0100 + +network-manager-applet (0.7.1~rc1+20090219+bzr974-0ubuntu1) jaunty; urgency=low + + * new upstream snapshot 0.7.1rc1+ Feb 19, 2009 + + rev: 974 + + revision-id: svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1186 + + branch: http://bzr-playground.gnome.org/network-manager-applet/branches/NETWORKMANAGER_APPLET_0_7/ + - update .bzr-builddeb/default.conf + * rebase diverged patches + - update patches/add_libmbca_support.patch + * fix LP: #331799 - nm-applet must not send actions when notification server + does not support actions + - add patches/331799_sensible_notify_actions.patch + - update patches/series + + -- Alexander Sack Thu, 19 Feb 2009 23:32:28 +0100 + +network-manager-applet (0.7.1~20090213+bzr960-0ubuntu1) jaunty; urgency=low + + * new upstream snapshot 0.7.1pre Feb 13, 2009 + + rev: 960 + + revision-id: svn-v3-trunk0:9c6bbc85-7128-0410-879a-9bbc9e4270e9:branches%2FNETWORKMANAGER_APPLET_0_7:1161 + + branch: http://bzr-playground.gnome.org/network-manager-applet/branches/NETWORKMANAGER_APPLET_0_7/ + * add config for bzr-builddeb meta information; we declare "merge" as default + operation mode and set the current top most upstream revision id + - add .bzr-builddeb/default.conf + * adjust patches to new upstream code + - update patches/add_libmbca_support.patch + * new tree layout doesn't have upstream sources; in turn we apply + autotools/cdbs integration magic on the fly now; this means we run + intltoolize in pre-build and create a dummy aclocal.m4 in clean::; + doing that allows us to use a bzr export from the upstream tree + instead of a make dist tarball + - update rules + * fix "(applet.c:1044):applet_open_mbca: code should not be reached" + warnings that get dumped to console; typos produced those warnings + even if nothing was wrong + - update patches/add_libmbca_support.patch + * bump lower bound for network-manager build-depends to >= 0.7.1~ + - update control + * fix LP: #327427 - network manager applet should pop up wizard when + 3g device is plugged in and no configuration exists; we adjust the + mobile broadband patch to not show notification. + - update patches/add_libmbca_support.patch + + -- Alexander Sack Tue, 17 Feb 2009 16:06:09 +0100 + +network-manager-applet (0.7-0ubuntu2) jaunty; urgency=low + + * fix LP: #295788 - Network Configuration menu item should also be + displayed in Xfce; we add XFCE to the OnlyShowIn .desktop field; + patch by Martin Mai + - add debian/patches/lp295788_xfce_menu_entry.patch + * fix LP: #327411 - network-manager: configure button(s) to create gsm + connections only works on first attempt; the assitants lists contains + UdiAssitants and not MbcaAssistant's + - update debian/patches/add_libmbca_support.patch + + -- Alexander Sack Sun, 15 Feb 2009 02:29:53 +0100 + +network-manager-applet (0.7-0ubuntu1) jaunty; urgency=low + + * merge new upstrema release (0.7) from trunk branch (rev970) + * drop patches superseeded/applied upstream + - delete debian/patches/lp293749_better_prefix_netmask_ui.patch + - delete debian/patches/lp286421_fix_i18n_bug_286421.patch + - update debian/patches/series + * adjust patches to new upstream codebase (mostly accessor and + anti-bit-rotting measures) + - update debian/patches/add_libmbca_support.patch + - update debian/patches/20_use_full_vpn_dialog_service_name_path.patch + - update debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch + - update debian/patches/lp289466_always_show_tray_icon.patch + * add support for "easy" bzr builddeb + add .bzr-builddeb/default.conf + * bump minimum required version for network-manager-dev, libnm-glib-dev + and libnm-util-dev + - update debian/control + + -- Alexander Sack Mon, 12 Jan 2009 13:31:17 +0100 + +network-manager-applet (0.7~~svn20081020t000444-0ubuntu2) jaunty; urgency=low + + * fix LP: #289466 - Network Manager 0.7 applet not Appearing if there are + managed entries in /etc/network/interfaces; we always call + applet_schedule_update_icon in client_init; also we also show the try when + there are error conditions (no NM running, no managed device) + - add debian/patches/lp289464_always_show_tray_icon.patch + - update debian/patches/series + * fix LP: #286421 - nm-connection-editor menu item untranslatable; + add i18n support to nm-connection-editor.desktop; patch by Timo Jyrinki + + - add debian/patches/lp286421_fix_i18n_bug_286421.patch + - update debian/patches/series + * fix LP: #268803 - Ubuntu Intrepid: Both Knetworkmanager and Network + Manager load on startup; fix xdg autostart .desktop file to + "OnlyShowIn=GNOME;XFCE;" + - add debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch + - update debian/patches/series + * fix LP: #293749 - prefix vs. netmask translation inconsistencies in + connection-editor causes confusion; we cherry pick rev1009 from upstream + svn and backport that. + - add debian/patches/lp293749_better_prefix_netmask_ui.patch + - update debian/patches/series + + -- Alexander Sack Mon, 01 Dec 2008 14:05:51 +0100 + +network-manager-applet (0.7~~svn20081020t000444-0ubuntu1) intrepid; urgency=low + + New upstream snapshot Mon 2008-10-20 00:04:44 +0000 (rev 819) + * support .cer and .crt extensions for wpa-eap (LP: #272185) + - update src/wireless-security/eap-method.c + * Don't translate widget labels + - update src/connection-editor/ce-page-ip4.glade + * updated translations for sv, es, hu, sk, nb, be, he + + -- Alexander Sack Mon, 20 Oct 2008 16:30:10 +0200 + +network-manager-applet (0.7~~svn20081015t194645-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Wed 2008-10-15 19:46:45 +0000 (rev 809) + * fix LP: #277084 - nm-applet confused by icon name changes during + hardy-intrepid upgrade; we ship icons used by NM 0.6 in the NM 0.7 + to prevent this behaviour + - update debian/rules + + -- Alexander Sack Thu, 16 Oct 2008 00:42:34 +0200 + +network-manager-applet (0.7~~svn20081012t133407-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sun 2008-10-12 13:34:07 +0000 (rev 805) + - fixes LP: #279387 + * adjust patch to new upstream code + - update debian/patches/add_libmbca_support.patch + + -- Alexander Sack Mon, 13 Oct 2008 21:24:14 +0200 + +network-manager-applet (0.7~~svn20081005t082522-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sun 2008-10-05 08:25:22 +0000 (rev 793) + * adjust mbca patch for changed upstream code base + - update debian/patches/add_libmbca_support.patch + + -- Alexander Sack Mon, 06 Oct 2008 13:41:27 +0200 + +network-manager-applet (0.7~~svn20080927t101113-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sat 2008-09-27 10:11:13 +0000 (rev 776) + [ Antti Kaijanmäki ] + * added support for Mobile Broadband Configuration Assistant: + - added debian/patches/add_libmbca_support.patch + - updated debian/patches/series + - added libmbca-dev build-dependency to debian/control + - added --with-libmbca to DEB_CONFIGURE_EXTRA_FLAGS in debian/control + + [ Alexander Sack ] + * refresh libmbca patch using quilt to prevent diff pollution in future. + (quilt refresh --diffstat --no-timestamps -U8) + - update debian/patches/add_libmbca_support.patch + * generate a uuid for NMSettingConnection which was introduced by recent + network manager dbus API changes. + - update debian/patches/add_libmbca_support.patch + * fix libmbca setting the dialup string instead of the proper number (*99#) + for GSM modems + - update debian/patches/add_libmbca_support.patch + * add new parameter to add_connection call in mbca patch and strip trailing + whitespaces uses quilt refresh + - update debian/patches/add_libmbca_support.patch + * bump build-depends and depends bar on network-manager bits to + >= 0.7~~svn20080928 + - update debian/control + * explicitly set connection scope for mbca created connections to + NM_CONNECTION_SCOPE_USER + - update debian/patches/add_libmbca_support.patch + * add libmbca0 to Recommends + - update debian/control + + -- Alexander Sack Mon, 29 Sep 2008 22:15:13 +0200 + +network-manager-applet (0.7~~svn20080907t033843-0ubuntu2) intrepid; urgency=low + + * new upstream snapshot Sun 2008-09-07 03:38:43 +0000 (rev 743) + * adjust versioned (build-)depends on network-manager packages to + >= 0.7~~svn20080908 + - update debian/control + + -- Alexander Sack Tue, 09 Sep 2008 16:42:23 +0200 + +network-manager-applet (0.7~~svn20080817t183748-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Sun 2008-08-17 18:37:48 +0000 (rev 723) + * drop patches applied upstream: + - delete debian/patches/01_gcc43.patch + - update debian/patches/series + * bump build dependency versions on network-manager-dev and friends to (>= + 0.7~~svn20080812) + - update debian/control + * use full path for vpn auth-dialog's as provided by the .name key file in + $sysconfdir/NetworkManager/VPN/ + - add debian/patches/20_use_full_vpn_dialog_service_name_path.patch + - update debian/patches/series + + -- Alexander Sack Mon, 18 Aug 2008 21:32:15 +0200 + +network-manager-applet (0.7~~svn20080721t051503-0ubuntu1) intrepid; urgency=low + + * new upstream snapshot Mon 2008-07-21 05:15:03 +0000 (bzr trunk rev673) + * drop manual network config patches - default connection editor is NM + - delete debian/patches/01_static_network-admin.patch + - delete debian/patches/03_manual_config_available_when_connected.patch + - delete debian/patches/13_custom-network-admin.diff + - update debian/patches/series + * fix gcc 4.3 build failures + - add debian/patches/01_gcc43.patch + - update debian/patches/series + * higher network-manager versions for build and binary depends (>= + 0.7~~svn20080720t224551) + - update debian/control + + -- Alexander Sack Thu, 07 Aug 2008 01:54:01 +0200 + +network-manager-applet (0.7~~svn20080121t194048-0ubuntu0~pre6) hardy; urgency=low + + * package 0.7 svn snapshot + * add automake1.9 to Build-Depends + - update debian/control + * add quilt to Build-Depends + - update debian/control + * add libtool to Build-Depends + - update debian/control + * add gnome-common to Build-Depends + - update debian/control + * add libnotify-dev to Build-Depends + - update debian/control + * add libgnutls-dev to Build-Depends and pass --with-gnutls and + --without-nss to configure explicitly + - update debian/control + - update debian/rules + * make libnm-util-dev build dependency versioned to only build against + versions that come with libnm-util1 + - update debian/control + * include empty aclocal.m4 file to make cdbs trigger aclocal auto run + - add aclocal.m4 + * switch to use quilt as patchsystem + - add debian/patches/series + - update debian/rules + * unfold Build-Depends and Depends in debian/control to improve legability + of patches + - update debian/control + * bump {Build-}Depends: version for network-manager and friends to a + reasonable value (>= 0.7~~svn20080121t191418+eni1-0ubuntu0~pre6) + - update debian/control + * remove debian/network-manager-gnome/usr/include on install + - update debian/rules + + -- Alexander Sack Tue, 22 Jan 2008 17:56:32 +0000 + +network-manager-applet (0.6.5-0ubuntu11) hardy; urgency=low + + * apply patch to drop gnome-runtime dependencies (LP: #136945) - patch by Jani + Monoses + - add debian/patches/06_drop_libgnome.patch + - add debian/patches/99_autoconf_update.patch + * don't use gksu in hardy anymore - policy kit hooray! (LP: #176222) + - update debian/patches/01_static_network-admin.patch + - update debian/patches/13_custom-network-admin.diff + + [ TJ ] + * debian/patches/15_lp124336_missing_prototype_causes_connect_to_other_networks_sigsegv.patch: + Fix SIGSEGV caused by pointer>int>pointer conversion on x86_64. (LP: #124336) + + -- Alexander Sack Wed, 09 Jan 2008 13:15:10 +0100 + +network-manager-applet (0.6.5-0ubuntu10) gutsy; urgency=low + + * debian/control: add missing depends on gksu to allow manual + network-configuration even for minimal ubuntu flavours, like the UME. + * debian/patches/13_custom-network-admin.diff: use BINDIR "/" MANUAL_CONF_FILE + when its available on the system. (LP: #145625) + * debian/rules: apply previously forgotten hunk to install network manager + applet autostart file to /etc/xdg/autostart/ from LP: #95064. + * debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch: don't + start nm-applet on ltsp client. (LP: #123808) + + -- Alexander Sack Tue, 02 Oct 2007 20:58:18 +0200 + +network-manager-applet (0.6.5-0ubuntu9) gutsy; urgency=low + + * debian/patches/11_lp95064-enable-xdg-autostart-for-xfce.patch: enable + autostart of nm-applet for XFCE nm-applet.desktop. (LP: #95064) + * debian/patches/12_lp101978-connection-info-hide-on-delete-event.patch: + hide connection info on delete-event; patch by Dima Korzhevin. + (LP: #101978). + + -- Alexander Sack Wed, 19 Sep 2007 18:24:28 +0200 + +network-manager-applet (0.6.5-0ubuntu8) gutsy; urgency=low + + * set Maintainer to ubuntu-core-dev + * add XS-Vcs-Bzr tag to point apt-get to the correct branch + + -- Reinhard Tartler Thu, 26 Jul 2007 15:55:06 +0200 + +network-manager-applet (0.6.5-0ubuntu7) gutsy; urgency=low + + * add 04_nm-vpn-properties_path again, nm-vpn-properties has been moved + back again. LP: #127844 + + -- Reinhard Tartler Thu, 26 Jul 2007 11:05:45 +0200 + +network-manager-applet (0.6.5-0ubuntu6) gutsy; urgency=low + + * remove 04_nm-vpn-properties_path.patch. nm-vpn-properties now + installed in /usr/bin again. + + -- Reinhard Tartler Thu, 05 Jul 2007 10:25:15 +0200 + +network-manager-applet (0.6.5-0ubuntu5) gutsy; urgency=low + + * debian/control: + - Build-Depends on intltool so the translation template updated + (LP: #122547) + + -- Sebastien Bacher Thu, 28 Jun 2007 21:32:29 +0200 + +network-manager-applet (0.6.5-0ubuntu4) gutsy; urgency=low + + * debian/patches/01_static_network-admin.patch: fix by Peter + Clifton; adding NULL check to stop nm-applet from crashing + and make encrypted wifi work. (LP: #121228) + + -- Alexander Sack Wed, 27 Jun 2007 12:34:03 +0200 + +network-manager-applet (0.6.5-0ubuntu3) gutsy; urgency=low + + * Re-import applet patches from network-manager + + * debian/control: tighten build-depends on network-manager to + >= 0.6.5-0ubuntu3 + + * Make patches apply against applet sources + drop patches that have + been applied upstream: + - debian/patches/01_static_network-admin.patch: fix diff path for + new source layout: gnome/applet -> src/ + update line numbers. + - debian/patches/02_manual_means_always_online.diff: fix diff path + for new source layout: gnome/applet -> src/ + update line numbers; + drop diffs for sources not in this tarball: src/NetworkManagerDbus.c, + src/NetworkManagerMain.h and src/nm-device.c. + - debian/patches/03_manual_config_available_when_connected.patch: fix + diff path for new source layout: gnome/applet -> src/ + update line + numbers. + - debian/patches/04_nm-vpn-properties_path.patch: nm-vpn-properties + are shipped in network-manager pkglibdir + - debian/patches/10-po_fr.patch: all but one translation fixes were applied + upstream. + + -- Alexander Sack Tue, 26 Jun 2007 10:52:45 +0200 + +network-manager-applet (0.6.5-0ubuntu2) gutsy; urgency=low + + * Added missing dep network-manager + + -- Anthony Mercatante Fri, 22 Jun 2007 18:24:22 +0200 + +network-manager-applet (0.6.5-0ubuntu1) gutsy; urgency=low + + * Initial release + * Added 21_manual_means_always_online.diff to "patches-not-applied" + The gnome applet has been splitted from n-m code, and patch needs + to be rewritten + * Added 04_nm-vpn-properties_path.patch + Fixes path to nm-vpn-properties according to the changes we've done + to network-manager package due to bad source splitting + + -- Anthony Mercatante Fri, 15 Jun 2007 12:46:22 +0200 --- network-manager-applet-0.7.1~rc4.1.orig/debian/compat +++ network-manager-applet-0.7.1~rc4.1/debian/compat @@ -0,0 +1 @@ +5 --- network-manager-applet-0.7.1~rc4.1.orig/debian/nm-applet.sgml +++ network-manager-applet-0.7.1~rc4.1/debian/nm-applet.sgml @@ -0,0 +1,100 @@ + manpage.1'. You may view + the manual page with: `docbook-to-man manpage.sgml | nroff -man | + less'. A typical entry in a Makefile or Makefile.am is: + +manpage.1: manpage.sgml + docbook-to-man $< > $@ + + + The docbook-to-man binary is found in the docbook-to-man package. + Please remember that if you create the nroff version in one of the + debian/rules file targets (such as build), you will need to include + docbook-to-man in your Build-Depends control field. + + --> + + + 8 February, 2006"> + + + GNU"> + GPL"> +]> + + + +
+ giskard@autistici.org; +
+ + Riccardo + Setti + + + 2006 + Riccardo Setti + + &date; +
+ + nm-applet + 1 + + + &package; + + Network management framework + + + + &package; + + + + DESCRIPTION + + &package; is the GNOME front-end for NetworkManager + It is a systray applet which will display an icon in GNOME's notification area but it + also works for other desktop environments which provide a systray like KDE or XFCE. + &package; shows a list of available networks and allows you to easily switch between them. For encrypted networks it + will prompt you for the key/passphrase and you can optionally store them in the gnome-keyring so you don't have to + type them again. + + + SEE ALSO + + NetworkManager (1). nm-vpn-properties (1) + + More Information about NetworkManager can be found at + http://www.gnome.org/projects/NetworkManager/ . + + + AUTHOR + + This manual page was written by Riccardo Setti giskard@autistici.org for + the Debian system. + + + +
+ + --- network-manager-applet-0.7.1~rc4.1.orig/debian/copyright +++ network-manager-applet-0.7.1~rc4.1/debian/copyright @@ -0,0 +1,59 @@ +This package was debianized by Anthony Mercatante on +Fri, 15 Jun 2007 11:54:56 +0200. + +It was downloaded from http://ftp.acc.umu.se/pub/GNOME/sources/network-manager-applet/ + +Upstream author: + Dan Williams + +Copyright holders: + Copyright 2004-2005 Red Hat, Inc. + Copyright 2006 Thiago Jung Bauermann + Copyright 1999, 2000 Eazel, Inc. + Copyright 2002 Anders Carlsson + Copyright 2006 Novell, Inc. + Copyright 2006 Thiago Jung Bauermann + Copyright 2001, 2002 Free Software Foundation + +License: +All the software: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + + +eggtrayicon.c, eggtrayicon.h: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL'. + +menu-items.c: + This also uses code from eel-vfs-extentions available under the LGPL --- network-manager-applet-0.7.1~rc4.1.orig/debian/control +++ network-manager-applet-0.7.1~rc4.1/debian/control @@ -0,0 +1,53 @@ +Source: network-manager-applet +Section: gnome +Priority: optional +Maintainer: Ubuntu Core Developers +Original-Maintainer: Anthony Mercatante +Build-Depends: debhelper (>= 5.0.37), + automake1.9, + libtool, + cdbs, + libgnome-keyring-dev, + libgnomeui-dev, + libpanel-applet2-dev, + libglade2-dev, + libgconf2-dev, + network-manager-dev (>= 0.7.1~rc3), + libnm-util-dev (>= 0.7.1~rc3), + libnm-glib-dev (>= 0.7.1~rc3), + libiw-dev, + libxml-parser-perl, + docbook-to-man, + quilt, + libnotify-dev, + gnome-common, + libnss3-dev, + libpolkit-gnome-dev, + intltool, + libmbca0-dev +Standards-Version: 3.7.2 +Vcs-Bzr: https://code.launchpad.net/~network-manager/network-manager-applet/ubuntu.0.7.1 + +Package: network-manager-gnome +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + network-manager (>= 0.7~~svn20080928), + gksu +Recommends: notification-daemon, libmbca0 +Description: network management framework (GNOME frontend) + NetworkManager attempts to keep an active network connection available at all + times. It is intended only for the desktop use-case, and is not intended for + usage on servers. The point of NetworkManager is to make networking + configuration and setup as painless and automatic as possible. If using DHCP, + NetworkManager is _intended_ to replace default routes, obtain IP addresses + from a DHCP server, and change nameservers whenever it sees fit. + . + This package contains a systray applet for GNOME's notification area but it + also works for other desktop environments which provide a systray like KDE + or XFCE. + It displays the available networks and allows to easily switch between them. + For encrypted networks it will prompt the user for the key/passphrase and it + can optionally store them in the gnome-keyring. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/series +++ network-manager-applet-0.7.1~rc4.1/debian/patches/series @@ -0,0 +1,15 @@ +add_libmbca_support.patch +20_use_full_vpn_dialog_service_name_path.patch +lp289466_always_show_tray_icon.patch +lp268803_xdg_autostart_gnome_xfce_only.patch +lp295788_xfce_menu_entry.patch +lp328572-dxteam-connect-text.patch +lp330571_dxteam_wired_connect_text.patch +lp330608_dxteam_gsm_connect_text.patch +lp337960_dxteam_notification_icon_names.diff +lp337960_dxteam_notification_icon_names_part2-images.diff +lp341684_device_sensitive_disconnect_notify.patch +fix_upstream_buildfailure.patch +lp358526_generic_disconnected_notification_icon.patch +security_CVE-2009-4144.patch +security_CVE-2009-4145.patch --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/fix_upstream_buildfailure.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/fix_upstream_buildfailure.patch @@ -0,0 +1,27 @@ +--- + src/connection-editor/nm-connection-list.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: network-manager-applet-0.7.1~rc4/src/connection-editor/nm-connection-list.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/connection-editor/nm-connection-list.c ++++ network-manager-applet-0.7.1~rc4/src/connection-editor/nm-connection-list.c +@@ -101,17 +101,17 @@ + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + "%s", heading); + + va_start (args, format); + message = g_strdup_vprintf (format, args); + va_end (args); + +- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), message); ++ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", message); + g_free (message); + + gtk_widget_show_all (dialog); + gtk_window_present (GTK_WINDOW (dialog)); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + } + --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp337960_dxteam_notification_icon_names.diff +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp337960_dxteam_notification_icon_names.diff @@ -0,0 +1,95 @@ +=== modified file 'src/applet-device-gsm.c' +--- + src/applet-device-gsm.c | 2 +- + src/applet-device-wifi.c | 4 ++-- + src/applet-device-wired.c | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +Index: network-manager-applet-0.7.1~rc3/src/applet-device-gsm.c +=================================================================== +--- network-manager-applet-0.7.1~rc3.orig/src/applet-device-gsm.c ++++ network-manager-applet-0.7.1~rc3/src/applet-device-gsm.c +@@ -495,17 +495,17 @@ + if (connection) { + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("GSM network."), + _("Connection Established"), +- "nm-device-wwan", ++ "notification-gsm-high", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + } + + #ifdef WITH_MBCA + typedef struct { + NMDevice* device; + NMApplet* applet; +Index: network-manager-applet-0.7.1~rc3/src/applet-device-wifi.c +=================================================================== +--- network-manager-applet-0.7.1~rc3.orig/src/applet-device-wifi.c ++++ network-manager-applet-0.7.1~rc3/src/applet-device-wifi.c +@@ -971,17 +971,17 @@ + /* Avoid notifying too often */ + g_get_current_time (&timeval); + data->last_notification_time = timeval.tv_sec; + + applet_do_notify (applet, + NOTIFY_URGENCY_LOW, + _("Wireless Networks Available"), + _("Click on this icon to connect to a wireless network"), +- "nm-device-wireless", ++ "notification-network-wireless-full", + "dont-show", + _("Don't show this message again"), + wifi_available_dont_show_cb, + applet); + return FALSE; + } + + static void +@@ -1176,17 +1176,17 @@ + gconf_connection = applet_get_exported_connection_for_device (device, applet); + if (gconf_connection && add_seen_bssid (gconf_connection, new)) + nma_gconf_connection_save (gconf_connection); + } + + applet_do_notify_with_pref (applet, + esc_ssid ? esc_ssid : _("(none)"), + _("Connection Established"), +- "nm-device-wireless", ++ "notification-network-wireless-full", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (esc_ssid); + } + + static GdkPixbuf * + wireless_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, +Index: network-manager-applet-0.7.1~rc3/src/applet-device-wired.c +=================================================================== +--- network-manager-applet-0.7.1~rc3.orig/src/applet-device-wired.c ++++ network-manager-applet-0.7.1~rc3/src/applet-device-wired.c +@@ -256,17 +256,17 @@ + if (connection) { + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); + str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, + str ? str : _("Wired network"), + _("Connection Established"), +- "nm-device-wired", ++ "notification-network-ethernet-connected", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + } + } + + static GdkPixbuf * + wired_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/security_CVE-2009-4145.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/security_CVE-2009-4145.patch @@ -0,0 +1,203 @@ +Description: fix information disclosure via DBus +Origin: upstream, http://git.gnome.org/browse/network-manager-applet/commit/?h=NETWORKMANAGER_APPLET_0_7&id=8627880e07c8345f69ed639325280c7f62a8f894 +Origin: upstream, http://git.gnome.org/browse/network-manager-applet/commit/?h=NETWORKMANAGER_APPLET_0_7&id=56d87fcb86acb5359558e0a2ee702cfc0c3391f2 +Origin: upstream, http://git.gnome.org/browse/network-manager-applet/commit/?h=NETWORKMANAGER_APPLET_0_7&id=8677b82ed7166a1c754aa9aab4e85123819ad545 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563371 + +diff -Nur network-manager-applet-0.7.1~rc4.1/src/applet.c network-manager-applet-0.7.1~rc4.1.new/src/applet.c +--- network-manager-applet-0.7.1~rc4.1/src/applet.c 2010-01-12 10:40:12.000000000 -0500 ++++ network-manager-applet-0.7.1~rc4.1.new/src/applet.c 2010-01-12 10:40:39.000000000 -0500 +@@ -2706,15 +2706,11 @@ + + applet->dbus_settings = (NMDBusSettings *) nm_dbus_settings_system_new (applet_dbus_manager_get_connection (dbus_mgr)); + +- applet->gconf_settings = nma_gconf_settings_new (); ++ applet->gconf_settings = nma_gconf_settings_new (applet_dbus_manager_get_connection (dbus_mgr)); + g_signal_connect (applet->gconf_settings, "new-secrets-requested", + G_CALLBACK (applet_settings_new_secrets_requested_cb), + applet); + +- dbus_g_connection_register_g_object (applet_dbus_manager_get_connection (dbus_mgr), +- NM_DBUS_PATH_SETTINGS, +- G_OBJECT (applet->gconf_settings)); +- + /* Start our DBus service */ + if (!applet_dbus_manager_start_service (dbus_mgr)) { + g_object_unref (applet); +diff -Nur network-manager-applet-0.7.1~rc4.1/src/connection-editor/nm-connection-list.c network-manager-applet-0.7.1~rc4.1.new/src/connection-editor/nm-connection-list.c +--- network-manager-applet-0.7.1~rc4.1/src/connection-editor/nm-connection-list.c 2010-01-12 10:40:12.000000000 -0500 ++++ network-manager-applet-0.7.1~rc4.1.new/src/connection-editor/nm-connection-list.c 2010-01-12 10:40:39.000000000 -0500 +@@ -2142,7 +2142,7 @@ + G_CALLBACK (connection_added), + list); + +- list->gconf_settings = nma_gconf_settings_new (); ++ list->gconf_settings = nma_gconf_settings_new (NULL); + g_signal_connect (list->gconf_settings, "new-connection", + G_CALLBACK (connection_added), + list); +diff -Nur network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-connection.c network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-connection.c +--- network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-connection.c 2010-01-12 10:40:12.000000000 -0500 ++++ network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-connection.c 2010-01-12 10:41:35.000000000 -0500 +@@ -95,6 +95,11 @@ + g_return_val_if_fail (conf_dir != NULL, NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + ++ /* Ensure the connection is user-scope since only user-scope connections ++ * will be wrapped by an NMAGConfConnection. ++ */ ++ nm_connection_set_scope (connection, NM_CONNECTION_SCOPE_USER); ++ + return (NMAGConfConnection *) g_object_new (NMA_TYPE_GCONF_CONNECTION, + NMA_GCONF_CONNECTION_CLIENT, client, + NMA_GCONF_CONNECTION_DIR, conf_dir, +@@ -523,7 +528,6 @@ + GObject *object; + NMAGConfConnectionPrivate *priv; + NMConnection *connection; +- DBusGConnection *bus; + GError *error = NULL; + + object = G_OBJECT_CLASS (nma_gconf_connection_parent_class)->constructor (type, n_construct_params, construct_params); +@@ -566,18 +570,6 @@ + + fill_vpn_user_name (connection); + +- bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); +- if (!bus) { +- nm_warning ("Could not get the system bus: %s", error->message); +- g_error_free (error); +- goto err; +- } +- +- nm_exported_connection_register_object (NM_EXPORTED_CONNECTION (object), +- NM_CONNECTION_SCOPE_USER, +- bus); +- dbus_g_connection_unref (bus); +- + return object; + + err: +diff -Nur network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-settings.c network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-settings.c +--- network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-settings.c 2009-04-06 11:11:56.000000000 -0400 ++++ network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-settings.c 2010-01-12 10:40:39.000000000 -0500 +@@ -24,6 +24,7 @@ + #include "gconf-helpers.h" + #include "nma-marshal.h" + #include "nm-utils.h" ++#include + + G_DEFINE_TYPE (NMAGConfSettings, nma_gconf_settings, NM_TYPE_SETTINGS) + +@@ -36,6 +37,8 @@ + guint read_connections_id; + GHashTable *pending_changes; + ++ DBusGConnection *bus; ++ + gboolean disposed; + } NMAGConfSettingsPrivate; + +@@ -49,9 +52,22 @@ + + + NMAGConfSettings * +-nma_gconf_settings_new (void) ++nma_gconf_settings_new (DBusGConnection *bus) + { +- return (NMAGConfSettings *) g_object_new (NMA_TYPE_GCONF_SETTINGS, NULL); ++ NMAGConfSettings *self; ++ NMAGConfSettingsPrivate *priv; ++ ++ self = (NMAGConfSettings *) g_object_new (NMA_TYPE_GCONF_SETTINGS, NULL); ++ if (!self) ++ return NULL; ++ ++ priv = NMA_GCONF_SETTINGS_GET_PRIVATE (self); ++ if (bus) { ++ priv->bus = dbus_g_connection_ref (bus); ++ dbus_g_connection_register_g_object (bus, NM_DBUS_PATH_SETTINGS, G_OBJECT (self)); ++ } ++ ++ return self; + } + + static void +@@ -91,16 +107,23 @@ + { + NMAGConfSettingsPrivate *priv = NMA_GCONF_SETTINGS_GET_PRIVATE (self); + +- if (connection) { +- priv->connections = g_slist_prepend (priv->connections, connection); +- g_signal_connect (connection, "new-secrets-requested", +- G_CALLBACK (connection_new_secrets_requested_cb), +- self); +- +- g_signal_connect (connection, "removed", G_CALLBACK (connection_removed), self); +- nm_settings_signal_new_connection (NM_SETTINGS (self), +- NM_EXPORTED_CONNECTION (connection)); ++ g_return_if_fail (connection != NULL); ++ ++ priv->connections = g_slist_prepend (priv->connections, connection); ++ g_signal_connect (connection, "new-secrets-requested", ++ G_CALLBACK (connection_new_secrets_requested_cb), ++ self); ++ ++ g_signal_connect (connection, "removed", G_CALLBACK (connection_removed), self); ++ ++ /* Export the connection over dbus if requested */ ++ if (priv->bus) { ++ nm_exported_connection_register_object (NM_EXPORTED_CONNECTION (connection), ++ NM_CONNECTION_SCOPE_USER, ++ priv->bus); + } ++ ++ nm_settings_signal_new_connection (NM_SETTINGS (self), NM_EXPORTED_CONNECTION (connection)); + } + + NMAGConfConnection * +@@ -231,8 +254,11 @@ + + for (iter = dir_list; iter; iter = iter->next) { + char *dir = (char *) iter->data; ++ NMAGConfConnection *connection; + +- add_connection_real (settings, nma_gconf_connection_new (priv->client, dir)); ++ connection = nma_gconf_connection_new (priv->client, dir); ++ if (connection) ++ add_connection_real (settings, connection); + g_free (dir); + } + +@@ -289,7 +315,8 @@ + if (!connection) { + /* New connection */ + connection = nma_gconf_connection_new (priv->client, info->path); +- add_connection_real (info->settings, connection); ++ if (connection) ++ add_connection_real (info->settings, connection); + } else { + if (gconf_client_dir_exists (priv->client, info->path, NULL)) { + /* Updated connection */ +@@ -405,6 +432,9 @@ + + priv->disposed = TRUE; + ++ if (priv->bus) ++ dbus_g_connection_unref (priv->bus); ++ + g_hash_table_destroy (priv->pending_changes); + + if (priv->read_connections_id) { +diff -Nur network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-settings.h network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-settings.h +--- network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-settings.h 2009-04-06 11:11:56.000000000 -0400 ++++ network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-settings.h 2010-01-12 10:40:39.000000000 -0500 +@@ -53,7 +53,7 @@ + + GType nma_gconf_settings_get_type (void); + +-NMAGConfSettings *nma_gconf_settings_new (void); ++NMAGConfSettings *nma_gconf_settings_new (DBusGConnection *bus); + + NMAGConfConnection *nma_gconf_settings_add_connection (NMAGConfSettings *self, + NMConnection *connection); --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/20_use_full_vpn_dialog_service_name_path.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/20_use_full_vpn_dialog_service_name_path.patch @@ -0,0 +1,64 @@ + +We dont want LIBEXECDIR shuffeling. The vpn daemon building system knows +better where the auth-dialog will be installed to; thus we just use the +full path stored in VPN/*.name files. + +-- + +=== modified file 'src/vpn-password-dialog.c' +--- + src/vpn-password-dialog.c | 14 ++------------ + 1 file changed, 2 insertions(+), 12 deletions(-) + +Index: ubuntu.0.7/src/vpn-password-dialog.c +=================================================================== +--- ubuntu.0.7.orig/src/vpn-password-dialog.c ++++ ubuntu.0.7/src/vpn-password-dialog.c +@@ -136,26 +136,16 @@ + GTK_BUTTONS_CLOSE, + _("Cannot start VPN connection '%s'"), + name); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + _("Could not find the authentication dialog for VPN connection type '%s'. Contact your system administrator."), + service); + gtk_window_present (GTK_WINDOW (dialog)); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); +- } else { +- char *basename; +- +- /* Remove any path component, then reconstruct path to the auth +- * dialog in LIBEXECDIR. +- */ +- basename = g_path_get_basename (prog); +- g_free (prog); +- prog = g_strdup_printf ("%s/%s", LIBEXECDIR, basename); +- g_free (basename); + } + + return prog; + } + + static void + destroy_gvalue (gpointer data) + { +@@ -253,18 +243,18 @@ + _("Cannot start VPN connection '%s'"), + id); + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + _("There was a problem launching the authentication dialog for VPN connection type '%s'. Contact your system administrator."), + service_type); + gtk_window_present (GTK_WINDOW (dialog)); + g_signal_connect_swapped (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog); + g_set_error (&error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INTERNAL_ERROR, +- "%s.%d (%s): couldn't run VPN auth dialog.", +- __FILE__, __LINE__, __func__); ++ "%s.%d (%s): couldn't run VPN auth dialog. (cmd=%s)", ++ __FILE__, __LINE__, __func__, argv[0]); + goto out; + } + + /* catch when child is reaped */ + g_child_watch_add (child_pid, child_finished_cb, (gpointer) &child_status); + + io_user_data.lines = NULL; + io_user_data.child_stdin = child_stdin; --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/security_CVE-2009-4144.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/security_CVE-2009-4144.patch @@ -0,0 +1,576 @@ +Description: fix information disclosure via incorrect certificate validation +Origin: upstream, http://git.gnome.org/browse/network-manager-applet/commit/?h=NETWORKMANAGER_APPLET_0_7&id=4020594dfbf566f1852f0acb36ad631a9e73a82b +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560067 + +diff -Nur network-manager-applet-0.7.1~rc4.1/src/applet-device-wifi.c network-manager-applet-0.7.1~rc4.1.new/src/applet-device-wifi.c +--- network-manager-applet-0.7.1~rc4.1/src/applet-device-wifi.c 2010-01-08 10:41:25.000000000 -0500 ++++ network-manager-applet-0.7.1~rc4.1.new/src/applet-device-wifi.c 2010-01-08 10:41:30.000000000 -0500 +@@ -1452,6 +1452,7 @@ + GError **error) + { + GHashTable *secrets; ++ GError *tmp_error = NULL; + + g_return_val_if_fail (settings != NULL, FALSE); + g_return_val_if_fail (connection != NULL, FALSE); +@@ -1459,7 +1460,15 @@ + g_return_val_if_fail (error != NULL, FALSE); + g_return_val_if_fail (*error == NULL, FALSE); + +- utils_fill_connection_certs (connection); ++ if (!utils_fill_connection_certs (NM_CONNECTION (connection), &tmp_error)) { ++ g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INTERNAL_ERROR, ++ "%s.%d (%s): failed to read connection certificates: (%d) %s.", ++ __FILE__, __LINE__, __func__, ++ tmp_error ? tmp_error->code : -1, ++ tmp_error && tmp_error->message ? tmp_error->message : "(unknown)"); ++ return FALSE; ++ } ++ + secrets = nm_setting_to_hash (setting); + utils_clear_filled_connection_certs (connection); + +diff -Nur network-manager-applet-0.7.1~rc4.1/src/applet-device-wired.c network-manager-applet-0.7.1~rc4.1.new/src/applet-device-wired.c +--- network-manager-applet-0.7.1~rc4.1/src/applet-device-wired.c 2010-01-08 10:41:25.000000000 -0500 ++++ network-manager-applet-0.7.1~rc4.1.new/src/applet-device-wired.c 2010-01-08 10:42:11.000000000 -0500 +@@ -652,7 +652,15 @@ + goto done; + } + +- utils_fill_connection_certs (connection); ++ if (!utils_fill_connection_certs (NM_CONNECTION (connection), &err)) { ++ g_set_error (&err, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INTERNAL_ERROR, ++ "%s.%d (%s): failed to read connection certificates: (%d) %s.", ++ __FILE__, __LINE__, __func__, ++ err ? err->code : -1, ++ err && err->message ? err->message : "(unknown)"); ++ goto done; ++ } ++ + utils_clear_filled_connection_certs (connection); + + /* Returned secrets are a{sa{sv}}; this is the outer a{s...} hash that +diff -Nur network-manager-applet-0.7.1~rc4.1/src/connection-editor/nm-connection-list.c network-manager-applet-0.7.1~rc4.1.new/src/connection-editor/nm-connection-list.c +--- network-manager-applet-0.7.1~rc4.1/src/connection-editor/nm-connection-list.c 2010-01-08 10:41:25.000000000 -0500 ++++ network-manager-applet-0.7.1~rc4.1.new/src/connection-editor/nm-connection-list.c 2010-01-08 10:41:30.000000000 -0500 +@@ -518,14 +518,15 @@ + NMExportedConnection *exported = NULL; + NMConnectionScope scope; + gboolean success = FALSE; ++ GError *error = NULL; + + scope = nm_connection_get_scope (connection); + if (scope == NM_CONNECTION_SCOPE_SYSTEM) { +- GError *error = NULL; +- +- utils_fill_connection_certs (connection); +- success = nm_dbus_settings_system_add_connection (self->system_settings, connection, &error); +- utils_clear_filled_connection_certs (connection); ++ success = utils_fill_connection_certs (connection, &error); ++ if (success) { ++ success = nm_dbus_settings_system_add_connection (self->system_settings, connection, &error); ++ utils_clear_filled_connection_certs (connection); ++ } + + if (!success) { + gboolean pending_auth = FALSE; +@@ -717,18 +718,21 @@ + gboolean pending_auth = FALSE; + GtkWindow *parent; + +- utils_fill_connection_certs (modified); +- new_settings = nm_connection_to_hash (modified); ++ parent = nm_connection_editor_get_window (editor); + +- /* Hack; make sure that gconf private values are copied */ +- nm_gconf_copy_private_connection_values (nm_exported_connection_get_connection (original), +- modified); +- +- success = nm_exported_connection_update (original, new_settings, &error); +- g_hash_table_destroy (new_settings); +- utils_clear_filled_connection_certs (modified); ++ success = utils_fill_connection_certs (modified, &error); ++ if (success) { ++ new_settings = nm_connection_to_hash (modified); ++ ++ /* Hack; make sure that gconf private values are copied */ ++ nm_gconf_copy_private_connection_values (nm_exported_connection_get_connection (original), ++ modified); ++ ++ success = nm_exported_connection_update (original, new_settings, &error); ++ g_hash_table_destroy (new_settings); ++ utils_clear_filled_connection_certs (modified); ++ } + +- parent = nm_connection_editor_get_window (editor); + if (!success) { + if (pk_helper_is_permission_denied_error (error)) { + GError *auth_error = NULL; +@@ -1257,19 +1261,28 @@ + + connection = nm_connection_editor_get_connection (editor); + +- utils_fill_connection_certs (connection); +- success = nm_connection_verify (connection, &edit_error); +- utils_clear_filled_connection_certs (connection); +- +- if (success) { +- update_connection (info->list, editor, info->original_connection, +- connection, connection_updated_cb, info); +- } else { +- g_warning ("%s: invalid connection after update: bug in the " +- "'%s' / '%s' invalid: %d", ++ success = utils_fill_connection_certs (connection, &edit_error); ++ if (!success) { ++ g_warning ("%s: error completing connection edit: (%d) %s", + __func__, +- g_type_name (nm_connection_lookup_setting_type_by_quark (edit_error->domain)), +- edit_error->message, edit_error->code); ++ edit_error ? edit_error->code : -1, ++ edit_error && edit_error->message ? edit_error->message : "(unknown)"); ++ } else { ++ success = nm_connection_verify (connection, &edit_error); ++ utils_clear_filled_connection_certs (connection); ++ if (success) { ++ update_connection (info->list, editor, info->original_connection, ++ connection, connection_updated_cb, info); ++ } else { ++ g_warning ("%s: invalid connection after update: property " ++ "'%s' / '%s' invalid: %d", ++ __func__, ++ g_type_name (nm_connection_lookup_setting_type_by_quark (edit_error->domain)), ++ edit_error->message, edit_error->code); ++ } ++ } ++ ++ if (!success) { + g_error_free (edit_error); + connection_updated_cb (info->list, FALSE, user_data); + } +diff -Nur network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/gconf-helpers.c network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/gconf-helpers.c +--- network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/gconf-helpers.c 2009-04-06 11:11:56.000000000 -0400 ++++ network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/gconf-helpers.c 2010-01-08 10:41:30.000000000 -0500 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -992,6 +993,7 @@ + GConfClient *client; + const char *dir; + guint32 dir_len; ++ GError *error; + } ReadFromGConfInfo; + + static void +@@ -1137,57 +1139,81 @@ + } + } + +-static void ++static gboolean + read_one_cert (ReadFromGConfInfo *info, + const char *setting_name, +- const char *key) ++ const char *key, ++ gboolean fail_if_missing, ++ GError **error) + { + char *value = NULL; + +- if (!nm_gconf_get_string_helper (info->client, info->dir, key, setting_name, &value)) +- return; ++ if (nm_gconf_get_string_helper (info->client, info->dir, key, setting_name, &value)) { ++ if (fail_if_missing && !g_file_test (value, G_FILE_TEST_EXISTS)) { ++ g_set_error (error, 0, 0, _("Certificate %s not found or not accessible."), value); ++ return FALSE; ++ } + +- g_object_set_data_full (G_OBJECT (info->connection), +- key, value, +- (GDestroyNotify) g_free); ++ g_object_set_data_full (G_OBJECT (info->connection), key, value, (GDestroyNotify) g_free); ++ } ++ return TRUE; + } + + static void + read_applet_private_values_from_gconf (NMSetting *setting, + ReadFromGConfInfo *info) + { +- if (NM_IS_SETTING_802_1X (setting)) { +- const char *setting_name = nm_setting_get_name (setting); +- gboolean value; ++ const char *setting_name = nm_setting_get_name (setting); ++ gboolean value; ++ GError *error = NULL; + +- if (nm_gconf_get_bool_helper (info->client, info->dir, +- NMA_CA_CERT_IGNORE_TAG, +- setting_name, &value)) { +- g_object_set_data (G_OBJECT (info->connection), +- NMA_CA_CERT_IGNORE_TAG, +- GUINT_TO_POINTER (value)); +- } +- +- if (nm_gconf_get_bool_helper (info->client, info->dir, +- NMA_PHASE2_CA_CERT_IGNORE_TAG, +- setting_name, &value)) { +- g_object_set_data (G_OBJECT (info->connection), +- NMA_PHASE2_CA_CERT_IGNORE_TAG, +- GUINT_TO_POINTER (value)); ++ if (!NM_IS_SETTING_802_1X (setting)) ++ return; ++ ++ if (nm_gconf_get_bool_helper (info->client, info->dir, ++ NMA_CA_CERT_IGNORE_TAG, ++ setting_name, &value)) { ++ g_object_set_data (G_OBJECT (info->connection), ++ NMA_CA_CERT_IGNORE_TAG, ++ GUINT_TO_POINTER (value)); ++ } ++ ++ if (nm_gconf_get_bool_helper (info->client, info->dir, ++ NMA_PHASE2_CA_CERT_IGNORE_TAG, ++ setting_name, &value)) { ++ g_object_set_data (G_OBJECT (info->connection), ++ NMA_PHASE2_CA_CERT_IGNORE_TAG, ++ GUINT_TO_POINTER (value)); ++ } ++ ++ /* Binary certificate and key data doesn't get stored in GConf. Instead, ++ * the path to the certificate gets stored in a special key and the ++ * certificate is read and stuffed into the setting right before ++ * the connection is sent to NM ++ */ ++ ++ if (!read_one_cert (info, setting_name, NMA_PATH_CA_CERT_TAG, TRUE, &error)) { ++ /* Save the first error reading a certificate */ ++ if (!info->error) { ++ info->error = error; ++ error = NULL; + } ++ g_clear_error (&error); ++ } + +- /* Binary certificate and key data doesn't get stored in GConf. Instead, +- * the path to the certificate gets stored in a special key and the +- * certificate is read and stuffed into the setting right before +- * the connection is sent to NM +- */ +- read_one_cert (info, setting_name, NMA_PATH_CA_CERT_TAG); +- read_one_cert (info, setting_name, NMA_PATH_CLIENT_CERT_TAG); +- read_one_cert (info, setting_name, NMA_PATH_PRIVATE_KEY_TAG); +- read_one_cert (info, setting_name, NMA_PATH_PHASE2_CA_CERT_TAG); +- read_one_cert (info, setting_name, NMA_PATH_PHASE2_CLIENT_CERT_TAG); +- read_one_cert (info, setting_name, NMA_PATH_PHASE2_PRIVATE_KEY_TAG); ++ if (!read_one_cert (info, setting_name, NMA_PATH_PHASE2_CA_CERT_TAG, TRUE, &error)) { ++ /* Save the first error reading a certificate */ ++ if (!info->error) { ++ info->error = error; ++ error = NULL; ++ } ++ g_clear_error (&error); + } ++ ++ read_one_cert (info, setting_name, NMA_PATH_CLIENT_CERT_TAG, FALSE, NULL); ++ read_one_cert (info, setting_name, NMA_PATH_PRIVATE_KEY_TAG, FALSE, NULL); ++ read_one_cert (info, setting_name, NMA_PATH_PHASE2_CLIENT_CERT_TAG, FALSE, NULL); ++ read_one_cert (info, setting_name, NMA_PATH_PHASE2_PRIVATE_KEY_TAG, FALSE, NULL); + } + + static void +@@ -1214,24 +1240,17 @@ + + NMConnection * + nm_gconf_read_connection (GConfClient *client, +- const char *dir) ++ const char *dir, ++ GError **error) + { + ReadFromGConfInfo info; + GSList *list; +- GError *err = NULL; +- +- list = gconf_client_all_dirs (client, dir, &err); +- if (err) { +- g_warning ("Error while reading connection: %s", err->message); +- g_error_free (err); +- return NULL; +- } + +- if (!list) { +- g_warning ("Invalid connection (empty)"); ++ list = gconf_client_all_dirs (client, dir, error); ++ if (!list) + return NULL; +- } + ++ memset (&info, 0, sizeof (info)); + info.connection = nm_connection_new (); + info.client = client; + info.dir = dir; +@@ -1240,6 +1259,21 @@ + g_slist_foreach (list, read_one_setting, &info); + g_slist_free (list); + ++ if (info.error) { ++ if (error) ++ *error = info.error; ++ else { ++ g_warning ("%s: (%s) error reading connection: (%d) %s", ++ __func__, info.dir, info.error->code, info.error->message); ++ g_clear_error (&info.error); ++ } ++ ++ if (info.connection) { ++ g_object_unref (info.connection); ++ info.connection = NULL; ++ } ++ } ++ + return info.connection; + } + +diff -Nur network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/gconf-helpers.h network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/gconf-helpers.h +--- network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/gconf-helpers.h 2009-04-06 11:11:56.000000000 -0400 ++++ network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/gconf-helpers.h 2010-01-08 10:41:30.000000000 -0500 +@@ -211,7 +211,8 @@ + + NMConnection * + nm_gconf_read_connection (GConfClient *client, +- const char *dir); ++ const char *dir, ++ GError **error); + + void + nm_gconf_write_connection (NMConnection *connection, +diff -Nur network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-connection.c network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-connection.c +--- network-manager-applet-0.7.1~rc4.1/src/gconf-helpers/nma-gconf-connection.c 2009-04-06 11:11:56.000000000 -0400 ++++ network-manager-applet-0.7.1~rc4.1.new/src/gconf-helpers/nma-gconf-connection.c 2010-01-08 10:41:30.000000000 -0500 +@@ -64,19 +64,23 @@ + nma_gconf_connection_new (GConfClient *client, const char *conf_dir) + { + NMConnection *connection; +- NMAGConfConnection *gconf_connection; ++ NMAGConfConnection *gconf_connection = NULL; ++ GError *error; + + g_return_val_if_fail (GCONF_IS_CLIENT (client), NULL); + g_return_val_if_fail (conf_dir != NULL, NULL); + + /* retrieve GConf data */ +- connection = nm_gconf_read_connection (client, conf_dir); ++ connection = nm_gconf_read_connection (client, conf_dir, &error); + if (connection) { + gconf_connection = nma_gconf_connection_new_from_connection (client, conf_dir, connection); + g_object_unref (connection); + } else { +- nm_warning ("No connection read from GConf at %s.", conf_dir); +- gconf_connection = NULL; ++ g_warning ("%s: (%s) error reading connection: (%d) %s", ++ __func__, conf_dir, ++ error ? error->code : -1, ++ error && error->message ? error->message : "(unknown)"); ++ g_clear_error (&error); + } + + return gconf_connection; +@@ -155,13 +159,23 @@ + priv = NMA_GCONF_CONNECTION_GET_PRIVATE (self); + wrapped_connection = nm_exported_connection_get_connection (NM_EXPORTED_CONNECTION (self)); + +- gconf_connection = nm_gconf_read_connection (priv->client, priv->dir); ++ gconf_connection = nm_gconf_read_connection (priv->client, priv->dir, &error); + if (!gconf_connection) { +- g_warning ("No connection read from GConf at %s.", priv->dir); ++ g_warning ("%s: (%s) error reading connection: (%d) %s", ++ __func__, priv->dir, ++ error ? error->code : -1, ++ error && error->message ? error->message : "(unknown)"); ++ goto invalid; ++ } ++ ++ if (!utils_fill_connection_certs (gconf_connection, &error)) { ++ g_warning ("%s: Invalid connection %s: failed to load connection certificates: (%d) %s", ++ __func__, priv->dir, ++ error ? error->code : -1, ++ error && error->message ? error->message : "(unknown)"); + goto invalid; + } + +- utils_fill_connection_certs (gconf_connection); + if (!nm_connection_verify (gconf_connection, &error)) { + utils_clear_filled_connection_certs (gconf_connection); + g_warning ("%s: Invalid connection %s: '%s' / '%s' invalid: %d", +@@ -176,7 +190,14 @@ + if (nm_connection_compare (wrapped_connection, gconf_connection, NM_SETTING_COMPARE_FLAG_EXACT)) + return TRUE; + +- utils_fill_connection_certs (gconf_connection); ++ if (!utils_fill_connection_certs (gconf_connection, &error)) { ++ g_warning ("%s: Invalid connection %s: failed to load connection certificates: (%d) %s", ++ __func__, priv->dir, ++ error ? error->code : -1, ++ error && error->message ? error->message : "(unknown)"); ++ goto invalid; ++ } ++ + new_settings = nm_connection_to_hash (gconf_connection); + utils_clear_filled_connection_certs (gconf_connection); + +@@ -213,12 +234,23 @@ + static GHashTable * + get_settings (NMExportedConnection *exported) + { ++ NMAGConfConnection *self = NMA_GCONF_CONNECTION (exported); ++ NMAGConfConnectionPrivate *priv = NMA_GCONF_CONNECTION_GET_PRIVATE (self); + NMConnection *connection; + GHashTable *settings; ++ GError *error = NULL; + + connection = nm_exported_connection_get_connection (exported); + +- utils_fill_connection_certs (connection); ++ if (!utils_fill_connection_certs (connection, &error)) { ++ g_warning ("%s: Invalid connection %s: failed to load connection certificates: (%d) %s", ++ __func__, priv->dir, ++ error ? error->code : -1, ++ error && error->message ? error->message : "(unknown)"); ++ g_clear_error (&error); ++ return NULL; ++ } ++ + settings = nm_connection_to_hash (connection); + utils_clear_filled_connection_certs (connection); + +@@ -513,7 +545,15 @@ + + connection = nm_exported_connection_get_connection (NM_EXPORTED_CONNECTION (object)); + +- utils_fill_connection_certs (connection); ++ if (!utils_fill_connection_certs (connection, &error)) { ++ g_warning ("%s: Invalid connection %s: failed to load connection certificates: (%d) %s", ++ __func__, priv->dir, ++ error ? error->code : -1, ++ error && error->message ? error->message : "(unknown)"); ++ g_clear_error (&error); ++ goto err; ++ } ++ + if (!nm_connection_verify (connection, &error)) { + utils_clear_filled_connection_certs (connection); + g_warning ("Invalid connection: '%s' / '%s' invalid: %d", +diff -Nur network-manager-applet-0.7.1~rc4.1/src/utils/utils.c network-manager-applet-0.7.1~rc4.1.new/src/utils/utils.c +--- network-manager-applet-0.7.1~rc4.1/src/utils/utils.c 2009-04-06 11:11:56.000000000 -0400 ++++ network-manager-applet-0.7.1~rc4.1.new/src/utils/utils.c 2010-01-08 10:41:30.000000000 -0500 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -275,25 +276,28 @@ + return need_client_cert; + } + +-void +-utils_fill_connection_certs (NMConnection *connection) ++gboolean ++utils_fill_connection_certs (NMConnection *connection, GError **error) + { + NMSetting8021x *s_8021x; + const char *filename; +- GError *error = NULL; ++ GError *tmp_error = NULL; + gboolean need_client_cert = TRUE; + +- g_return_if_fail (connection != NULL); ++ g_return_val_if_fail (connection != NULL, FALSE); + + s_8021x = NM_SETTING_802_1X (nm_connection_get_setting (connection, NM_TYPE_SETTING_802_1X)); + if (!s_8021x) +- return; ++ return TRUE; + + filename = g_object_get_data (G_OBJECT (connection), NMA_PATH_CA_CERT_TAG); + if (filename) { +- if (!nm_setting_802_1x_set_ca_cert_from_file (s_8021x, filename, NULL, &error)) +- g_warning ("%s: couldn't read CA certificate: %d %s", __func__, error->code, error->message); +- g_clear_error (&error); ++ if (!nm_setting_802_1x_set_ca_cert_from_file (s_8021x, filename, NULL, &tmp_error)) { ++ g_set_error (error, tmp_error->domain, tmp_error->code, ++ _("Could not read CA certificate: %s"), tmp_error->message); ++ g_clear_error (&tmp_error); ++ return FALSE; ++ } + } + + /* If the private key is PKCS#12, don't set the client cert */ +@@ -304,17 +308,23 @@ + if (need_client_cert) { + filename = g_object_get_data (G_OBJECT (connection), NMA_PATH_CLIENT_CERT_TAG); + if (filename) { +- if (!nm_setting_802_1x_set_client_cert_from_file (s_8021x, filename, NULL, &error)) +- g_warning ("%s: couldn't read client certificate: %d %s", __func__, error->code, error->message); +- g_clear_error (&error); ++ if (!nm_setting_802_1x_set_client_cert_from_file (s_8021x, filename, NULL, &tmp_error)) { ++ g_set_error (error, tmp_error->domain, tmp_error->code, ++ _("Could not read client certificate: %s"), tmp_error->message); ++ g_clear_error (&tmp_error); ++ return FALSE; ++ } + } + } + + filename = g_object_get_data (G_OBJECT (connection), NMA_PATH_PHASE2_CA_CERT_TAG); + if (filename) { +- if (!nm_setting_802_1x_set_phase2_ca_cert_from_file (s_8021x, filename, NULL, &error)) +- g_warning ("%s: couldn't read phase2 CA certificate: %d %s", __func__, error->code, error->message); +- g_clear_error (&error); ++ if (!nm_setting_802_1x_set_phase2_ca_cert_from_file (s_8021x, filename, NULL, &tmp_error)) { ++ g_set_error (error, tmp_error->domain, tmp_error->code, ++ _("Could not read inner CA certificate: %s"), tmp_error->message); ++ g_clear_error (&tmp_error); ++ return FALSE; ++ } + } + + /* If the private key is PKCS#12, don't set the client cert */ +@@ -325,11 +335,16 @@ + if (need_client_cert) { + filename = g_object_get_data (G_OBJECT (connection), NMA_PATH_PHASE2_CLIENT_CERT_TAG); + if (filename) { +- if (!nm_setting_802_1x_set_phase2_client_cert_from_file (s_8021x, filename, NULL, &error)) +- g_warning ("%s: couldn't read phase2 client certificate: %d %s", __func__, error->code, error->message); +- g_clear_error (&error); ++ if (!nm_setting_802_1x_set_phase2_client_cert_from_file (s_8021x, filename, NULL, &tmp_error)) { ++ g_set_error (error, tmp_error->domain, tmp_error->code, ++ _("Could not read inner client certificate: %s"), tmp_error->message); ++ g_clear_error (&tmp_error); ++ return FALSE; ++ } + } + } ++ ++ return TRUE; + } + + void +diff -Nur network-manager-applet-0.7.1~rc4.1/src/utils/utils.h network-manager-applet-0.7.1~rc4.1.new/src/utils/utils.h +--- network-manager-applet-0.7.1~rc4.1/src/utils/utils.h 2009-04-06 11:11:56.000000000 -0400 ++++ network-manager-applet-0.7.1~rc4.1.new/src/utils/utils.h 2010-01-08 10:41:30.000000000 -0500 +@@ -32,7 +32,7 @@ + + const char * utils_get_device_description (NMDevice *device); + +-void utils_fill_connection_certs (NMConnection *connection); ++gboolean utils_fill_connection_certs (NMConnection *connection, GError **error); + + void utils_clear_filled_connection_certs (NMConnection *connection); + --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp337960_dxteam_notification_icon_names_part2-images.diff +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp337960_dxteam_notification_icon_names_part2-images.diff @@ -0,0 +1,1860 @@ +=== modified file 'icons/scalable/Makefile.am' +--- old/icons/scalable/Makefile.am 2009-02-17 16:32:22 +0000 ++++ new/icons/scalable/Makefile.am 2009-03-04 22:05:26 +0000 +@@ -1,7 +1,10 @@ + icondir=${datadir}/icons/hicolor/scalable/apps + icon_DATA = \ + nm-device-wired.svg \ +- nm-no-connection.svg ++ nm-no-connection.svg \ ++ notification-gsm-high.svg \ ++ notification-network-ethernet-connected.svg \ ++ notification-network-wireless-full.svg + + EXTRA_DIST = $(icon_DATA) + + +=== added file 'icons/scalable/notification-gsm-high.svg' +--- old/icons/scalable/notification-gsm-high.svg 1970-01-01 00:00:00 +0000 ++++ new/icons/scalable/notification-gsm-high.svg 2009-03-04 22:02:18 +0000 +@@ -0,0 +1,771 @@ ++ ++ ++image/svg+xml ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file + +=== added file 'icons/scalable/notification-network-ethernet-connected.svg' +--- old/icons/scalable/notification-network-ethernet-connected.svg 1970-01-01 00:00:00 +0000 ++++ new/icons/scalable/notification-network-ethernet-connected.svg 2009-03-04 22:01:48 +0000 +@@ -0,0 +1,1015 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +=== added file 'icons/scalable/notification-network-wireless-full.svg' +--- old/icons/scalable/notification-network-wireless-full.svg 1970-01-01 00:00:00 +0000 ++++ new/icons/scalable/notification-network-wireless-full.svg 2009-03-04 21:54:28 +0000 +@@ -0,0 +1,41 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file + --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp330571_dxteam_wired_connect_text.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp330571_dxteam_wired_connect_text.patch @@ -0,0 +1,32 @@ +=== modified file 'src/applet-device-wired.c' +--- a/src/applet-device-wired.c 2009-01-12 17:39:22 +0000 ++++ b/src/applet-device-wired.c 2009-02-17 15:29:30 +0000 +@@ -253,23 +253,19 @@ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; +- char *str = NULL; ++ const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { +- const char *id; + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- id = s_con ? nm_setting_connection_get_id (s_con) : NULL; +- if (id) +- str = g_strdup_printf (_("You are now connected to '%s'."), id); ++ str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, +- _("Connection Established"), +- str ? str : _("You are now connected to the wired network."), ++ str ? str : _("Wired network"), ++ _("Connection Established"), + "nm-device-wired", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); +- g_free (str); + } + } + + --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp341684_device_sensitive_disconnect_notify.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp341684_device_sensitive_disconnect_notify.patch @@ -0,0 +1,281 @@ +=== modified file 'src/applet-device-wifi.c' +--- + src/applet-device-wifi.c | 4 + + src/applet.c | 138 +++++++++++++++++++++++++++++++++++++++++++++-- + src/applet.h | 3 - + 3 files changed, 139 insertions(+), 6 deletions(-) + +Index: network-manager-applet-0.7.1~rc4/src/applet-device-wifi.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/applet-device-wifi.c ++++ network-manager-applet-0.7.1~rc4/src/applet-device-wifi.c +@@ -1164,18 +1164,20 @@ + queue_avail_access_point_notification (device); + + if (new_state != NM_DEVICE_STATE_ACTIVATED) + return; + + if (new) { + const GByteArray *ssid = nm_access_point_get_ssid (new); + +- if (ssid) ++ if (ssid) { + esc_ssid = nm_utils_ssid_to_utf8 ((const char *) ssid->data, ssid->len); ++ g_object_set_data_full (G_OBJECT(device), "canonical-last-essid", g_strdup (esc_ssid), (GDestroyNotify) g_free); ++ } + + /* Save this BSSID to seen-bssids list */ + gconf_connection = applet_get_exported_connection_for_device (device, applet); + if (gconf_connection && add_seen_bssid (gconf_connection, new)) + nma_gconf_connection_save (gconf_connection); + } + + applet_do_notify_with_pref (applet, +Index: network-manager-applet-0.7.1~rc4/src/applet.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/applet.c ++++ network-manager-applet-0.7.1~rc4/src/applet.c +@@ -36,16 +36,17 @@ + #include + #include + #include + #include "wireless-helper.h" + #include + #include + + #include ++#include + #include + #include + #include + #include + #include + #include + #include + #include +@@ -69,16 +70,29 @@ + #include "applet-dbus-manager.h" + #include "utils.h" + #include "gconf-helpers.h" + + #define NOTIFY_CAPS_ACTIONS_KEY "actions" + + G_DEFINE_TYPE(NMApplet, nma, G_TYPE_OBJECT) + ++struct _OfflineNotificationContextInfo { ++ NMState state; ++ NMDeviceState device_state; ++ NMDeviceStateReason device_state_reason; ++ NMDeviceType device_type; ++ gchar* title; ++ const gchar* text; ++ const gchar* icon; ++ NotifyUrgency urgency; ++}; ++ ++typedef struct _OfflineNotificationContextInfo OfflineNotificationContextInfo; ++ + static NMActiveConnection * + applet_get_best_activating_connection (NMApplet *applet, NMDevice **device) + { + NMActiveConnection *best = NULL; + NMDevice *best_dev = NULL; + const GPtrArray *connections; + int i; + +@@ -1634,27 +1648,130 @@ + if (!gconf_connection || !nm_exported_connection_get_connection (NM_EXPORTED_CONNECTION (gconf_connection))) + continue; + + return gconf_connection; + } + return NULL; + } + ++static gboolean ++select_merged_notification_text (OfflineNotificationContextInfo *info) ++{ ++ info->urgency = NOTIFY_URGENCY_LOW; ++ /* only do something if this is about full offline state */ ++ if(info->state != NM_STATE_UNKNOWN || info->device_state != NM_STATE_UNKNOWN) { ++ info->urgency = NOTIFY_URGENCY_NORMAL; ++ if (!info->title) ++ info->title = g_strdup (_("Network")); ++ if (info->state == NM_STATE_DISCONNECTED || info->state == NM_STATE_ASLEEP) { ++ info->urgency = NOTIFY_URGENCY_CRITICAL; ++ info->text = _("Disconnected - you are now offline"); ++ } else ++ info->text = _("Disconnected"); ++ ++ switch (info->device_type) { ++ case NM_DEVICE_TYPE_ETHERNET: ++ info->icon = "notification-network-ethernet-disconnected"; ++ break; ++ case NM_DEVICE_TYPE_WIFI: ++ info->icon = "notification-network-wireless-disconnected"; ++ break; ++ case NM_DEVICE_TYPE_GSM: ++ info->icon = "notification-gsm-disconnected"; ++ break; ++ default: ++ info->icon = "nm-no-connection"; ++ break; ++ } ++ g_debug("going for offline with icon: %s", info->icon); ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++static gboolean ++foo_online_offline_deferred_notify (gpointer user_data) ++{ ++ NMApplet *applet = NM_APPLET (user_data); ++ OfflineNotificationContextInfo *info = applet->notification_queue_data; ++ if(select_merged_notification_text (info)) ++ applet_do_notify (applet, info->urgency, info->title, info->text, info->icon, NULL, NULL, NULL, applet); ++ else ++ g_debug("no notification because merged found that we have nothing to say (e.g. not offline)"); ++ if (info->title) ++ g_free (info->title); ++ info->title = NULL; ++ g_free (applet->notification_queue_data); ++ applet->notification_queue_data = NULL; ++ applet->deferred_id = 0; ++ return FALSE; ++} ++ ++ + static void + applet_common_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) + { + NMConnection *connection; + NMActiveConnection *active = NULL; ++ g_debug("applet_common_device_state_changed"); + + switch (new_state) { ++ case NM_DEVICE_STATE_FAILED: ++ case NM_DEVICE_STATE_DISCONNECTED: ++ case NM_DEVICE_STATE_UNMANAGED: ++ case NM_DEVICE_STATE_UNAVAILABLE: ++ { ++ if (old_state != NM_DEVICE_STATE_FAILED && ++ old_state != NM_DEVICE_STATE_UNKNOWN && ++ old_state != NM_DEVICE_STATE_DISCONNECTED && ++ old_state != NM_DEVICE_STATE_UNMANAGED && ++ old_state != NM_DEVICE_STATE_UNAVAILABLE) { ++ OfflineNotificationContextInfo *info = applet->notification_queue_data; ++ if (!info) { ++ info = g_new0(OfflineNotificationContextInfo, 1); ++ applet->notification_queue_data = info; ++ } ++ ++ info->device_state = new_state; ++ info->device_state_reason = reason; ++ if (info->title) { ++ g_free(info->title); ++ info->title = NULL; ++ } ++ if (NM_IS_DEVICE_WIFI (device)) { ++ info->device_type = NM_DEVICE_TYPE_WIFI; ++ info->title = g_strdup(g_object_get_data (G_OBJECT(device), "canonical-last-essid")); ++ if (!info->title) ++ info->title = g_strdup (_("Wireless network")); ++ } else if (NM_IS_DEVICE_ETHERNET (device)) { ++ info->device_type = NM_DEVICE_TYPE_ETHERNET; ++ info->title = g_strdup(_("Wired network")); ++ } else if (NM_IS_GSM_DEVICE (device)) { ++ info->device_type = NM_DEVICE_TYPE_GSM; ++ info->title = g_strdup (_("GSM network")); ++ } else { ++ info->device_type = NM_DEVICE_TYPE_UNKNOWN; ++ info->title = g_strdup (_("Network")); ++ } ++ ++ if (applet->deferred_id) ++ g_source_remove (applet->deferred_id); ++ applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); ++ ++ clear_animation_timeout (applet); ++ } else { ++ g_debug ("old state indicates that this was not a disconnect %d", old_state); ++ } ++ break; ++ } + case NM_DEVICE_STATE_PREPARE: + case NM_DEVICE_STATE_CONFIG: + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_IP_CONFIG: + start_animation_timeout (applet); + break; + case NM_DEVICE_STATE_ACTIVATED: + /* If the device activation was successful, update the corresponding +@@ -1712,23 +1829,36 @@ + applet); + } + + static void + foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_data) + { + NMApplet *applet = NM_APPLET (user_data); + ++ g_debug("foo_client_state_changed_cb"); + switch (nm_client_get_state (client)) { + case NM_STATE_DISCONNECTED: +- applet_do_notify_with_pref (applet, _("Disconnected"), +- _("The network connection has been disconnected."), +- "nm-no-connection", +- PREF_DISABLE_DISCONNECTED_NOTIFICATIONS); ++ case NM_STATE_ASLEEP: ++ { ++ OfflineNotificationContextInfo *info = applet->notification_queue_data; ++ if (!info) { ++ info = g_new0(OfflineNotificationContextInfo, 1); ++ applet->notification_queue_data = info; ++ } ++ ++ info->state = nm_client_get_state (client); ++ select_merged_notification_text (info); ++ ++ if (applet->deferred_id) ++ g_source_remove (applet->deferred_id); ++ applet->deferred_id = g_timeout_add (1000, foo_online_offline_deferred_notify, applet); ++ + /* Fall through */ ++ } + default: + break; + } + + applet_schedule_update_icon (applet); + } + + static void +Index: network-manager-applet-0.7.1~rc4/src/applet.h +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/applet.h ++++ network-manager-applet-0.7.1~rc4/src/applet.h +@@ -151,17 +151,18 @@ + GtkWidget * wifi_enabled_item; + guint wifi_enabled_toggled_id; + GtkWidget * info_menu_item; + GtkWidget * connections_menu_item; + + GladeXML * info_dialog_xml; + NotifyNotification* notification; + gboolean notify_with_actions; +- ++ gpointer notification_queue_data; ++ guint deferred_id; + + #ifdef WITH_MBCA + GSList *mbca_assistants; /* list of UdiAssistant */ + GModule *mbca_module; + void (*mbca_assistant_abort_func) (MBCAAssistant*); + void (*mbca_assistant_present_func) (MBCAAssistant*); + MBCAAssistant* (*mbca_assistant_new_func) (); + gint (*mbca_assistant_run_for_device_func) (MBCAAssistant*, --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp358526_generic_disconnected_notification_icon.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp358526_generic_disconnected_notification_icon.patch @@ -0,0 +1,27 @@ +--- + src/applet.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: network-manager-applet-0.7.1~rc4.1/src/applet.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.1.orig/src/applet.c ++++ network-manager-applet-0.7.1~rc4.1/src/applet.c +@@ -1674,17 +1674,17 @@ + break; + case NM_DEVICE_TYPE_WIFI: + info->icon = "notification-network-wireless-disconnected"; + break; + case NM_DEVICE_TYPE_GSM: + info->icon = "notification-gsm-disconnected"; + break; + default: +- info->icon = "nm-no-connection"; ++ info->icon = "notification-network-disconnected"; + break; + } + g_debug("going for offline with icon: %s", info->icon); + return TRUE; + } + return FALSE; + } + --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/add_libmbca_support.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/add_libmbca_support.patch @@ -0,0 +1,932 @@ +--- + configure.ac | 10 + + src/applet-device-gsm.c | 233 ++++++++++++++++++++++++++++- + src/applet.c | 51 ++++++ + src/applet.h | 32 +++ + src/connection-editor/nm-connection-list.c | 200 ++++++++++++++++++++++++ + src/connection-editor/nm-connection-list.h | 14 + + 6 files changed, 538 insertions(+), 2 deletions(-) + +Index: network-manager-applet-0.7.1~rc4/src/applet-device-gsm.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/applet-device-gsm.c ++++ network-manager-applet-0.7.1~rc4/src/applet-device-gsm.c +@@ -35,42 +35,238 @@ + #include + #include + #include + + #include "applet.h" + #include "applet-device-gsm.h" + #include "utils.h" + ++#ifdef WITH_MBCA ++#include ++#include ++#include ++#include ++#endif ++ + typedef struct { + NMApplet *applet; + NMDevice *device; + NMConnection *connection; + } GSMMenuItemInfo; + + static void + gsm_menu_item_info_destroy (gpointer data) + { + g_slice_free (GSMMenuItemInfo, data); + } + ++#ifdef WITH_MBCA ++static void ++assistant_state_changed_cb (MBCAAssistant* assistant, ++ MBCAAssistantState state, ++ gpointer data) ++{ ++ NMApplet *applet = data; ++ GSList* iter; ++ ++ NMAGConfConnection *exported; ++ ++ NMConnection *connection; ++ NMSettingGsm *s_gsm; ++ NMSettingSerial *s_serial; ++ NMSettingPPP *s_ppp; ++ NMSettingConnection *s_con; ++ ++ NMSettingIP4Config* ipv4conf; ++ gboolean ignore_auto_dns = FALSE; ++ GArray *dns_servers = FALSE; ++ const char *method; ++ ++ MBCAConfiguration* conf; ++ ++ if (!applet_open_mbca (applet)) ++ g_return_if_reached (); /* this cb should not be called without ++ * libmbca */ ++ ++ switch (state) ++ { ++ case MBCA_STATE_READY: ++ case MBCA_STATE_RUNNING: ++ { ++ break; ++ } ++ case MBCA_STATE_DONE: ++ { ++ conf = applet->mbca_assistant_get_configuration_func (assistant); ++ connection = nm_connection_new (); ++ ++ s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); ++ nm_connection_add_setting (connection, NM_SETTING (s_con)); ++ ++ ipv4conf = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ()); ++ nm_connection_add_setting (connection, NM_SETTING (ipv4conf)); ++ ++ g_object_set (G_OBJECT(s_con), ++ "id", conf->name, ++ "type", NM_SETTING_GSM_SETTING_NAME, ++ "uuid", nm_utils_uuid_generate (), ++ "autoconnect", FALSE, ++ NULL); ++ ++ /* Serial setting */ ++ s_serial = (NMSettingSerial *) nm_setting_serial_new (); ++ g_object_set (G_OBJECT(s_serial), ++ "baud", 115200, ++ "bits", 8, ++ "parity", "n", ++ "stopbits", 1, ++ NULL); ++ nm_connection_add_setting (connection, NM_SETTING (s_serial)); ++ ++ method = NM_SETTING_IP4_CONFIG_METHOD_AUTO; ++ ++ s_gsm = NM_SETTING_GSM (nm_setting_gsm_new ()); ++ ++ g_object_set (G_OBJECT(s_gsm), ++ "number", "*99#", ++ "apn", conf->provider->gsm.apn, ++ "username", conf->provider->username, ++ "password", conf->provider->password, ++ NULL); ++ ++ if (conf->provider->dns1) { ++ struct in_addr tmp_addr; ++ ignore_auto_dns = TRUE; ++ dns_servers = g_array_new (FALSE, FALSE, sizeof (guint)); ++ ++ inet_aton (conf->provider->dns1, &tmp_addr); ++ g_array_append_val (dns_servers, tmp_addr.s_addr); ++ ++ if (conf->provider->dns2) { ++ inet_aton (conf->provider->dns2, &tmp_addr); ++ g_array_append_val (dns_servers, tmp_addr.s_addr); ++ } ++ } ++ ++ /* TODO: gateway */ ++ ++ g_object_set (ipv4conf, ++ NM_SETTING_IP4_CONFIG_METHOD, method, ++ NM_SETTING_IP4_CONFIG_DNS, dns_servers, ++ NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, ignore_auto_dns, ++ NULL); ++ ++ nm_connection_add_setting (connection, NM_SETTING (s_gsm)); ++ ++ s_ppp = (NMSettingPPP *) nm_setting_ppp_new (); ++ nm_connection_add_setting (connection, NM_SETTING (s_ppp)); ++ ++ ++ applet->mbca_free_configuration_func (conf); ++ if (dns_servers) ++ g_array_free (dns_servers, TRUE); ++ ++ exported = nma_gconf_settings_add_connection (applet->gconf_settings, connection); ++ if (!exported) { ++ g_object_unref (connection); ++ g_return_if_reached (); ++ } ++ g_object_unref (connection); ++ ++ applet_do_notify (applet, NOTIFY_URGENCY_LOW, ++ _("New Configuration Created"), ++ _("You can activate the connection by clicking this icon.\n" ++ "\n" ++ "Use connection editor to add new and to change settings if necessary"), ++ "nm-device-wwan", NULL, NULL, NULL, NULL); ++ ++ /* FALLTHROUGH */ ++ } ++ case MBCA_STATE_ABORTED: ++ { ++ for (iter = applet->mbca_assistants; iter; iter = iter->next){ ++ if (((UdiAssistant*)(iter->data))->assistant == assistant) { ++ UdiAssistant* ua = iter->data; ++ applet->mbca_assistants = g_slist_remove_all (applet->mbca_assistants, ++ ua); ++ ++ g_object_unref (G_OBJECT (ua->assistant)); ++ g_free (ua->udi); ++ g_free (ua); ++ ++ } ++ } ++ break; ++ } ++ default: ++ { ++ g_return_if_reached (); ++ } ++ } ++} ++#endif ++ + #define DEFAULT_GSM_NAME _("Auto Mobile Broadband (GSM) connection") + + static NMConnection * + gsm_new_auto_connection (NMDevice *device, + NMApplet *applet, + gpointer user_data) + { + NMConnection *connection; + NMSettingGsm *s_gsm; + NMSettingSerial *s_serial; + NMSettingPPP *s_ppp; + NMSettingConnection *s_con; + char *uuid; + ++#ifdef WITH_MBCA ++ UdiAssistant* ua; ++ const gchar* udi; ++ GSList* iter; ++ ++ if (applet_open_mbca (applet)) ++ { ++ udi = nm_device_get_udi (device); ++ ++ for (iter = applet->mbca_assistants; iter; iter = iter->next) { ++ UdiAssistant* tmp = iter->data; ++ if (!strcmp (tmp->udi, udi)) ++ { ++ applet->mbca_assistant_present_func (tmp->assistant); ++ break; ++ } ++ } ++ if (!iter) ++ { ++ /* not found */ ++ ua = g_malloc (sizeof (UdiAssistant)); ++ ua->udi = g_strdup (udi); ++ ua->assistant = applet->mbca_assistant_new_func (); ++ g_signal_connect (G_OBJECT (ua->assistant), "state-changed", ++ G_CALLBACK (assistant_state_changed_cb), applet); ++ applet->mbca_assistants = g_slist_prepend (applet->mbca_assistants, ua); ++ applet->mbca_assistant_run_for_device_func (ua->assistant, ++ MBCA_DEVICE_PSEUDO, ++ NULL, NULL); ++ } ++ ++ nm_warning ("There's a new GSM modem being configured and no " ++ "configuration is yet available. You can safely ignore the " ++ "next warninig, if any, about missing default configuration." ++ ); ++ return NULL; ++ } ++ else ++ { ++ /* continue to default code */ ++ } ++#endif ++ + connection = nm_connection_new (); + + s_gsm = NM_SETTING_GSM (nm_setting_gsm_new ()); + /* This should be a sensible default as it's seems to be quite standard */ + g_object_set (s_gsm, NM_SETTING_GSM_NUMBER, "*99#", NULL); + nm_connection_add_setting (connection, NM_SETTING (s_gsm)); + + /* Serial setting */ +@@ -150,19 +346,25 @@ + } + + static void + add_default_connection_item (NMDevice *device, + GtkWidget *menu, + NMApplet *applet) + { + GSMMenuItemInfo *info; +- GtkWidget *item; ++ GtkWidget *item = NULL; ++ ++#ifdef WITH_MBCA ++ if (applet_open_mbca (applet)) ++ item = gtk_check_menu_item_new_with_label (_("Configure...")); ++#endif ++ if (!item) ++ item = gtk_check_menu_item_new_with_label (DEFAULT_GSM_NAME); + +- item = gtk_check_menu_item_new_with_label (DEFAULT_GSM_NAME); + gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item), TRUE); + + info = g_slice_new0 (GSMMenuItemInfo); + info->applet = applet; + info->device = g_object_ref (G_OBJECT (device)); + + g_signal_connect_data (item, "activate", + G_CALLBACK (gsm_menu_item_activate), +@@ -303,16 +505,39 @@ + _("Connection Established"), + str ? str : _("You are now connected to the GSM network."), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); + g_free (str); + } + } + ++#ifdef WITH_MBCA ++typedef struct { ++ NMDevice* device; ++ NMApplet* applet; ++} NotifyConfigureNewDeviceCbData; ++ ++static void ++gsm_device_added (NMDevice *device, NMApplet *applet) ++{ ++ GSList *connections, *all; ++ ++ if (!applet_open_mbca (applet)) ++ return; ++ ++ all = applet_get_all_connections (applet); ++ connections = utils_filter_connections_for_device (device, all); ++ g_slist_free (all); ++ ++ if (g_slist_length (connections) == 0) ++ gsm_new_auto_connection (device, applet, NULL); ++} ++#endif ++ + static GdkPixbuf * + gsm_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, + NMApplet *applet) + { + NMSettingConnection *s_con; +@@ -649,11 +874,15 @@ + return NULL; + + dclass->new_auto_connection = gsm_new_auto_connection; + dclass->add_menu_item = gsm_add_menu_item; + dclass->device_state_changed = gsm_device_state_changed; + dclass->get_icon = gsm_get_icon; + dclass->get_secrets = gsm_get_secrets; + ++#ifdef WITH_MBCA ++ dclass->device_added = gsm_device_added; ++#endif ++ + return dclass; + } + +Index: network-manager-applet-0.7.1~rc4/src/applet.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/applet.c ++++ network-manager-applet-0.7.1~rc4/src/applet.c +@@ -1022,16 +1022,62 @@ + item = gtk_menu_item_new_with_label (_("device not managed")); + + if (item) + gtk_widget_set_sensitive (item, FALSE); + + return item; + } + ++#ifdef WITH_MBCA ++gboolean ++applet_open_mbca (NMApplet *applet) ++{ ++ if (applet->mbca_module) ++ return TRUE; ++ ++ applet->mbca_module = g_module_open ("libmbca.so.0", G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); ++ if (!applet->mbca_module) ++ return FALSE; ++ ++ if (!g_module_symbol (applet->mbca_module, ++ "mbca_assistant_abort", ++ ((gpointer)(&applet->mbca_assistant_abort_func)))) ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (applet->mbca_module, ++ "mbca_assistant_present", ++ (gpointer)(&applet->mbca_assistant_present_func))) ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (applet->mbca_module, ++ "mbca_assistant_new", ++ (gpointer)(&applet->mbca_assistant_new_func))) ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (applet->mbca_module, ++ "mbca_assistant_run_for_device", ++ (gpointer)(&applet->mbca_assistant_run_for_device_func))) ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (applet->mbca_module, ++ "mbca_assistant_get_configuration", ++ (gpointer)(&applet->mbca_assistant_get_configuration_func))) ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (applet->mbca_module, ++ "mbca_free_configuration", ++ (gpointer)(&applet->mbca_free_configuration_func))) ++ g_warn_if_reached (); ++ ++ return TRUE; ++} ++#endif ++ ++ + static guint32 + nma_menu_add_devices (GtkWidget *menu, NMApplet *applet) + { + const GPtrArray *temp = NULL; + GSList *devices = NULL, *iter = NULL; + gint n_wifi_devices = 0; + gint n_usable_wifi_devices = 0; + gint n_wired_devices = 0; +@@ -2626,16 +2672,21 @@ + + static void nma_init (NMApplet *applet) + { + applet->animation_id = 0; + applet->animation_step = 0; + applet->icon_theme = NULL; + applet->notification = NULL; + applet->size = -1; ++ ++#ifdef WITH_MBCA ++ applet->mbca_assistants = NULL; ++ applet->mbca_module = NULL; ++#endif + } + + enum { + PROP_0, + PROP_LOOP, + LAST_PROP + }; + +Index: network-manager-applet-0.7.1~rc4/src/applet.h +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/applet.h ++++ network-manager-applet-0.7.1~rc4/src/applet.h +@@ -42,26 +42,38 @@ + #include + #include + #include + #include + #include + #include + #include + ++#ifdef WITH_MBCA ++#include ++#endif ++ + #include "applet-dbus-manager.h" + #include "nma-gconf-settings.h" + + #define NM_TYPE_APPLET (nma_get_type()) + #define NM_APPLET(object) (G_TYPE_CHECK_INSTANCE_CAST((object), NM_TYPE_APPLET, NMApplet)) + #define NM_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_APPLET, NMAppletClass)) + #define NM_IS_APPLET(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), NM_TYPE_APPLET)) + #define NM_IS_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_APPLET)) + #define NM_APPLET_GET_CLASS(object)(G_TYPE_INSTANCE_GET_CLASS((object), NM_TYPE_APPLET, NMAppletClass)) + ++#ifdef WITH_MBCA ++typedef struct ++{ ++ char* udi; ++ MBCAAssistant* assistant; ++} UdiAssistant; ++#endif ++ + typedef struct + { + GObjectClass parent_class; + } NMAppletClass; + + #define APPLET_PREFS_PATH "/apps/nm-applet" + #define PREF_DISABLE_CONNECTED_NOTIFICATIONS APPLET_PREFS_PATH "/disable-connected-notifications" + #define PREF_DISABLE_DISCONNECTED_NOTIFICATIONS APPLET_PREFS_PATH "/disable-disconnected-notifications" +@@ -139,16 +151,31 @@ + GtkWidget * wifi_enabled_item; + guint wifi_enabled_toggled_id; + GtkWidget * info_menu_item; + GtkWidget * connections_menu_item; + + GladeXML * info_dialog_xml; + NotifyNotification* notification; + gboolean notify_with_actions; ++ ++ ++#ifdef WITH_MBCA ++ GSList *mbca_assistants; /* list of UdiAssistant */ ++ GModule *mbca_module; ++ void (*mbca_assistant_abort_func) (MBCAAssistant*); ++ void (*mbca_assistant_present_func) (MBCAAssistant*); ++ MBCAAssistant* (*mbca_assistant_new_func) (); ++ gint (*mbca_assistant_run_for_device_func) (MBCAAssistant*, ++ MBCADeviceType, ++ const gchar*, ++ const gchar*); ++ MBCAConfiguration* (*mbca_assistant_get_configuration_func) (MBCAAssistant*); ++ void (*mbca_free_configuration_func) (MBCAConfiguration*); ++#endif + } NMApplet; + + + struct NMADeviceClass { + NMConnection * (*new_auto_connection) (NMDevice *device, + NMApplet *applet, + gpointer user_data); + +@@ -221,11 +248,16 @@ + void applet_do_notify_with_pref (NMApplet *applet, + const char *summary, + const char *message, + const char *icon, + const char *pref); + + NMConnection * applet_find_active_connection_for_device (NMDevice *device, + NMApplet *applet, ++ + NMActiveConnection **out_active); + ++#ifdef WITH_MBCA ++gboolean applet_open_mbca (NMApplet *applet); ++#endif ++ + #endif +Index: network-manager-applet-0.7.1~rc4/src/connection-editor/nm-connection-list.c +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/connection-editor/nm-connection-list.c ++++ network-manager-applet-0.7.1~rc4/src/connection-editor/nm-connection-list.c +@@ -46,16 +46,23 @@ + #include + #include + #include + #include + #include + #include + #include + ++#ifdef WITH_MBCA ++#include ++#include ++#include ++#include ++#endif ++ + #include "nm-connection-editor.h" + #include "nm-connection-list.h" + #include "gconf-helpers.h" + #include "mobile-wizard.h" + #include "utils.h" + #include "vpn-helpers.h" + #include "polkit-helpers.h" + +@@ -103,16 +110,52 @@ + g_free (message); + + gtk_widget_show_all (dialog); + gtk_window_present (GTK_WINDOW (dialog)); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + } + ++#ifdef WITH_MBCA ++static gboolean ++open_mbca (NMConnectionList *list) ++{ ++ if (list->mbca_module) ++ return TRUE; ++ ++ list->mbca_module = g_module_open ("libmbca.so.0", G_MODULE_BIND_LAZY | ++ G_MODULE_BIND_LOCAL); ++ if (!list->mbca_module) ++ return FALSE; ++ ++ if (!g_module_symbol (list->mbca_module, ++ "mbca_assistant_new", ++ (gpointer)(&list->mbca_assistant_new_func))); ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (list->mbca_module, ++ "mbca_assistant_run_for_device", ++ (gpointer)(&list->mbca_assistant_run_for_device_func))); ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (list->mbca_module, ++ "mbca_assistant_get_configuration", ++ (gpointer)(&list->mbca_assistant_get_configuration_func))); ++ g_warn_if_reached (); ++ ++ if (!g_module_symbol (list->mbca_module, ++ "mbca_free_configuration", ++ (gpointer)(&list->mbca_free_configuration_func))); ++ g_warn_if_reached (); ++ ++ return TRUE; ++} ++#endif ++ + static NMExportedConnection * + get_active_connection (GtkTreeView *treeview) + { + GtkTreeSelection *selection; + GList *selected_rows; + GtkTreeModel *model = NULL; + GtkTreeIter iter; + NMExportedConnection *exported = NULL; +@@ -814,25 +857,155 @@ + NM_SETTING_SERIAL_BITS, 8, + NM_SETTING_SERIAL_PARITY, 'n', + NM_SETTING_SERIAL_STOPBITS, 1, + NULL); + + nm_connection_add_setting (connection, NM_SETTING (s_serial)); + } + ++#ifdef WITH_MBCA ++static void ++mbca_assistant_state_changed_cb (MBCAAssistant* assistant, ++ MBCAAssistantState state, ++ gpointer user_data) ++{ ++ NMConnection *connection = NULL; ++ NMSettingConnection *s_con; ++ NMSetting *type_setting = NULL; ++ MBCAConfiguration* conf; ++ ++ NMConnectionList *list = user_data; ++ ++ NMSettingIP4Config* ipv4conf; ++ gboolean ignore_auto_dns = FALSE; ++ GArray *dns_servers = FALSE; ++ const char *method; ++ ++ switch (state) { ++ case MBCA_STATE_READY: ++ case MBCA_STATE_RUNNING: ++ return; ++ case MBCA_STATE_DONE: ++ ++ /* this function should never get called without a prior usage of ++ * libmbca in create_new_connection_for_type ++ */ ++ g_return_if_fail (open_mbca (list)); ++ ++ connection = nm_connection_new (); ++ nm_connection_set_scope (connection, NM_CONNECTION_SCOPE_USER); ++ ++ s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); ++ nm_connection_add_setting (connection, NM_SETTING (s_con)); ++ ++ ipv4conf = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ()); ++ nm_connection_add_setting (connection, NM_SETTING (ipv4conf)); ++ ++ conf = list->mbca_assistant_get_configuration_func (assistant); ++ ++ g_object_set (G_OBJECT (s_con), ++ "uuid", nm_utils_uuid_generate (), ++ "id", conf->name, ++ "autoconnect", FALSE, ++ NULL); ++ ++ add_default_serial_setting (connection); ++ ++ method = NM_SETTING_IP4_CONFIG_METHOD_AUTO; ++ ++ if (conf->provider->type == MBCA_NETWORK_GSM) { ++ NMSettingGsm *s_gsm; ++ ++ g_object_set (G_OBJECT(s_con), ++ "type", NM_SETTING_GSM_SETTING_NAME, ++ NULL); ++ ++ type_setting = nm_setting_gsm_new (); ++ s_gsm = NM_SETTING_GSM (type_setting); ++ g_object_set(G_OBJECT(s_gsm), ++ "number", "*99#" /* De-facto standard for GSM */, ++ "apn", conf->provider->gsm.apn, ++ "username", conf->provider->username, ++ "password", conf->provider->password, ++ NULL); ++ ++ if (conf->provider->dns1) { ++ struct in_addr tmp_addr; ++ ignore_auto_dns = TRUE; ++ dns_servers = g_array_new (FALSE, FALSE, sizeof (guint)); ++ ++ inet_aton (conf->provider->dns1, &tmp_addr); ++ g_array_append_val (dns_servers, tmp_addr.s_addr); ++ ++ if (conf->provider->dns2) { ++ inet_aton (conf->provider->dns2, &tmp_addr); ++ g_array_append_val (dns_servers, tmp_addr.s_addr); ++ } ++ } ++ ++ /* TODO: gateway */ ++ ++ } else if (conf->provider->type == MBCA_NETWORK_CDMA) { ++ g_object_set (G_OBJECT (s_con), ++ "type", NM_SETTING_CDMA_SETTING_NAME, ++ NULL); ++ ++ type_setting = nm_setting_cdma_new (); ++ g_object_set (G_OBJECT (type_setting), ++ "number", "#777" /* De-facto standard for CDMA */, ++ "username", conf->provider->username, ++ "password", conf->provider->password, ++ NULL); ++ } ++ nm_connection_add_setting (connection, nm_setting_ppp_new ()); ++ ++ g_object_set (ipv4conf, ++ NM_SETTING_IP4_CONFIG_METHOD, method, ++ NM_SETTING_IP4_CONFIG_DNS, dns_servers, ++ NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, ignore_auto_dns, ++ NULL); ++ ++ if (type_setting) { ++ nm_connection_add_setting (connection, type_setting); ++ } else { ++ g_object_unref (connection); ++ connection = NULL; ++ } ++ ++ add_connection (list, NULL, connection, NULL, NULL); ++ g_hash_table_remove (list->editors, connection); ++ ++ list->mbca_free_configuration_func (conf); ++ if (dns_servers) ++ g_array_free (dns_servers, TRUE); ++ /* FALLTHROUGH */ ++ ++ case MBCA_STATE_ABORTED: ++ g_object_unref (assistant); ++ break; ++ default: ++ g_warn_if_reached (); ++ } ++} ++#endif ++ + static NMConnection * + create_new_connection_for_type (NMConnectionList *list, const char *connection_type) + { + GType ctype; + NMConnection *connection = NULL; + NMSettingConnection *s_con; + NMSetting *type_setting = NULL; + char *id, *uuid; + GType mb_type; ++#ifdef WITH_MBCA ++ MBCAAssistant *assistant = NULL; ++ gboolean use_mbca = FALSE; ++#endif + + ctype = nm_connection_lookup_setting_type (connection_type); + + connection = nm_connection_new (); + nm_connection_set_scope (connection, NM_CONNECTION_SCOPE_USER); + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + uuid = nm_utils_uuid_generate (); + g_object_set (s_con, NM_SETTING_CONNECTION_UUID, uuid, NULL); +@@ -859,16 +1032,20 @@ + NM_SETTING_CONNECTION_AUTOCONNECT, TRUE, + NULL); + g_free (id); + + type_setting = nm_setting_wireless_new (); + s_wireless = NM_SETTING_WIRELESS (type_setting); + g_object_set (s_wireless, NM_SETTING_WIRELESS_MODE, "infrastructure", NULL); + } else if ((ctype == NM_TYPE_SETTING_GSM) || (ctype == NM_TYPE_SETTING_CDMA)) { ++#ifdef WITH_MBCA ++ use_mbca = open_mbca (list); ++ if (!use_mbca) { ++#endif + /* Since GSM is a placeholder for both GSM and CDMA; ask the user which + * one they really want. + */ + mb_type = mobile_wizard_ask_connection_type (); + if (mb_type == NM_TYPE_SETTING_GSM) { + NMSettingGsm *s_gsm; + + id = get_next_available_name (list, _("GSM connection %d")); +@@ -905,16 +1082,30 @@ + + /* De-facto standard for CDMA */ + g_object_set (s_cdma, NM_SETTING_CDMA_NUMBER, "#777", NULL); + + nm_connection_add_setting (connection, nm_setting_ppp_new ()); + } else { + /* user canceled; do nothing */ + } ++#ifdef WITH_MBCA ++ } else { /* use_mbca */ ++ ++ assistant = list->mbca_assistant_new_func (); ++ g_signal_connect (G_OBJECT (assistant), "state-changed", ++ G_CALLBACK (mbca_assistant_state_changed_cb), list); ++ list->mbca_assistant_run_for_device_func (assistant, ++ MBCA_DEVICE_PSEUDO, ++ NULL, NULL); ++ ++ mb_type = NM_TYPE_SETTING_GSM; /* get rid of compiler warning about ++ * unused variable */ ++ } ++#endif /* WITH_MBCA */ + } else if (ctype == NM_TYPE_SETTING_VPN) { + char *service = NULL; + + service = vpn_ask_connection_type (); + if (service) { + NMSettingVPN *s_vpn; + + id = get_next_available_name (list, _("VPN connection %d")); +@@ -1415,16 +1606,20 @@ + + static void + nm_connection_list_init (NMConnectionList *list) + { + list->treeviews = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + + list->system_action = polkit_action_new (); + polkit_action_set_action_id (list->system_action, "org.freedesktop.network-manager-settings.system.modify"); ++ ++#ifdef WITH_MBCA ++ list->mbca_module = NULL; ++#endif + } + + static void + dispose (GObject *object) + { + NMConnectionList *list = NM_CONNECTION_LIST (object); + + if (list->dialog) +@@ -1456,16 +1651,21 @@ + g_hash_table_destroy (list->treeviews); + + if (list->gconf_settings) + g_object_unref (list->gconf_settings); + + if (list->system_settings) + g_object_unref (list->system_settings); + ++#if WITH_MBCA ++ if (list->mbca_module) ++ g_module_close (list->mbca_module); ++#endif ++ + G_OBJECT_CLASS (nm_connection_list_parent_class)->dispose (object); + } + + static void + nm_connection_list_class_init (NMConnectionListClass *klass) + { + GObjectClass *object_class = G_OBJECT_CLASS (klass); + +Index: network-manager-applet-0.7.1~rc4/src/connection-editor/nm-connection-list.h +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/src/connection-editor/nm-connection-list.h ++++ network-manager-applet-0.7.1~rc4/src/connection-editor/nm-connection-list.h +@@ -31,16 +31,20 @@ + #include + #ifdef NO_POLKIT_GNOME + #include "polkit-gnome.h" + #else + #include + #endif + #include "nma-gconf-settings.h" + ++#ifdef WITH_MBCA ++#include ++#endif ++ + #define NM_TYPE_CONNECTION_LIST (nm_connection_list_get_type ()) + #define NM_IS_CONNECTION_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_CONNECTION_LIST)) + #define NM_CONNECTION_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_CONNECTION_LIST, NMConnectionList)) + + typedef struct { + GObject parent; + + /* private data */ +@@ -57,16 +61,26 @@ + PolKitAction *system_action; + + GdkPixbuf *wired_icon; + GdkPixbuf *wireless_icon; + GdkPixbuf *wwan_icon; + GdkPixbuf *vpn_icon; + GdkPixbuf *unknown_icon; + GtkIconTheme *icon_theme; ++#ifdef WITH_MBCA ++ GModule *mbca_module; ++ MBCAAssistant* (*mbca_assistant_new_func) (); ++ gint (*mbca_assistant_run_for_device_func) (MBCAAssistant*, ++ MBCADeviceType, ++ const gchar*, ++ const gchar*); ++ MBCAConfiguration* (*mbca_assistant_get_configuration_func) (MBCAAssistant*); ++ void (*mbca_free_configuration_func) (MBCAConfiguration*); ++#endif + } NMConnectionList; + + typedef struct { + GObjectClass parent_class; + + /* Signals */ + void (*done) (NMConnectionList *list, gint result); + } NMConnectionListClass; +Index: network-manager-applet-0.7.1~rc4/configure.ac +=================================================================== +--- network-manager-applet-0.7.1~rc4.orig/configure.ac ++++ network-manager-applet-0.7.1~rc4/configure.ac +@@ -214,16 +214,26 @@ + unset has_option + unset SAVE_CFLAGS + done + unset option + else + AC_MSG_RESULT(no) + fi + ++AC_ARG_WITH(mbca, AC_HELP_STRING([--with-mbca], [use Mobile Broadband Configuration Assistant])) ++ ++if ! test -z "$with_mbca" ; then ++ CFLAGS="$CFLAGS -DWITH_MBCA" ++ PKG_CHECK_MODULES(MBCA, libmbca) ++ NMA_CFLAGS="$NMA_CFLAGS $MBCA_CFLAGS" ++ #NMA_LIBS="$NMA_LIBS $MBCA_LIBS" ++fi ++ ++ + AC_OUTPUT([ + Makefile + src/Makefile + src/marshallers/Makefile + src/utils/Makefile + src/gconf-helpers/Makefile + src/wireless-security/Makefile + src/polkit-helpers/Makefile --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp328572-dxteam-connect-text.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp328572-dxteam-connect-text.patch @@ -0,0 +1,54 @@ +=== modified file 'src/applet-device-wifi.c' +--- + src/applet-device-wifi.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +Index: network-manager-applet-0.7.1~rc3/src/applet-device-wifi.c +=================================================================== +--- network-manager-applet-0.7.1~rc3.orig/src/applet-device-wifi.c ++++ network-manager-applet-0.7.1~rc3/src/applet-device-wifi.c +@@ -1151,17 +1151,16 @@ + wireless_device_state_changed (NMDevice *device, + NMDeviceState new_state, + NMDeviceState old_state, + NMDeviceStateReason reason, + NMApplet *applet) + { + NMAGConfConnection *gconf_connection; + NMAccessPoint *new = NULL; +- char *msg; + char *esc_ssid = NULL; + + new = update_active_ap (device, new_state, applet); + + if (new_state == NM_DEVICE_STATE_DISCONNECTED) + queue_avail_access_point_notification (device); + + if (new_state != NM_DEVICE_STATE_ACTIVATED) +@@ -1174,22 +1173,21 @@ + esc_ssid = nm_utils_ssid_to_utf8 ((const char *) ssid->data, ssid->len); + + /* Save this BSSID to seen-bssids list */ + gconf_connection = applet_get_exported_connection_for_device (device, applet); + if (gconf_connection && add_seen_bssid (gconf_connection, new)) + nma_gconf_connection_save (gconf_connection); + } + +- msg = g_strdup_printf (_("You are now connected to the wireless network '%s'."), +- esc_ssid ? esc_ssid : _("(none)")); +- applet_do_notify_with_pref (applet, _("Connection Established"), +- msg, "nm-device-wireless", ++ applet_do_notify_with_pref (applet, ++ esc_ssid ? esc_ssid : _("(none)"), ++ _("Connection Established"), ++ "nm-device-wireless", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); +- g_free (msg); + g_free (esc_ssid); + } + + static GdkPixbuf * + wireless_get_icon (NMDevice *device, + NMDeviceState state, + NMConnection *connection, + char **tip, --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp330608_dxteam_gsm_connect_text.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp330608_dxteam_gsm_connect_text.patch @@ -0,0 +1,33 @@ +=== modified file 'src/applet-device-gsm.c' +--- a/src/applet-device-gsm.c 2009-02-17 16:32:22 +0000 ++++ b/src/applet-device-gsm.c 2009-02-17 16:36:47 +0000 +@@ -287,24 +287,19 @@ + if (new_state == NM_DEVICE_STATE_ACTIVATED) { + NMConnection *connection; + NMSettingConnection *s_con = NULL; +- char *str = NULL; ++ const char *str = NULL; + + connection = applet_find_active_connection_for_device (device, applet, NULL); + if (connection) { +- const char *id; +- + s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION)); +- id = s_con ? nm_setting_connection_get_id (s_con) : NULL; +- if (id) +- str = g_strdup_printf (_("You are now connected to '%s'."), id); ++ str = s_con ? nm_setting_connection_get_id (s_con) : NULL; + } + + applet_do_notify_with_pref (applet, +- _("Connection Established"), +- str ? str : _("You are now connected to the GSM network."), ++ str ? str : _("GSM network."), ++ _("Connection Established"), + "nm-device-wwan", + PREF_DISABLE_CONNECTED_NOTIFICATIONS); +- g_free (str); + } + } + + --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/14_lp123808_dont_start_applet_on_ltsp_client.patch @@ -0,0 +1,11 @@ +--- network-manager-applet-0.6.5/src/applet.c.orig 2007-10-02 20:53:36.000000000 +0200 ++++ network-manager-applet-0.6.5/src/applet.c 2007-10-02 20:54:46.000000000 +0200 +@@ -132,7 +132,7 @@ static void nma_init (NMApplet *applet) + applet->animation_step = 0; + glade_gnome_init (); + +- if (!nma_icons_init (applet)) ++ if ((!nma_icons_init (applet)) || (g_getenv("LTSP_CLIENT"))) + return; + + /* gtk_window_set_default_icon_from_file (ICONDIR"/NMApplet/wireless-applet.png", NULL); */ --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp289466_always_show_tray_icon.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp289466_always_show_tray_icon.patch @@ -0,0 +1,65 @@ +=== modified file 'src/applet.c' +--- + src/applet.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +Index: ubuntu.0.7/src/applet.c +=================================================================== +--- ubuntu.0.7.orig/src/applet.c ++++ ubuntu.0.7/src/applet.c +@@ -1719,16 +1719,18 @@ + G_CALLBACK (foo_device_added_cb), + applet); + g_signal_connect (applet->nm_client, "notify::manager-running", + G_CALLBACK (foo_manager_running_cb), + applet); + + if (nm_client_get_manager_running (applet->nm_client)) + g_idle_add (foo_set_initial_state, applet); ++ ++ applet_schedule_update_icon (applet); + } + + static GdkPixbuf * + applet_common_get_device_icon (NMDeviceState state, NMApplet *applet) + { + GdkPixbuf *pixbuf = NULL; + int stage = -1; + +@@ -1825,16 +1827,18 @@ + pixbuf = dclass->get_icon (device, state, connection, tip, applet); + if (!*tip) + *tip = get_tip_for_device_state (device, state, connection); + } + + out: + if (!pixbuf) + pixbuf = applet_common_get_device_icon (state, applet); ++ if (!pixbuf) ++ pixbuf = applet->no_connection_icon; + return pixbuf; + } + + static char * + get_tip_for_vpn (NMActiveConnection *active, NMVPNConnectionState state, NMApplet *applet) + { + NMConnectionScope scope; + char *tip = NULL; +@@ -1893,17 +1897,16 @@ + GString *tip; + NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; + gboolean nm_running; + NMActiveConnection *active_vpn = NULL; + + applet->update_icon_id = 0; + + nm_running = nm_client_get_manager_running (applet->nm_client); +- gtk_status_icon_set_visible (applet->status_icon, nm_running); + + /* Handle device state first */ + + state = nm_client_get_state (applet->nm_client); + if (!nm_running) + state = NM_STATE_UNKNOWN; + + switch (state) { --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp295788_xfce_menu_entry.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp295788_xfce_menu_entry.patch @@ -0,0 +1,8 @@ +--- network-manager-applet-0.7.orig/nm-connection-editor.desktop.in 2009-01-13 14:42:59.000000000 -0500 ++++ network-manager-applet-0.7/nm-connection-editor.desktop.in 2009-01-13 14:43:32.000000000 -0500 +@@ -9,4 +9,4 @@ + X-GNOME-Bugzilla-Product=NetworkManager + X-GNOME-Bugzilla-Component=general + Categories=GNOME;GTK;Settings;X-SuSE-ControlCenter-System;X-GNOME-NetworkSettings; +-OnlyShowIn=GNOME; ++OnlyShowIn=GNOME;Xfce; --- network-manager-applet-0.7.1~rc4.1.orig/debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch +++ network-manager-applet-0.7.1~rc4.1/debian/patches/lp268803_xdg_autostart_gnome_xfce_only.patch @@ -0,0 +1,22 @@ +=== modified file 'nm-applet.desktop' +--- + nm-applet.desktop.in | 1 + + 1 file changed, 1 insertion(+) + +Index: ubuntu.0.7/nm-applet.desktop.in +=================================================================== +--- ubuntu.0.7.orig/nm-applet.desktop.in ++++ ubuntu.0.7/nm-applet.desktop.in +@@ -1,11 +1,12 @@ + [Desktop Entry] + _Name=Network Manager + _Comment=Control your network connections + Icon=nm-device-wireless + Exec=nm-applet --sm-disable + Terminal=false + Type=Application ++OnlyShowIn=GNOME;XFCE; + X-GNOME-Bugzilla-Bugzilla=GNOME + X-GNOME-Bugzilla-Product=NetworkManager + X-GNOME-Bugzilla-Component=general + X-GNOME-Autostart-enabled=true