--- network-manager-0.6.6.orig/debian/README.Debian +++ network-manager-0.6.6/debian/README.Debian @@ -0,0 +1,33 @@ +NetworkManager consists of two parts: one is on the system level daemon that +manages the connections and gathers information about new networks. The other +is a systray applet that users can use to interact with the NetworkManager +daemon. + +Configuration of wireless and ethernet interfaces +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Only devices that are *not* listed in /etc/network/interfaces are managed by NM. + +After modifying /etc/network/interfaces you may want to restart NM with the +command "/etc/dbus-1/event.d/25NetworkManager restart". + +Dial-up configuration +~~~~~~~~~~~~~~~~~~~~~ +After configuring your PPP interface (either manually or by using a tool like +"pppconfig") to work with a peer called "myisp" you should edit +/etc/network/interfaces and add a stanza like this: + +iface ppp0 inet ppp + provider myisp + +NM will then make it possible to dial this connection. +If you want to set up multiple internet service providers simply create a new +stanza as listed above specifying the provider and a different iface, e.g. ppp1. + +After modifying /etc/network/interfaces you have to restart NM with the +command "/etc/dbus-1/event.d/25NetworkManager restart". + +Please read the "Debian Reference Manual", section 10.6.1.4 or the "interfaces" +man page for further information. + + -- Tollef Fog Heen , Fri, 15 Dec 2006 15:00:30 +0100 + --- network-manager-0.6.6.orig/debian/changelog +++ network-manager-0.6.6/debian/changelog @@ -0,0 +1,1016 @@ +network-manager (0.6.6-0ubuntu3) hardy; urgency=low + + * debian/patches/42a_ath_pci_supplicant_tweaks.patch: guard against a NULL + kernel driver name, which currently happens with some chipsets causing + network-manager to segfault when trying to connect to wireless. Thanks + to Emanuel Steen for the analysis and patch. + LP: #204868. + + -- Steve Langasek Sun, 23 Mar 2008 22:55:53 -0700 + +network-manager (0.6.6-0ubuntu2) hardy; urgency=low + + * resurrect and adapt driver tweaks to new code base for ath_pci cards + (LP: #202453). + - add debian/patches/42a_ath_pci_supplicant_tweaks.patch + - update debian/patches/series + * add Replaces: network-manager-gnome (<< 0.6.5) as network-manager started + to ship vpn files in after the source package split introduced by 0.6.5. + this fixes the file overwrite problem on dapper->hardy upgrades. + (LP: #203707) + - update debian/control + + -- Alexander Sack Tue, 18 Mar 2008 22:19:03 +0100 + +network-manager (0.6.6-0ubuntu1) hardy; urgency=low + + * new upstream release: 0.6.6 still covered by FF exception in LP: #197538 + + -- Alexander Sack Fri, 07 Mar 2008 11:58:53 +0100 + +network-manager (0.6.6~rc2-0ubuntu3) hardy; urgency=low + + * fix regression caused by uninitialized priv struct in nm-supplicant.c + - update debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch + * update overlapping patches accordingly + - update debian/patches/41u_custom_timeout_for_some_wpa_ctrl_operations.patch + * increase timeout between connect attemps to supplicant sockets from 100ms + to 250ms. This should give wpasupplicant a total time of 5 seconds to + recover (some drivers appear to need this) + - update 41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch + + -- Alexander Sack Thu, 06 Mar 2008 02:27:51 +0100 + +network-manager (0.6.6~rc2-0ubuntu1) hardy; urgency=low + + * new upstream release 0.6.6 RC (LP: #197538); fixes various bugs: + - LP: #40232, #41134, #75554, #82113, #107598, #118439, #132473 + * drop patches applied upstream + - drop debian/patches/04-if_fix.patch + - drop debian/patches/11-man_page_sh_name.patch + - drop debian/patches/24pp_svn2578-gnome354565-fix-ethernet-link-detection-races.patch + - drop debian/patches/24pp_svn2579-sleep-1-second-to-stabilize-if.patch + - drop debian/patches/24pp_svn2591_Ensure-the-device-is-up-stage3.patch + - drop debian/patches/24pp_svn2604_Add-HAL-based-rfkill-support.patch + - drop debian/patches/24pp_svn2605-gnome354565-dont-up-notwired-interfaces.patch + - drop debian/patches/24pp_svn2618_set-hardware-RF-to-enabled-if-no-killswitches.patch + - drop debian/patches/24pp_svn2754-lp101857-endianess.patch + - drop debian/patches/41c_ubuntu-fixup--get_mode_always_fails_typo_fix.patch + - drop debian/patches/41e_fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch + - drop debian/patches/41m_unref_dbus_connection_on_shutdown.patch + - update debian/patches/series + * refresh patch because of renamed NetworkManagerDispatcher manpage + - update debian/patches/06-dispatch_more_events.patch + * drop driver specific tweaks assuming that wext should be fine for most + drivers nowadays + - drop debian/patches/13-rml-wpa-workarounds.patch + - drop debian/patches/14-j-hostap-supplicant-driver.patch + - drop debian/patches/43b_lp181232_save_kernel_driver_check.patch + - update debian/patches/series + * simply unbittrotted patches + - update debian/patches/41k_20_sec_wireless_link_timeout.patch + - update debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch + - update debian/patches/41u_custom_timeout_for_some_wpa_ctrl_operations.patch + * don't use run count for global ctrl socket anymore + - update debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch + * try to drop hidden AP tweaks (lets hope that scan_capa patch in 2.6.24 + fixes this) + - drop debian/patches/42a_lp50214_gnome464215_fix_hidden.patch + - update debian/patches/series + * fix manpage path for NetworkManager and NetworkManagerDispatcher + - update debian/network-manager.manpages + + -- Alexander Sack Wed, 05 Mar 2008 19:06:19 +0100 + +network-manager (0.6.5-0ubuntu18) UNRELEASED; urgency=low + + * add NULL save strcmp for kernel_driver matching to fix crash for + some ubuntu mobile drivers (LP: 181232) - patch by RajiB + - add debian/patches/43b_lp181232_save_kernel_driver_check.patch + - update debian/patches/series + + -- Alexander Sack Wed, 09 Jan 2008 01:01:44 +0100 + +network-manager (0.6.5-0ubuntu17) hardy; urgency=low + + * upload 0.6.5-0ubuntu17 to hardy + + -- Alexander Sack Mon, 05 Nov 2007 19:14:43 +0100 + +network-manager (0.6.5-0ubuntu16.7.10.0) gutsy-proposed; urgency=low + + Release changes from test package previously known as 0.6.5-0ubuntu16~ppa3: + * drop gracefull supplicant shutdown feature and its followup patches, + because they cause crashes and a real fix would need more intrusive code + rewrites: (LP: #145683, LP: #83623, LP: #152098, LP: #151405) + - debian/patches/41n_graceful_supplicant_shutdown.patch, + debian/patches/41q_retry_supplicant_cleanup_startup_if_ctrl_interface_connect_failes.patch, + debian/patches/41v_lp141233-fix-supplicant-cleanup-crashes.patch, + debian/patches/41w_lp145683_cancel_scan_in_supplicant_cleanup.patch: drop + patches that belong to the "graveful supplicant feature". + - debian/patches/41u_custom_timeout_for_some_wpa_ctrl_operations.patch: update + interleaving patch + - debian/patches/series: update quilt series accordingly. + * debian/patches/24pp_svn2604_Add-HAL-based-rfkill-support.patch: use + gint32 instead of guint32 for getting the killswitch power argument + (LP: #138794). + + -- Alexander Sack Mon, 05 Nov 2007 18:01:13 +0100 + +network-manager (0.6.5-0ubuntu16) gutsy; urgency=low + + * debian/README.Debian: adapt README to match the new behaviour of + network-manager, which doesn't manage _any_ device configured in + /etc/network/interfaces anymore. + * debian/patches/42a_lp50214_gnome464215_fix_hidden.patch,series: new patch + that fixes hidden network for most chipsets (LP: #50214). + + -- Alexander Sack Mon, 15 Oct 2007 18:55:20 +0200 + +network-manager (0.6.5-0ubuntu15) gutsy; urgency=low + + * debian/patches/41z_lp138217_use_timeout_to_schedule_activation.patch,series: + don't use idle_source to schedule activation, but rest a bit by using a + timeout_source with 250ms delay (LP: #138217). + * debian/network-manager.postinst: sleep 2 seconds after ifblacklist_migrate.sh + (LP: #146757). + * debian/patches/41w_lp145683_cancel_scan_in_supplicant_cleanup.patch,series: first part + for lp145683 - cancel pending scans on terminate (LP: #145683). + * debian/patches/41wa_lp145683_wpa_ctrl_check_select_result_for_error.patch,series: + second part to fix lp145683; test select result for errors (in case of + TERMINATE) (LP: #145683). + * debian/patches/41y_queue_if_dbus_name_is_taken_on_startup.patch,series: make + restart of network manager more failsafe and even allow to take over name + ownership. When ownership is taken over (dbus signal |NameLost| received), we + shutdown cleanly by sending |X| through |nm_shutdown_pipe| (LP: #85113). + * debian/patches/41x_lp145653_reraise_fatal_signals.patch: re-raise fatal + signals (LP: #145653). + + -- Alexander Sack Tue, 02 Oct 2007 13:32:50 +0200 + +network-manager (0.6.5-0ubuntu14) gutsy; urgency=low + + * debian/ifblacklist_migrate.sh: fix "/etc/network/interfaces migration + overlooks wlan0" (LP: #141580). + + -- Alexander Sack Mon, 24 Sep 2007 10:21:46 +0200 + +network-manager (0.6.5-0ubuntu13) gutsy; urgency=low + + * debian/patches/20_do_not_take_over_dhcpv4iface_when_v6_is_configured.patch: + fix race/null-deref crash that happens if /e/n/i is not completely flushed out + by editor/network-admin (LP: #141106). + * debian/patches/41v_lp141233-fix-supplicant-cleanup-crashes.patch: Add patch + for LP: #141233 - fix crash by not sending ctrl commands to supplicant if no ctrl + socket is open. + * debian/patches/series: add new patch to quilt series + * debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch: + use two distinct variables to track and check connect attempt count to + supplicant and global supplicant socket. Fix bug that prevented network + manager from attempting to connect to supplicant ctrl for cases where + global control already took a long time to succeed. (LP: #141233). + * debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch: + close global ctrl socket connection when nm_utils_supplicant_request_with_check + failed. + * debian/patches/41u_custom_timeout_for_some_wpa_ctrl_operations.patch: update patch + because of overlapping change with 41t_* patch. + + -- Alexander Sack Fri, 21 Sep 2007 11:26:01 +0200 + +network-manager (0.6.5-0ubuntu12) gutsy; urgency=low + + * debian/patches/05-debian_backend.patch: don't manage auto/allow-* dhcp + interfaces anymore (LP: #139403). + - debian/ifblacklist_migrate.sh: new helper script that blacklists + auto/allow-* dhcp interfaces without any options. + - debian/network-manager.install: install helper script to $pkglibdir + - debian/network-manager.postinst: run ifblacklist_migrate.sh during + configure when upgrading from versions "lt-nl" 0.6.5-0ubuntu12. + * debian/changelog: add merge-dropped changelog entries for 0.6.3-2ubuntuX + revision series (LP: #124018) + * debian/patches/25_lp90267-dont-tear-down-upped-interfaces.patch,series: + drop this patch, so nm is allowed to tear down upped interfaces during + startup again. + + -- Alexander Sack Wed, 19 Sep 2007 18:38:17 +0200 + +network-manager (0.6.5-0ubuntu11) gutsy; urgency=low + + * debian/patches/25_lp90267-dont-tear-down-upped-interfaces.patch: remove + redundant nm_info output previously send to syslog/daemon.log + (LP: #137744). + * debian/patches/41r_wpa_control_custom_timeout.patch: add a state timeout + to wpa control Private struct and add functions to set/unset this custom + timeout; in turn implement this feature and make wpa_ctrl obey this + custom timeout. + * debian/patches/41r_wpa_control_explicit_TIMEOUT_reply_fixup.patch: wpa_ctrl + returns bogus reply string which may lead to access of not-initialized + memory in case an operation times out. We fix this by explicitly setting + reply to TIMEOUT[CLI] on wpa_ctrl side before returning. + * debian/patches/41s_wpa_ctrl_socket_non_block.patch: setup wpa_ctrl_socket as + a real NON_BLOCK socket to prevent one potential reason for stale states + in network-manager (deadlocks). + * debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch: + to prevent new supplicant sockets to not conflict with sockets that might + still exist from previous run we now append a run_count index to _all_ + socket control paths. This run_count is incremented in supplicant_cleanup + and is mod 10 to prevent any overflow when having more than 32-bit runs. + * debian/patches/41q_retry_supplicant_cleanup_startup_if_ctrl_interface_connect_failes.patch: + another try to terminate wpasupplicant more graceful: new shutdown + sequence sends disable_network, ap_scan 0, interface_remove, terminate. + * debian/patches/41u_custom_timeout_for_some_wpa_ctrl_operations.patch: we now + use a custom timeout for ctrl operations: INTERFACE_ADD, DISABLE_NETWORK, + TERMINATE; we take care that this timeout is unset after operations are + through. + * debian/patches/series: add all these great new patches to quilt _series_. + * debian/patches/41d_ipw3945_turn_off_essid_in_stage1.patch, + 41l_enable_ipw3945_reset_essid.patch,series: drop from patchset - because + we have a real fix in ipw3945 driver now. + * debian/patches/41n_graceful_supplicant_shutdown.patch: update patch in turn of + dropping the patches above. + + -- Alexander Sack Mon, 10 Sep 2007 13:06:24 +0200 + +network-manager (0.6.5-0ubuntu10) gutsy; urgency=low + + * debian/patches/24pp_svn2754-lp101857-endianess.patch,series: prepatch patch + by Wojtek Kaniewski to fix endianess issues in NetworkManager + (LP: #101857). + * debian/network-manager.postinst: apply patch contributed by Villalovos, John L + that prevents NetworkManager restart in postinst + if invoke-rc.d --disclose-deny dbus force-reload fails. This is required to not + start any service during chroot installs of ume. + + -- Alexander Sack Thu, 06 Sep 2007 15:16:46 +0200 + +network-manager (0.6.5-0ubuntu9) gutsy; urgency=low + + * debian/patches/series: disable 41o_completely_deactivate_stage1.patch + for tribe-4 + + -- Alexander Sack Tue, 7 Aug 2007 12:36:37 +0200 + +network-manager (0.6.5-0ubuntu8) gutsy; urgency=low + + * debian/patches/41n_graceful_supplicant_shutdown.patch: move + supplicant_cleanup into stage1_prepare; remove test timeouts in + _stage2_config and add 1 second sleep to the end of xx_stage1_prepare + * debian/patches/series: add new patch 41n_graceful_supplicant_shutdown.patch + to series + * debian/patches/41l_enable_ipw3945_reset_essid.patch: enable + ipw3945_reset_essid, by setting up function in class constructor + * update debian/patches/41l_enable_ipw3945_reset_essid.patch: + completely deactivate device in stage1 now + * debian/patches/series: add new patch 41l_enable_ipw3945_reset_essid.patch + * debian/patches/41m_unref_dbus_connection_on_shutdown.patch, + unref shared dbus_connection on shutdown (LP: #85113) + * debian/patches/series: add new patch 41m_unref_dbus_connection_on_shutdown.patch + * debian/patches/41k_20_sec_wireless_link_timeout.patch: increase + timeout for link setup ... taken from upstream ml + * debian/patches/series: add new patch 41k_20_sec_wireless_link_timeout.patch + * debian/patches/41e_fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch: Fix + ftbfs because of recently deprecated gnome druid - this patch enables gnome + deprecated in Makefiles + * debian/patches/series: add new patch + 41e_fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch + * debian/patches/41d_ipw3945_turn_off_essid_in_stage1.patch: + implement stage1_prepare implementation in nm-device-802-11-wireless.c + * debian/patches/series: add new patch 41d_ipw3945_turn_off_essid_in_stage1.patch + * debian/rules, debian/control, debian/patches/series: Switch patchsystem to quilt + * debian/patches/41c_ubuntu-fixup--get_mode_always_fails_typo_fix.patch: fix + programming bug in wireless code + * debian/patches/24pp_svn2591_Ensure-the-device-is-up-stage3.patch: ensure + device is up in stage3 - cherry-picked from svn + * debian/patches/24pp_svn2618_set-hardware-RF-to-enabled-if-no-killswitches.patch: + enable hardware rf by default - cherry-picked from svn + * debian/patches/24pp_svn2604_Add-HAL-based-rfkill-support.patch: hal based rfkill + - cherry-picked from svn + * debian/patches/24pp_svn2579-sleep-1-second-to-stabilize-if.patch: sleep to + stabilize link status - cherry-picked from svn + * debian/patches/41o_completely_deactivate_stage1.patch: use nm_device_deactivate + instead of just real_deactivate to deactivate device more cleanly + + -- Alexander Sack Tue, 7 Aug 2007 09:51:02 +0200 + +network-manager (0.6.5-0ubuntu7) gutsy; urgency=low + + [Alexander Sack ] + * prefetch bugfix from svn - not-connected wired interface is if-upped: + 1. 24a_svn2578-gnome354565-fix-ethernet-link-detection-races.patch: + - prefetch patch from 0.6.0 release branch (rev 2578) + 2. 24b_svn2605-gnome354565-dont-up-notwired-interfaces.patch: + - prefetch patch from 0.6.0 release branch (rev 2605) + * debian/patches/25_lp90267-dont-tear-down-upped-interfaces.patch: fix master bug that + makes already configured interfaces (in /etc/network/interfaces) being torn down. This + causes issue for network cards that don't have a link beat and might caus troubles + for applications that have already bound to the interface and don't react on netlink + events (LP: #90267) + + [Anthony Mercatante ] + * fixed network-manager.install and debian/rules: + - Installs nm-vpn-perperties in /usr/lib to make it a hidden binary + - Tell dh_shlibdeps to ignore nm-vpn-properties to avoid lots of gnome + dependancies, causing issues to release kubuntu Kubuntu. + + -- Alexander Sack Thu, 12 Jul 2007 11:15:56 +0200 + +network-manager (0.6.5-0ubuntu6) gutsy; urgency=low + + * debian/control: + - add a network-manager-dev Depends on libnm-util-dev + + -- Sebastien Bacher Fri, 06 Jul 2007 10:59:49 +0200 + +network-manager (0.6.5-0ubuntu5) gutsy; urgency=low + + * install nm-vpn-properties (plus manpage) to package + network-manager. It got moved from network-manager-gnome here. + (LP: #123772) + + -- Reinhard Tartler Thu, 05 Jul 2007 09:56:34 +0200 + +network-manager (0.6.5-0ubuntu4) gutsy; urgency=low + + * debian/control: add iproute build-depends again to fix + autobuilder ftbfs. + + -- Alexander Sack Tue, 26 Jun 2007 16:39:17 +0200 + +network-manager (0.6.5-0ubuntu3) gutsy; urgency=low + + Revert all changes from 0.6.5-0ubuntu1 and 0.6.5-0ubuntu2 to + redo new upstream source merge ... + + Drop network-manager-gnome as gnome because the gui code is + now shipped in separate source: + * debian/network-manager-gnome.install, + debian/network-manager-gnome.manpages, + debian/nm-applet.sgml: obsolete files dropped + + * debian/rules: don't create/install nm-applet manpage anymore + + * debian/control: drop network-manager-gnome package + + + Adapt ubuntu patchset in turn of new upstream release 0.6.5: + * debian/patches/05-debian_backend.patch: our @add_data changes + has been applied upstream - drop first hunk of interface_parser.c + diff. + + * debian/patches/09_fix_bigendian_words.patch: drop as + AC_C_BIGENDIAN check is now applied upstream - drop patch. + + * debian/patches/10-po_fr.patch: we only had modifications for + applet .po entries. applet moved to its own source - drop patch. + + * debian/patches/11-man_page_sh_name.patch: +.SH NAME as been + added upstream for /man/NetworkManagerDispatcher.1.in and + man/NetworkManager.1.in; thus, only keep diff for man/nm-tool.1.in. + + * debian/patches/12_dbus1.0.patch: dbus_connection_disconnect was + replaced by dbus_connection_close + dbus_connection_unref; our + patch previously replaced dbus_connection_disconnect with + dbus_connection_unref (only) - drop patch due to upstream fix. + + * debian/patches/13-rml-wpa-workarounds.patch: simple reapply patch + manually as upstream changed some unrelated code in patch proximity. + + * debian/patches/18_static_network-admin.patch: patch for gnome + applet only; since source has moved it has to go - drop patch + + * debian/patches/21_manual_means_always_online.diff: drop patch + for gnome applet code; recalc line numbers of other patches for + updated underlying upstream version; apply hunk + src/NetworkManagerMain.h manually because upstream changed code + in proximity. + + * debian/patches/22_manual_config_available_when_connected.patch: + applet changes only - drop patch + + * debian/patches/23_nm-monitor-eni.diff: manually apply + src/NetworkManagerSystem.h patch whose underlying code base + was changed within proximity of changes; in turn recalc patch + line number for src/backends/NetworkManagerDebian.c as well + as src/NetworkManager.c + + + Change Maintainer Field for ubuntu: + * debian/control: change maintainer field to coredev for upload + + -- Alexander Sack Mon, 25 Jun 2007 18:25:54 +0200 + +network-manager (0.6.5-0ubuntu2) gutsy; urgency=low + + * Added missing build-dep iproute. + Fixes FTBFS on the buildd + * Fixed path installation of nm-vpn-properties + + -- Anthony Mercatante Mon, 18 Jun 2007 12:56:22 +0200 + +network-manager (0.6.5-0ubuntu1) gutsy; urgency=low + + * New upstream release + * Dropped obsolete 05-debian_backend.patch + * Dropped 09_fix_bigendian_words.patch, merged upstream + * Dropped 10-po_fr.patch, translation fixed upstream + * Dropped 11-man_page_sh_name.patch, merged upstream + * Dropped 12_dbus1.0.patch, merged upstream + * Dropped 13-rml-wpa-workarounds.patch, merged upstream + * Dropped obsolete 14-j-hostap-supplicant-driver.patch + * Dropped obsolete 16_undefined_macros.patch + * Dropped 18_static_network-admin.patch, + 21_manual_means_always_online.diff and + 22_manual_config_available_when_connected.patch, as the applet is + now a separate tarball + * Dropped obsolete + 19_interfaces_can_have_more_than_one_instance.patch, + 20_do_not_take_over_dhcpv4iface_when_v6_is_configured.patch + + * Moved 19_interfaces_can_have_more_than_one_instance.patch, + 20_do_not_take_over_dhcpv4iface_when_v6_is_configured.patch and + 21_manual_means_always_online.diff in "patches-not-applied". + n-m 0.6.5 has major code changes and the applet is now separate tarball, + those patches need rewritting. + + -- Anthony Mercatante Fri, 15 Jun 2007 11:29:53 +0200 + +network-manager (0.6.4-6ubuntu7) feisty; urgency=low + + * 21_manual_means_always_online.diff: + The previous version of this patch (ubuntu5) made a change to nm-applet + that would assume the state was disconnected if the device list was empty. + This didn't work since the device list is always empty on start because + the status is obtained first. + + This was guarding against having the connected state with no devices, + which broke later assertions. Change the patch to correct those + assertions instead; a connected state with no active device will now + display the wired icon with a "Manual network configuration" tooltip. + + LP: #82335, #105234. + + * 05-debian_backend.patch: + Revert change in ubuntu3 that commented out the blacklisting of + devices listed in /etc/network/interfaces with more exotic configuration + than just inet dhcp. This was done by the above patch in ubuntu5, it + seems silly to do it there, better to do it in the original patch. + + * 22_manual_config_available_when_connected.patch: + Display the "Manual configuration" menu option when we have no devices, + but are connected; since that means some number of blacklisted devices + exist. Don't display the "No network devices" message in that case. + + -- Scott James Remnant Thu, 12 Apr 2007 19:32:01 +0100 + +network-manager (0.6.4-6ubuntu6) feisty; urgency=low + + * debian/rules: + - update translations template + + -- Sebastien Bacher Wed, 11 Apr 2007 22:36:27 +0200 + +network-manager (0.6.4-6ubuntu5) feisty; urgency=low + + * Partially revert 0.6.4-6ubuntu3, but if we find interfaces which are + disabled, we assume we are always online to avoid trouble when people + have advanced and semi-advanced setups. + + -- Tollef Fog Heen Mon, 9 Apr 2007 21:39:20 +0200 + +network-manager (0.6.4-6ubuntu4) feisty; urgency=low + + * /etc/network/interfaces can have more than one instance of the same + interface. For example: + + iface eth0 inet dhcp + and later + iface eth0 inet6 static + + The function ifparser_getif is capable only to return the first instance + of eth0 that is a legal entry for NM to take over, but NM still does not + know how to handle what's next. + + Patch 19_interfaces_can_have_more_than_one_instance.patch creates a sub + list of linked if_block via nextsame, binding together all if_block's + related to the same interface and preserving if_data for each block. + + Patch 20_do_not_take_over_dhcpv4iface_when_v6_is_configured.patch + blacklist interfaces that have dhcp for inet configuration but have an + inet6 entry following later on. NM does not know yet how to + store/restore/configure IPv6 (blacklisted too) so for now we tell NM + to keep the hands off these interfaces. + + (Closes LP: #93636) + + -- Fabio M. Di Nitto Fri, 30 Mar 2007 11:17:42 +0200 + +network-manager (0.6.4-6ubuntu3) feisty; urgency=low + + * Manage some static devices we can understand. This should avoid the + problem people are having with NM marking the machine as offline when + it's just on static instead. LP #82335. + + -- Tollef Fog Heen Tue, 13 Mar 2007 16:18:06 +0100 + +network-manager (0.6.4-6ubuntu2) feisty; urgency=low + + * Add "static configuration" menu item for NetworkRoaming spec. + + -- Tollef Fog Heen Thu, 18 Jan 2007 11:22:19 +0100 + +network-manager (0.6.4-6ubuntu1) feisty; urgency=low + + * Merged with the Debian packages. Remaining changes: + - Changed 12_dbus1.0.patch to unref rather than close the connection + - Added 13-rml-wpa-workarounds.patch + - Added 14-j-hostap-supplicant-driver.patch + - Added 16_undefined_macros.patch + - Call dh_iconcache for network-manager-gnome + - Add recommends on network-manager-gnome | network-manager-kde + - Remove "security" bit in README.Debian since we're using at_console + instead of the netdev group + - Remove the addition of the netdev group as well as the dependency on + adduser. + * Thanks to Riccardo Setti for help with merging the package. Much + appreciated. + + -- Tollef Fog Heen Fri, 15 Dec 2006 14:41:49 +0100 + +network-manager (0.6.4-6) unstable; urgency=medium + + * debian/patches/10-po_fr.patch + - Added. Small fixes for the French translation. (Closes: #401060) + Thanks to Cyril Brulebois. + * debian/patches/12_dbus1.0.patch + - Updated 12_dbus0.9.patch for D-Bus 1.0 to pass the correct flags to + dbus_bus_request_name(). (Closes: #401039) + * debian/patches/11-man_page_sh_name.patch + - Add missing ".SH NAME" stanzas to man pages. + * debian/network-manager-gnome.install + - Install the nm-applet autostart file into /etc/xdg/autostart rather than + /usr/share/gnome/autostart to be compliant to the fd.o autostart spec. + * Urgency medium, as it fixes a FTBFS bug. + + -- Michael Biebl Thu, 30 Nov 2006 21:30:47 +0100 + +network-manager (0.6.4-5) unstable; urgency=low + + * Small fix for the NetworkManagerDispatcher init script. + + -- Michael Biebl Wed, 25 Oct 2006 11:00:34 +0200 + +network-manager (0.6.4-4) unstable; urgency=low + + * Correct typo in package description. (Closes: #390062) + * debian/network-manager.postinst + - Create group netdev if not yet existent. Add a Depends on adduser. + * Add instructions to README.Debian how to restart NetworkManager after + modifying /etc/network/interfaces. (Closes: 384892) + * debian/patches/05-debian_backend.patch + - Fix the parser for /etc/network/interfaces. (Closes: #383765) + - Do not restart nscd on dns changes, only invalidate the hosts cache. + + -- Michael Biebl Tue, 24 Oct 2006 20:18:18 +0200 + +network-manager (0.6.4-3) unstable; urgency=low + + * Changed adeprecated dbus function. (Closes: 385380) + - Added 12_dbus0.9.patch. + + -- Riccardo Setti Tue, 5 Sep 2006 19:48:00 +0200 + +network-manager (0.6.4-2) unstable; urgency=low + + * Ship the nm-tool binary. (Closes: #384891) + + -- Michael Biebl Tue, 15 Aug 2006 23:42:09 +0200 + +network-manager (0.6.4-1) unstable; urgency=low + + [ Riccardo Setti ] + * New upstream release. (Closes: #379163) + - Bumped hal deps to version 0.5.7.1. NM needs user haldaemon for dbus + operations. + * Allow interfaces marked "auto-hotplug" to be managed by NM. + (Closes: #381017) + * Added 09_fix_bigendian_words.patch which will fix the WPA+plain text pw + auth method on powerpc (and on other bigendian archs). (Closes: #381464) + + [ Michael Biebl ] + * Merged the patches 05-resolvconf.patch and 08-disabled_devices.patch into + a single patch called 05-debian_backend.patch. + * Updated 05-debian_backend.patch to not control mapped interfaces. + (Closes: #377498) + + -- Michael Biebl Tue, 8 Aug 2006 01:51:13 +0200 + +network-manager (0.6.3-2) unstable; urgency=low + + * Updated 02-dbus_access_network_manager.patch to allow the hal daemon + (running as user "hal") to send events about hotplugged devices to the + NetworkManager daemon. (Closes: 355785) + * Added a Recommends: notification-daemon to network-manager-gnome. + * Improved the package description and the manpage of network-manager-gnome. + (Closes: #362962) + + -- Michael Biebl Tue, 20 Jun 2006 23:22:11 +0200 + +network-manager (0.6.3-1) unstable; urgency=low + + * New upstream release. + - Removed 07-libnm_glib_reconnect_dbus.patch, merged upstream. + - Removed 09-nm_bad_mutex_free.patch, fixed upstream. + - Removed 10-interface_parser_fixes.patch, merged upstream. + - Removed 11-carrier_detection.patch, merged upstream. + * Added a watch file. + * Added homepage URL to package description. + + -- Michael Biebl Thu, 8 Jun 2006 16:21:43 +0200 + +network-manager (0.6.2-3) unstable; urgency=low + + * Ship the NEWS.Debian file only for the network-manager package. + (Closes: #367063) + * Added 11-carrier_detection.patch to support network cards which can't do + carrier detection. (Closes: #366373) + + -- Michael Biebl Tue, 16 May 2006 00:16:43 +0200 + +network-manager (0.6.3-2ubuntu7) feisty; urgency=low + + * Add debian/patches/00upstream-ftbfs.patch: + - Fix dbus version check in src/NetworkManagerDbus.c to work with dbus + 1.0. + - src/nm-netlink-monitor.c: Standard fix for new if_addr.h world order. + - These issues are already fixed in the currently pending Debian merge, so + this patch can go away soon. + * Add debian/patches/13_avahi-autoipd.patch: + - src/nm-device.c: Do not use the internal get_autoip() function, but + instead check if avahi-autoipd was engaged for the interface and do not + meddle with the settings in that case. This is in accordance with + upstream who wants to completely throw away the internal IPv4LL code. + - src/dhcp-manager/nm-dhcp-manager.c: Raise DHCP timeout from 45 seconds + to 99 seconds, thus effectively disabling it. We want to use + dhclient.conf's timeout configuration; if that happens to be longer, we + interrupt dhclient while it's still working and get confused if the IP + suddenly changes underneath us. + - src/dhcp-manager/nm-dhcp-manager.c: Treat DHCDBD_FAIL like + DHCDBD_TIMEOUT, i. e. continue with stage 4 of device activation + (IPv4LL address assignment) instead of giving up and trying all over + again. Since dhcdbd calls dhclient in single-shot mode (-1), it will + never return with TIMEOUT, only with FAILURE, and we want to go into + zeroconf mode instead of being stuck in an endless retry loop. + - See https://wiki.ubuntu.com/ZeroConfNetworking for details. + + -- Martin Pitt Wed, 6 Dec 2006 16:42:54 +0100 + +network-manager (0.6.3-2ubuntu6) edgy; urgency=low + + * ndiswrapper uses the stock wext driver now, so remove that bit of the + 10-rml-wpa-workarounds.patch. Adjust + 11-j-hostap-supplicant-driver.patch appropriately. Malone: #46136 + + -- Tollef Fog Heen Tue, 17 Oct 2006 13:17:59 +0200 + +network-manager (0.6.3-2ubuntu5) edgy; urgency=low + + * Rebuild against dbus 0.90 + * debian/patches/12_dbus0.9.patch: + + s/dbus_connection_disconnect/dbus_connection_close/g + + -- Sebastian Dröge Thu, 24 Aug 2006 18:09:06 +0200 + +network-manager (0.6.3-2ubuntu4) edgy; urgency=low + + * Correct network manager to not touch resolv.conf, accidentally dropped + during the merge. + + -- Scott James Remnant Tue, 22 Aug 2006 09:16:37 +0200 + +network-manager (0.6.3-2ubuntu3) edgy; urgency=low + + * debian/rules: + - Add dh_iconcache to network-manager-gnome. + + -- Christian Bjälevik Sun, 6 Aug 2006 12:32:52 +0200 + +network-manager (0.6.3-2ubuntu2) edgy; urgency=low + + * Fix packaging so that the workaround patch isn't already applied, thus + breaking the builds. + + -- Scott James Remnant Sun, 30 Jul 2006 23:24:43 +0100 + +network-manager (0.6.3-2ubuntu1) edgy; urgency=low + + * Merge with debian unstable, using Debian packaging as a base. + Remaining changes: + - our HAL daemon runs as the "haldaemon" user, not "hal", + - use at_console="true" instead of netdev, + - retain rml's workarounds patch, + - retain j's hostap patch. + + -- Scott James Remnant Wed, 12 Jul 2006 22:13:20 +0100 + +network-manager (0.6.2-2) unstable; urgency=low + + * More integration work. (Closes: #355244) + - Added network-manager-dispatcher.script and + 06-dispatch_more_events.patch. + This way the scripts in /etc/networks/if-*.d/ are called properly by + NetworkManagerDispatcher. + Thanks to the Ubuntu devs for this work! + - Added 08-disabled_devices.patch. Network interfaces listed in + /etc/network/interfaces which are not configured "auto" and "dhcp" are + not handled by NM. This makes it possible to configure interfaces + statically and have NM not messing with them. + Updated README.Debian to reflect these changes. + - Added 09-nm_bad_mutex_free.patch. Otherwise NM crashes if a device is + disabled. + * Added 07-libnm_glib_reconnect_dbus.patch which makes libnm_glib sleep + between unsuccessful connection attempts to dbus. (Closes: #366010) + * Bumped Standards-Version to 3.7.2, no further changes required. + * Removed *.la files from the dev packages as we also ship pkg-config files + which are a better alternative. + * Added 10-interface_parser_fixes.patch which fixes several problems with + the /etc/network/interfaces parser. (Closes: #355564) + + -- Michael Biebl Fri, 5 May 2006 18:01:47 +0200 + +network-manager (0.6.2-1) unstable; urgency=low + + * New upstream release. + * Updated if_fix.patch, parts of it have been fixed upstream. + * Renamed patches to use a more consistent naming scheme. + * Depend on dhcbd (>= 1.12-2) because NM 0.6.2 does not start dhcdbd itself + anymore. + * The wpa_supplicant binary was moved from /usr/sbin to /sbin. Updated + debian/rules accordingly. + * Added dependency on hal (Closes: #356622) + * Added autostart file to network-manager-gnome. This way nm-applet is + started automatically on login. + + -- Michael Biebl Sun, 2 Apr 2006 19:48:28 +0200 + +network-manager (0.6.1-1) unstable; urgency=low + + * New upstream release. + * Added myself to uploaders. + * Added a dependency on dbus. + + -- Michael Biebl Tue, 14 Mar 2006 15:48:41 +0100 + +network-manager (0.6.0-1) unstable; urgency=low + + * New upstream release (Closes: #355246) + - most of the work is taken from the experimental branch of NM. + Thanks goes to Michael Biebl. + - Added NetworkManagerDebian.patch which introduce supports for resolvconf + * switched to debhelper5. + * added libnl-util0, libnl-util-dev packages. + - added debian/libnl-util0.install , debian/libnl-util-dev.install + * removed debian/dirs as it was useless. + * added a dependency on wpasupplicant as it's necessary for all encrypted + connections. + + -- Riccardo Setti Thu, 9 Mar 2006 15:38:01 +0100 + +network-manager (0.5.1-3) unstable; urgency=low + + * improved debian/copyright . I hope this time it will be + good enough to pass the ftp-master check. Thanks to Joerg Jaspert who + has pointed me to the problem. + + -- Riccardo Setti Sun, 26 Feb 2006 21:57:29 +0100 + +network-manager (0.5.1-2) unstable; urgency=low + + * improved manpages. + - added nm-vpn-properties, nm-applet manpages + - added debian/network-manager-gnome.manpages + - modifyed NetworManager*.sgml for reflect the correct website. + * added nm-vpn-properties.desktop, nm-logo.xpm + * added dbus_access_network_manager and dbus_access_nm_applet patches: + - switched to group netdev + - updated the dep on dhcdbd + - removed debian/network-manager.dbus-conf debian/nm-applet.conf + * removed network-manager.doc as it was empty. + * uploaded to unstable. + + -- Riccardo Setti Thu, 9 Feb 2006 10:18:13 +0100 + +network-manager (0.5.1-1) experimental; urgency=low + + * renamed 25NetworkManagerDispatcher in 26NetworkManagerDispatcher because + first we need to start NetworkManager and then NetworkManagerDispatcher + * added networkmanger and networkmanaferdispatcher manpages. + * Inital upload to Debian (Closes: #270538) + * work based on the ubuntu package + * Added 01.patch and 02.patch for fix the problem with recent linux + kernel-headers + + -- Riccardo Setti Mon, 5 Jan 2006 17:09:29 +0100 + +network-manager (0.5.1-0ubuntu6) dapper; urgency=low + + * Really don't depend on bind9 being installed + + -- Matthew Garrett Mon, 26 Dec 2005 00:40:29 +0000 + +network-manager (0.5.1-0ubuntu5) dapper; urgency=low + + * debian/control: + - Version dep on dhcdbd to (>= 1.10-0ubuntu2). + + -- Christian Bjälevik Wed, 21 Dec 2005 19:08:53 +0100 + +network-manager (0.5.1-0ubuntu4) dapper; urgency=low + + * debian/control: + - Version all accurances of libdbus-glib-1-dev to (>= 0.60). + - Removed not needed Build-Dep on libxdcmp-dev, this is a dep + of libx11-dev now. + * debian/patches/01-STOLEN_FROM_HEAD-dbus-60: + - Add a patch from CVS HEAD to fix FTBFS. + No patchsystem, only applied it. + + -- Christian Bjälevik Wed, 21 Dec 2005 14:22:34 +0100 + +network-manager (0.5.1-0ubuntu3) dapper; urgency=low + + * debian/control: + - Changed versioned dep on wireless-tools to >= 28pre9 + (what upstream says in their .news). + - Removed commented out Conflicts-line. + - Do not depend on bind9 being installed. + - Added libxdmcp-dev as a Build-Dep. + * debian/*.dbus-event: + - Use "$NAME" instead of the incredible long "$DESC: ". + * debian/network-manager.postinst: + - Do not run gtk-update-icon-cache on configure cause + seb128 says it's a bad idea and explained why :-). + * debian/README: + - Fix typo (cann -> can). + * debian/rules: + - Removed named-support (we don't want bind9 for this) + - Added --with-distro=debian. + + -- Christian Bjälevik Thu, 15 Dec 2005 02:04:12 +0100 + +network-manager (0.5.1-0ubuntu2) dapper; urgency=low + + * remove .arch-ids traces + + -- Jan Gerber Sun, 13 Nov 2005 21:19:18 -0500 + +network-manager (0.5.1-0ubuntu1) dapper; urgency=low + + * New upstream version + + -- Jan Gerber Fri, 21 Oct 2005 08:33:25 -0400 + +network-manager (0.5.0-0ubuntu1) breezy; urgency=low + + * New upstream version + * split headers into network-manager-dev + + -- Jan Gerber Tue, 18 Oct 2005 17:43:56 +0200 + +network-manager (0.4.1+cvs20050817-0ubuntu5) breezy; urgency=low + + * fix postinst so its possible to install network-manager + in pbuilder + + -- Jan Gerber Tue, 11 Oct 2005 19:23:47 +0200 + +network-manager (0.4.1+cvs20050817-0ubuntu4) breezy; urgency=low + + * update postinst to restart dbus on install + + -- Jan Gerber Sat, 29 Aug 2005 13:40:26 +0200 + +network-manager (0.4.1+cvs20050817-0ubuntu3) breezy; urgency=low + + * this is NetworkManager CVS Tag NM_0_4_1_RELEASE + 3 patches + - make dhcdbd only a runtime dependency + - fix build due to one too many ,s + - fix debian backend to support static IP settings again + (all changes are upstream by now) + + -- Jan Gerber Sat, 27 Aug 2005 23:40:26 +0200 + +network-manager (0.4.1+cvs20050817-0ubuntu2) breezy; urgency=low + + * restructure build system to creat orig.tar.gz and diff.gz files + + -- Jan Gerber Sat, 27 Aug 2005 14:04:26 +0200 + +network-manager (0.4.1+cvs20050817-0unbuntu1) breezy; urgency=low + + * fix loading static IP settings from /etc/network/interfaces + + -- Jan Gerber Sun, 21 Aug 2005 19:40:26 +0200 + +network-manager (0.4.1+cvs20050817-0) breezy; urgency=low + + * update to NM_0_4_1_RELEASE + + -- Jan Gerber Sun, 21 Aug 2005 15:27:26 +0200 + +network-manager (0.4.1+cvs20050813-0) breezy; urgency=low + + * change back to using BIND + * remove dependency on resolvconf and dnsmasq + + -- Jan Gerber Sat, 13 Aug 2005 19:37:26 +0200 + +network-manager (0.4.1+cvs20050618-3) breezy; urgency=low + + * Run resolvconf instead of messing with BIND. Dependencies + changed too. Unfortunately these changes are not properly + tested :-(. + + -- Ian Jackson Sat, 18 Jun 2005 13:33:26 +0100 + +network-manager (0.4.1+cvs20050618-2) breezy; urgency=low + + * Sort out chown of /var/lib/NetworkManager + + -- Thom May Sat, 18 Jun 2005 13:33:26 +0100 + +network-manager (0.4.1+cvs20050618-1) breezy; urgency=low + + * update from CVS + * Add configure magic to ensure we get the correct path for dhcdbd + (Ubuntu: #11905) + * Ensure /var/lib/NetworkManager is created with the correct permisions + (Ubuntu: #11904) + * Rename dbus event script to correct name and restart dbus in postinst + * Depend on lsb-base and use log_*_msg in event script + + -- Thom May Sat, 18 Jun 2005 11:22:49 +0100 + +network-manager (0.4.1+cvs20050616-1) breezy; urgency=low + + * New upstream. Fix descriptions. + + -- Thom May Thu, 16 Jun 2005 14:47:30 +0100 + +network-manager (0.4.1+cvs20050614-1) unstable; urgency=low + + * New upstream release. Move to 0.4 branch; use dhcdbd. + * Drop network-manager-gnome + * add libnm-glib-0 and libnm-glib-0-dev + + -- Thom May Tue, 14 Jun 2005 12:41:29 +0100 + +network-manager (0.3.1+cvs20041108-1) unstable; urgency=low + + * New upstream release + * Add dpatch + + -- Thom May Mon, 8 Nov 2004 13:49:15 +0000 + +network-manager (0.3.1+cvs20041101-2) unstable; urgency=low + + * Update dependencies, thanks to j@bootlab.org + + -- Thom May Tue, 2 Nov 2004 16:32:45 +0000 + +network-manager (0.3.1+cvs20041101-1) unstable; urgency=low + + * New upstream release + + -- Thom May Mon, 1 Nov 2004 13:08:32 +0000 + +network-manager (0.3.1+cvs20041028-1) unstable; urgency=low + + * New upstream release + + -- Thom May Thu, 28 Oct 2004 13:12:42 +0100 + +network-manager (0.3+cvs20041016-2) unstable; urgency=low + + * fix some minor problems in packaging; clean up for pkg-utopia entry + + -- Thom May Mon, 25 Oct 2004 13:43:07 +0100 + +network-manager (0.3+cvs20041016-1) unstable; urgency=low + + * New upstream release + * Clean up backend for debian + + -- Thom May Sat, 16 Oct 2004 21:32:43 +0100 + +network-manager (0.3-1) unstable; urgency=low + + * New upstream release + + -- Thom May Fri, 15 Oct 2004 13:55:46 +0100 + +network-manager (0.2+cvs20040928-1) unstable; urgency=low + + * Initial Release. + + -- Thom May Sun, 3 Oct 2004 11:54:56 +0100 + --- network-manager-0.6.6.orig/debian/compat +++ network-manager-0.6.6/debian/compat @@ -0,0 +1 @@ +5 --- network-manager-0.6.6.orig/debian/control +++ network-manager-0.6.6/debian/control @@ -0,0 +1,104 @@ +Source: network-manager +Section: net +Priority: optional +Maintainer: Ubuntu Core Dev Team +XSBC-Original-Maintainer: Riccardo Setti +Uploaders: Michael Biebl +Build-Depends: debhelper (>= 5.0.0), cdbs, quilt, gnome-common, intltool, libgnome-keyring-dev, libdbus-glib-1-dev (>= 0.60), libiw-dev(>= 27+28pre9), libgnomeui-dev, libpanel-applet2-dev, libglade2-dev, libgconf2-dev, libhal-dev (>= 0.5.0), libnl-dev (>= 0.99+1.0.svn21), libnotify-dev (>= 0.3), docbook-to-man, iproute +Standards-Version: 3.7.2 +XS-Vcs-Bzr: https://code.launchpad.net/~ubuntu-core-dev/network-manager/ubuntu.0.6.x + +Package: network-manager +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, iproute, iputils-arping, dhcdbd (>=1.12-2), lsb-base (>= 2.0-6), wpasupplicant (>= 0.4.8), dbus (>= 0.60), hal (>=0.5.7.1), ifupdown +Replaces: network-manager-gnome (<< 0.6.5) +Recommends: network-manager-gnome | network-manager-kde +Description: network management framework daemon + 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 provides the userspace daemons. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ + +Package: network-manager-dev +Architecture: any +Section: devel +Depends: ${shlibs:Depends}, ${misc:Depends}, pkg-config, libnm-util-dev +Description: network management framework (development files) + this package provides header files that are needed to + compile VPN Plugins for NetworkManager. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ + +Package: libnm-glib0 +Section: libs +Architecture: any +Depends: ${shlibs:Depends} +Description: network management framework (GLib shared library) + 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 provides the shared library that applications can use to query + connection status via NetworkManager. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ + +Package: libnm-glib-dev +Section: libdevel +Architecture: any +Depends: libnm-glib0 (= ${Source-Version}), libglib2.0-dev, libdbus-glib-1-dev (>= 0.60) +Description: network management framework (GLib interface) + 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 provides the interface that applications can use to query + connection status via NetworkManager. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ + +Package: libnm-util0 +Section: libs +Architecture: any +Depends: ${shlibs:Depends} +Description: network management framework (shared library) + 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 convenience library to ease the access to + NetworkManager. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ + +Package: libnm-util-dev +Section: libdevel +Architecture: any +Depends: libnm-util0 (= ${Source-Version}), libglib2.0-dev, libdbus-glib-1-dev (>= 0.60) +Description: network management framework (development files) + 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 header and development files. + . + Homepage: http://www.gnome.org/projects/NetworkManager/ + --- network-manager-0.6.6.orig/debian/copyright +++ network-manager-0.6.6/debian/copyright @@ -0,0 +1,101 @@ +This package was debianized by Thom May on +Sun, 3 Oct 2004 11:54:56 +0100. + +It was downloaded from http://ftp.gnome.org/pub/GNOME/sources/NetworkManager + +src/autoip.c, src/autoip.h are copyright of Arthur van Hoff (avh@strangeberry.com) +and are released under the terms of the GNU Lesser General Public + +License: + + This package 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 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 + 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 + +src/gnome-keyring-md5.c, gnome-keyring-md5.h is written by Colin Plumb. +This code is in the public domain; do with it what you wish. + +gnome/nm-applet/eggtrayicon.c, eggtrayicon.h are copyright of +Anders Carlsson and are released under the terms of +the GNU Lesser General Public. (see above). + +src/nm-netlink-monitor.c is copyright of Ray Strode, David Zeuthen, and +Novell, Inc. and it's released under the terms of the GNU General Public License. +(see below). + +src/nm-netlink-monitor.h is copyright of Ray Strode and it's released under the terms of the +GNU General Public License. (see below) + +src/backends/interface_parser.c, is copyright of Tom Parker +and it's released under the terms of the GNU General Public License. (see below). + +src/backends/NetworkManagerDebian.c is copyright of Matthew Garrett +and it's released under the terms of the GNU General Public License. (see below) + +src/backends/NetworkManagerGentoo.c is copyright of Dan Williams , +Dan Willemsen , Robert Paskowitz and it's released under the terms +of the GNU General Public License. (see below). + +src/backends/NetworkManagerSlackware.c, is copyright of +Narayan Newton and it's released under the terms of +the GNU General Public License. (see below). + +src/backends/NetworkManagerSuSE.c, is copyright of Dan Williams , +Kay Sievers , Robert Love and it's released +under the terms of the GNU General Public License. (see below). + +src/backends/shvar.c, shvar.h, are copyright of Red Hat Inc and are released under the terms +of the GNU General Public License. (see below). + +src/named-manager/nm-named-manager.c, nm-named-manager.h, are copyright of +Colin Walters and are released under the terms +of the GNU General Public License. (see below). + +utils/nm-utils.c, nm-utils.h are copyright of Ray Strode and +are released under the terms of the GNU General Public License. (see below). + +initscript/Debian/NetworkManager is copyright of , +Mark Roach , Thom May + +gnome/applet/menu-info.c, menu-info.h are copyright of +Jonathan Blandford and are released under the term of +the GNU General Public License. (see below). + +gnome//nm-vpn-properties.c, nm-vpn-properties.h are copyright of +David Zeuthen, and are licensed to you +under your choice of the Academic Free License version 2.0, or the +GNU General Public License version 2. (see below) + +The rest of the source (what it's not mentioned here) +is copyright of Dan Williams and it's released under +the terms of the GNU General Public License. + +License: + + 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'. + --- network-manager-0.6.6.orig/debian/ifblacklist_migrate.sh +++ network-manager-0.6.6/debian/ifblacklist_migrate.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +# (C) 2007 Canonical Ltd. +# Author: Alexander Sack +# License: GNU General Public License, version 2 or any later version + +if test x$NIF_FILE = x; then + NIF_FILE=/etc/network/interfaces +fi + +auto_ifs=$(cat $NIF_FILE | \ + egrep "^auto|^allow-" | \ + sed -e 's/auto//' | \ + sed -e 's/allow-[^ ].* //') + +ifaces_to_disable="" + +echo Auto interfaces found: $auto_ifs + +# iterate over all auto interfaces +for i in $auto_ifs; do + IFS_old=$IFS; IFS="" + + NIF_FILE_content=$(cat $NIF_FILE | \ + sed -e 's/^[ \t]*auto.*$//' | \ + sed -e 's/^[ \t]*allow-.*$//' | \ + sed -e 's/^[ \t]*#.*$//' | grep -v ^$) + + # '--' is inserted by grep -A1 if there are multiple iface blocks + lines=$(echo $NIF_FILE_content | grep -A1 "^iface.*$i.*dhcp" | grep -v '\--') + IFS=" +" + + # if there is no iface line for that interface, we would still get a line + # count of 1 ... so use word_count 0 below to exclude ifaces that have no + # configuration at all. + word_count=$(echo $lines | wc -w) + line_count=0 + for line in $lines; do + nulled_line=$(echo $line | sed -e 's/[# ]//' | grep -v ^iface) + if test x$nulled_line != x; then + line_count=$(expr $line_count + 1) + fi + done + + if test $line_count -eq 0 -a $word_count -gt 0; then + ifaces_to_disable="$ifaces_to_disable $i" + echo iface to disable = $i + fi + IFS=$IFS_old +done + +backup_suffix=0 +while test -e ${NIF_FILE}.bak-${backup_suffix}; do + backup_suffix=$(expr $backup_suffix + 1) +done + +for i in $ifaces_to_disable; do + echo -n "Disabling interface: $i ... " + sed -i.bak-${backup_suffix} -e " +s/^\([ \t]*iface.*$i.*\)$/#\1/" $NIF_FILE + # for now don't kill any auto lines + # s/^\([ \t]*auto.*$i.*\)$/#\1/ + # s/^\([ \t]*allow-.*$i.*\)$/#\1/ + + echo done. +done --- network-manager-0.6.6.orig/debian/libnm-glib-dev.install +++ network-manager-0.6.6/debian/libnm-glib-dev.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/pkgconfig/libnm_glib.pc +debian/tmp/usr/lib/libnm_glib*.a +debian/tmp/usr/lib/libnm_glib*.so +debian/tmp/usr/include/NetworkManager/libnm_glib.h --- network-manager-0.6.6.orig/debian/libnm-glib0.install +++ network-manager-0.6.6/debian/libnm-glib0.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/libnm_glib*.so.* --- network-manager-0.6.6.orig/debian/libnm-util-dev.install +++ network-manager-0.6.6/debian/libnm-util-dev.install @@ -0,0 +1,11 @@ +debian/tmp/usr/lib/pkgconfig/libnm-util.pc +debian/tmp/usr/lib/libnm-util.a +debian/tmp/usr/lib/libnm-util.so +debian/tmp/usr/include/NetworkManager/cipher.h +debian/tmp/usr/include/NetworkManager/cipher-wep-hex.h +debian/tmp/usr/include/NetworkManager/cipher-wep-passphrase.h +debian/tmp/usr/include/NetworkManager/cipher-wep-ascii.h +debian/tmp/usr/include/NetworkManager/cipher-wpa-psk-hex.h +debian/tmp/usr/include/NetworkManager/cipher-wpa-psk-passphrase.h +debian/tmp/usr/include/NetworkManager/dbus-helpers.h +debian/tmp/usr/include/NetworkManager/dbus-method-dispatcher.h --- network-manager-0.6.6.orig/debian/libnm-util0.install +++ network-manager-0.6.6/debian/libnm-util0.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/libnm-util.so.* --- network-manager-0.6.6.orig/debian/network-manager-dev.install +++ network-manager-0.6.6/debian/network-manager-dev.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/pkgconfig/NetworkManager.pc +debian/tmp/usr/include/NetworkManager/NetworkManager.h +debian/tmp/usr/include/NetworkManager/NetworkManagerVPN.h +debian/tmp/usr/include/NetworkManager/nm-vpn-ui-interface.h --- network-manager-0.6.6.orig/debian/network-manager-dispatcher.dbus-event +++ network-manager-0.6.6/debian/network-manager-dispatcher.dbus-event @@ -0,0 +1,80 @@ +#! /bin/sh +# +# NetworkManager NetworkManagerDispatcher daemon +# Daemon for automatically switching network +# connections to the best available connection. +# This file should be placed in /etc/init.d. +# +# Authors: Christian Bjälevik +# Jan Gerber +# Mark Roach +# Thom May +# +# + +set -e + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="network events dispatcher" +NAME="NetworkManagerDispatcher" +DAEMON=/usr/sbin/$NAME +PIDDIR=/var/run/NetworkManager +PIDFILE=$PIDDIR/$NAME.pid +SCRIPTNAME=/etc/dbus-1/event.d/26$NAME +USER=root + +# Gracefully exit if the package has been removed. +test -x $DAEMON || exit 0 + +. /lib/lsb/init-functions + +test -f /etc/default/rcS && . /etc/default/rcS +test -f /etc/default/NetworkManagerDispatcher && . /etc/default/NetworkManagerDispatcher + +# +# Function that starts the daemon/service. +# +d_start() { + if [ ! -d $PIDDIR ]; then + mkdir -p $PIDDIR + chown $USER:$USER $PIDDIR + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --user $USER --exec $DAEMON -- $DAEMON_OPTS --pid-file $PIDFILE + +} + +# +# Function that stops the daemon/service. +# +d_stop() { + start-stop-daemon --stop --retry 60 --quiet --pidfile $PIDFILE \ + --oknodo --user $USER --exec $DAEMON +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + d_start + log_end_msg $? + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + d_stop + log_end_msg $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + d_stop + d_start + log_end_msg $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 --- network-manager-0.6.6.orig/debian/network-manager-dispatcher.script +++ network-manager-0.6.6/debian/network-manager-dispatcher.script @@ -0,0 +1,44 @@ +#!/bin/sh -e +# Script to dispatch NetworkManager events +# +# Runs ifupdown scripts when NetworkManager fiddles with interfaces. + +if [ -z "$1" ]; then + echo "$0: called with no interface" 1>&2 + exit 1; +fi + +# Fake ifupdown environment +export IFACE="$1" +export LOGICAL="$1" +export ADDRFAM="NetworkManager" +export METHOD="NetworkManager" +export VERBOSITY="0" + +# Run the right scripts +case "$2" in + up) + export MODE="start" + export PHASE="up" + exec run-parts /etc/network/if-up.d + ;; + down) + export MODE="stop" + export PHASE="down" + exec run-parts /etc/network/if-down.d + ;; + pre-up) + export MODE="start" + export PHASE="pre-up" + exec run-parts /etc/network/if-pre-up.d + ;; + post-down) + export MODE="stop" + export PHASE="post-down" + exec run-parts /etc/network/if-post-down.d + ;; + *) + echo "$0: called with unknown action \`$2'" 1>&2 + exit 1 + ;; +esac --- network-manager-0.6.6.orig/debian/network-manager.NEWS +++ network-manager-0.6.6/debian/network-manager.NEWS @@ -0,0 +1,17 @@ +network-manager (0.6.2-2) unstable; urgency=low + + * NetworkManager now reads the network interface configuration specified in + /etc/network/interfaces. Devices that are listed there and match certain + criteria are *not* managed by NetworkManager anymore. + For more on information on what these criteria are please read + /usr/share/doc/network-manager/README.Debian, section "Configuration". + This means that if NetworkManager stops to manage one of your network + devices with this release but you want NetworkManager to take care of this + device, simply remove the device configuration from + /etc/network/interfaces. + This also means that you can now setup a custom configuration without + NetworkManager overriding this setting. E.g. you might setup your wired + network interface eth0 statically in /etc/network/interfaces and for your + wireless network device wlan0 you can let NetworkManager handle it. + + -- Michael Biebl Wed, 10 May 2006 22:51:18 +0200 --- network-manager-0.6.6.orig/debian/network-manager.dbus-event +++ network-manager-0.6.6/debian/network-manager.dbus-event @@ -0,0 +1,88 @@ +#! /bin/sh +# +# NetworkManager NetworkManager daemon +# Daemon for automatically switching network +# connections to the best available connection. +# This file should be placed in /etc/init.d. +# +# Authors: Christian Bjälevik +# Jan Gerber +# Mark Roach +# Thom May +# +# Version: @(#)skeleton 2.85-23 28-Jul-2004 miquels@cistron.nl +# + +set -e + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="network connection manager" +NAME="NetworkManager" + +DAEMON=/usr/sbin/$NAME + +PIDDIR=/var/run/NetworkManager +PIDFILE=$PIDDIR/$NAME.pid + +SCRIPTNAME=/etc/dbus-1/event.d/25$NAME +USER=root + +# Gracefully exit if the package has been removed. +test -x $DAEMON || exit 0 + +# We need /sbin/ip +[ -x /sbin/ip ] || exit 1 + +. /lib/lsb/init-functions + +test -f /etc/default/rcS && . /etc/default/rcS +test -f /etc/default/NetworkManager && . /etc/default/NetworkManager + +# +# Function that starts the daemon/service. +# +d_start() { + if [ ! -d $PIDDIR ]; then + mkdir -p $PIDDIR + chown $USER:$USER $PIDDIR + fi + + start-stop-daemon --start --quiet --pidfile $PIDFILE \ + --user $USER --exec $DAEMON -- $DAEMON_OPTS --pid-file $PIDFILE + +} + +# +# Function that stops the daemon/service. +# +d_stop() { + start-stop-daemon --stop --retry 60 --quiet --pidfile $PIDFILE \ + --oknodo --user $USER --exec $DAEMON + +} + + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + d_start + log_end_msg $? + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + d_stop + log_end_msg $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + d_stop + d_start + log_end_msg $? + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 --- network-manager-0.6.6.orig/debian/network-manager.dirs +++ network-manager-0.6.6/debian/network-manager.dirs @@ -0,0 +1,4 @@ +etc/dbus-1/event.d +etc/NetworkManager/dispatcher.d +var/lib/NetworkManager +usr/share/gnome-vpn-properties --- network-manager-0.6.6.orig/debian/network-manager.install +++ network-manager-0.6.6/debian/network-manager.install @@ -0,0 +1,8 @@ +debian/tmp/usr/sbin/NetworkManager +debian/tmp/usr/sbin/NetworkManagerDispatcher +debian/tmp/usr/lib/network-manager +debian/tmp/etc/dbus-1/system.d/NetworkManager.conf +debian/tmp/usr/bin/nm-vpn-properties usr/lib/network-manager +debian/tmp/usr/share/gnome-vpn-properties/nm-vpn-properties.glade +debian/ifblacklist_migrate.sh /usr/lib/network-manager +test/nm-tool /usr/bin/ --- network-manager-0.6.6.orig/debian/network-manager.manpages +++ network-manager-0.6.6/debian/network-manager.manpages @@ -0,0 +1,4 @@ +man/NetworkManagerDispatcher.8 +man/nm-tool.1 +man/NetworkManager.8 +debian/nm-vpn-properties.1 --- network-manager-0.6.6.orig/debian/network-manager.postinst +++ network-manager-0.6.6/debian/network-manager.postinst @@ -0,0 +1,32 @@ +#!/bin/sh + +set -eu + +case "$1" in + configure) + if dpkg --compare-versions "$2" "lt-nl" 0.6.5-0ubuntu12; then + sh /usr/lib/network-manager/ifblacklist_migrate.sh + sleep 2 + fi + + if [ -x "/etc/init.d/dbus" ]; then + RESULT=0 + invoke-rc.d --disclose-deny dbus force-reload || RESULT=$? + + if [ ${RESULT} -eq 0 ]; then + # Only run dbus actions if invoke-rc.d returned 0 + if [ -x "/etc/dbus-1/event.d/25NetworkManager" ]; then + /etc/dbus-1/event.d/25NetworkManager restart + fi + + if [ -x "/etc/dbus-1/event.d/26NetworkManagerDispatcher" ]; then + /etc/dbus-1/event.d/26NetworkManagerDispatcher restart + fi + fi + fi + ;; +esac + +#DEBHELPER# + +exit 0 --- network-manager-0.6.6.orig/debian/network-manager.prerm +++ network-manager-0.6.6/debian/network-manager.prerm @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +case "$1" in + remove) + /etc/dbus-1/event.d/25NetworkManager stop + /etc/dbus-1/event.d/26NetworkManagerDispatcher stop + ;; +esac + +#DEBHELPER# + +exit 0 --- network-manager-0.6.6.orig/debian/nm-vpn-properties.sgml +++ network-manager-0.6.6/debian/nm-vpn-properties.sgml @@ -0,0 +1,95 @@ + 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-vpn-properties + 1 + + + &package; + + Network management framework + + + + &package; + + + + DESCRIPTION + + &package; is the gnome front-end for the NetworkManager VPN handler + + + SEE ALSO + + NetworkManager (1), nm-applet (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-0.6.6.orig/debian/patches/01-supplicant_timeout.patch +++ network-manager-0.6.6/debian/patches/01-supplicant_timeout.patch @@ -0,0 +1,12 @@ +diff -Nur bzr.debian.0.9.4.patchupdate/src/nm-device-802-11-wireless.c bzr.debian.0.9.4.patchupdate.new/src/nm-device-802-11-wireless.c +--- bzr.debian.0.9.4.patchupdate/src/nm-device-802-11-wireless.c 2007-06-25 17:14:46.000000000 +0200 ++++ bzr.debian.0.9.4.patchupdate.new/src/nm-device-802-11-wireless.c 2007-06-25 17:15:46.000000000 +0200 +@@ -2329,7 +2329,7 @@ + } + + +-#define NM_SUPPLICANT_TIMEOUT 20 /* how long we wait for wpa_supplicant to associate (in seconds) */ ++#define NM_SUPPLICANT_TIMEOUT 60 /* how long we wait for wpa_supplicant to associate (in seconds) */ + + static unsigned int + get_supplicant_timeout (NMDevice80211Wireless *self) --- network-manager-0.6.6.orig/debian/patches/02-dbus_access_network_manager.patch +++ network-manager-0.6.6/debian/patches/02-dbus_access_network_manager.patch @@ -0,0 +1,14 @@ +diff -Nur bzr.debian.0.9.4.patchupdate/src/NetworkManager.conf bzr.debian.0.9.4.patchupdate.new/src/NetworkManager.conf +--- bzr.debian.0.9.4.patchupdate/src/NetworkManager.conf 2007-06-25 17:14:46.000000000 +0200 ++++ bzr.debian.0.9.4.patchupdate.new/src/NetworkManager.conf 2007-06-25 17:15:51.000000000 +0200 +@@ -8,6 +8,10 @@ + + + ++ ++ ++ ++ + + + --- network-manager-0.6.6.orig/debian/patches/05-debian_backend.patch +++ network-manager-0.6.6/debian/patches/05-debian_backend.patch @@ -0,0 +1,357 @@ +diff --git a/src/backends/NetworkManagerDebian.c b/src/backends/NetworkManagerDebian.c +index 740572a..93c2914 100644 +Binary files bzr.debian.0.9.5/.bzr/checkout/dirstate and bzr.debian.0.9.5.new/.bzr/checkout/dirstate differ +diff -Nur bzr.debian.0.9.5/src/backends/NetworkManagerDebian.c bzr.debian.0.9.5.new/src/backends/NetworkManagerDebian.c +--- bzr.debian.0.9.5/src/backends/NetworkManagerDebian.c 2007-06-25 15:18:17.000000000 +0000 ++++ bzr.debian.0.9.5.new/src/backends/NetworkManagerDebian.c 2007-06-25 16:03:45.000000000 +0000 +@@ -41,6 +41,7 @@ + #include "nm-utils.h" + + #define ARPING "/usr/sbin/arping" ++#define RESOLVCONF "resolvconf" + + /* + * nm_system_init +@@ -242,14 +243,14 @@ + /* + * nm_system_update_dns + * +- * Make glibc/nscd aware of any changes to the resolv.conf file by +- * restarting nscd. ++ * Invalidate the nscd host cache, if it exists, since ++ * we changed resolv.conf. + * + */ + void nm_system_update_dns (void) + { +- nm_spawn_process ("/usr/sbin/invoke-rc.d nscd restart"); +- ++ nm_info ("Clearing nscd hosts cache."); ++ nm_spawn_process ("/usr/sbin/nscd -i hosts"); + } + + +@@ -514,13 +515,60 @@ + /* + * nm_system_device_get_disabled + * +- * Return whether the distro-specific system config tells us to use +- * dhcp for this device. ++ * Return whether the distro-specific system config tells us to disable ++ * this device. + * + */ + gboolean nm_system_device_get_disabled (NMDevice *dev) + { +- return FALSE; ++ const char *iface; ++ if_block *curr_device, *curr_b; ++ if_data *curr_d; ++ gboolean blacklist = TRUE; ++ ++ g_return_val_if_fail (dev != NULL, TRUE); ++ ++ iface = nm_device_get_iface (dev); ++ ++ ifparser_init (); ++ ++ /* If the device is listed in a mapping, do not control it */ ++ if (ifparser_getmapping (iface) != NULL) { ++ blacklist = TRUE; ++ goto out; ++ } ++ ++ /* If the interface isn't listed in /etc/network/interfaces then ++ * it's considered okay to control it. ++ */ ++ curr_device = ifparser_getif (iface); ++ if (curr_device == NULL) { ++ blacklist = FALSE; ++ goto out; ++ } ++ ++ /* If the interface is listed and isn't marked "auto" then it's ++ * definitely not okay to control it. ++ */ ++ for (curr_b = ifparser_getfirst (); curr_b; curr_b = curr_b->next) { ++ if ((!strcmp (curr_b->type, "auto") || !strcmp (curr_b->type, "allow-hotplug")) ++ && strstr (curr_b->name, iface)) ++ blacklist = TRUE; ++ } ++ ++ /* If the interface has no options other than just "inet dhcp" ++ * it's probably ok to fiddle with it. ++ */ ++ for (curr_d = curr_device->info; curr_d; curr_d = curr_d->next) { ++ if (strcmp (curr_d->key, "inet") ++ || strcmp (curr_d->data, "dhcp" )) ++ blacklist = TRUE; ++ } ++ ++out: ++ ifparser_destroy (); ++ ++ return blacklist; + } + + +@@ -563,12 +611,18 @@ + if (strcmp (dialup, config->name) == 0) + { + char *cmd; ++ int status; + + nm_info ("Deactivating dialup device %s (%s) ...", dialup, (char *) config->data); + cmd = g_strdup_printf ("/sbin/ifdown %s", (char *) config->data); + nm_spawn_process (cmd); + g_free (cmd); +- ret = TRUE; ++ if (status == 0) { ++ ret = TRUE; ++ } else { ++ nm_warning ("Couldn't deactivate dialup device %s (%s) - %d", dialup, (char *) config->data, status); ++ ret = FALSE; ++ } + break; + } + } +@@ -587,12 +641,18 @@ + if (strcmp (dialup, config->name) == 0) + { + char *cmd; ++ int status; + + nm_info ("Activating dialup device %s (%s) ...", dialup, (char *) config->data); + cmd = g_strdup_printf ("/sbin/ifup %s", (char *) config->data); + nm_spawn_process (cmd); + g_free (cmd); +- ret = TRUE; ++ if (status == 0) { ++ ret = TRUE; ++ } else { ++ nm_warning ("Couldn't activate dialup device %s (%s) - %d", dialup, (char *) config->data, status); ++ ret = FALSE; ++ } + break; + } + } +@@ -603,23 +663,26 @@ + GSList * nm_system_get_dialup_config (void) + { + const char *buf; +- unsigned int i = 0; ++ const char *provider; + GSList *list = NULL; + if_block *curr; + ifparser_init(); + + /* FIXME: get all ppp(and others?) lines from /e/n/i here */ + curr = ifparser_getfirst(); +- while(curr!=NULL) ++ while (curr != NULL) + { + NMDialUpConfig *config; +- if (strcmp(curr->type,"iface")==0) ++ if (strcmp(curr->type, "iface") == 0) + { +- buf = ifparser_getkey(curr,"inet"); +- if (buf && strcmp (buf, "ppp")==0) ++ buf = ifparser_getkey(curr, "inet"); ++ if (buf && strcmp (buf, "ppp") == 0) + { ++ provider = ifparser_getkey(curr, "provider"); ++ if (!provider) ++ provider = "default provider"; + config = g_malloc (sizeof (NMDialUpConfig)); +- config->name = g_strdup_printf ("Modem (#%d)", i++); ++ config->name = g_strdup_printf ("%s via Modem", provider); + config->data = g_strdup (curr->name); /* interface name */ + + list = g_slist_append (list, config); +@@ -631,14 +694,6 @@ + } + ifparser_destroy(); + +- /* Hack: Go back and remove the "(#0)" if there is only one device */ +- if (i == 1) +- { +- NMDialUpConfig *config = (NMDialUpConfig *) list->data; +- g_free (config->name); +- config->name = g_strdup ("Modem"); +- } +- + return list; + } + +@@ -679,7 +734,10 @@ + */ + gboolean nm_system_should_modify_resolv_conf (void) + { +- return TRUE; ++ if (g_find_program_in_path(RESOLVCONF) != NULL) ++ return FALSE; ++ else ++ return TRUE; + } + + +diff -Nur bzr.debian.0.9.5/src/backends/interface_parser.c bzr.debian.0.9.5.new/src/backends/interface_parser.c +--- bzr.debian.0.9.5/src/backends/interface_parser.c 2007-06-25 15:18:17.000000000 +0000 ++++ bzr.debian.0.9.5.new/src/backends/interface_parser.c 2007-06-25 16:04:05.000000000 +0000 +@@ -73,14 +73,18 @@ + //printf("added data '%s' with key '%s'\n",data,key); + } + +-#define SPACE_OR_TAB(string,ret) {ret = strchr(string,' ');ret=(ret == NULL?strchr(string,'\t'):ret);} ++// define what we consider a whitespace ++#define WS " \t" + + void ifparser_init(void) + { + FILE *inp = fopen(INTERFACES,"r"); + int ret = 0; ++ int pos; ++ int len; + char *line; +- char *space; ++ char *key; ++ char *data; + char rline[255]; + + if (inp == NULL) +@@ -91,7 +95,7 @@ + first = last = NULL; + while(1) + { +- line = space = NULL; ++ line = NULL; + ret = fscanf(inp,"%255[^\n]\n",rline); + if (ret == EOF) + break; +@@ -104,50 +108,71 @@ + line = rline; + while(line[0] == ' ') + line++; +- if (line[0]=='#' || line[0]=='\0') ++ if (line[0] == '#' || line[0] == '\0') + continue; + +- SPACE_OR_TAB(line,space) +- if (space == NULL) ++ len = strlen(line); ++ pos = 0; ++ while (!strchr(WS, line[pos]) && pos < len) pos++; ++ ++ // terminate key string and skip further whitespaces ++ line[pos++] = '\0'; ++ while (strchr(WS, line[pos]) && pos < len) pos++; ++ ++ if (pos >= len) + { +- nm_warning ("Error: Can't parse interface line '%s'\n",line); ++ nm_warning ("Error: Can't parse line '%s'\n", line); + continue; + } +- space[0] = '\0'; +- ++ key = &line[0]; ++ data = &line[pos]; ++ + // There are four different stanzas: + // iface, mapping, auto and allow-*. Create a block for each of them. +- if (strcmp(line,"iface")==0) ++ if (strcmp(key, "iface") == 0) + { +- char *space2 = strchr(space+1,' '); +- if (space2 == NULL) ++ char *key2; ++ ++ while (!strchr(WS, line[pos]) && pos < len ) pos++; ++ ++ // terminate first data string and skip further whitespaces ++ line[pos++] = '\0'; ++ while (strchr(WS, line[pos]) && pos < len) pos++; ++ if (pos >= len) + { +- nm_warning ("Error: Can't parse iface line '%s'\n",space+1); ++ nm_warning ("Error: Can't parse iface line '%s'\n", data); + continue; + } +- space2[0]='\0'; +- add_block(line,space+1); ++ key2 = &line[pos]; ++ ++ add_block(key, data); + +- if (space2[1]!='\0') ++ if (pos < len) + { +- space = strchr(space2+1,' '); +- if (space == NULL) ++ ++ while (!strchr(WS, line[pos]) && pos < len ) pos++; ++ ++ // terminate key2 string and skip further whitespaces ++ line[pos++] = '\0'; ++ while (strchr(WS, line[pos]) && pos < len) pos++; ++ if (pos >= len) + { +- nm_warning ("Error: Can't parse data '%s'\n",space2+1); ++ nm_warning ("Error: Can't parse inet line '%s'\n", key2); + continue; + } +- space[0] = '\0'; +- add_data(space2+1,space+1); ++ data = &line[pos]; ++ ++ add_data(key2, data); + } + } +- else if (strcmp(line,"auto")==0) +- add_block(line,space+1); +- else if (strcmp(line,"mapping")==0) +- add_block(line,space+1); +- else if (strncmp(line,"allow-",6)==0) +- add_block(line,space+1); ++ else if (strcmp(key, "auto") == 0) ++ add_block(key, data); ++ else if (strcmp(key, "mapping") == 0) ++ add_block(key, data); ++ else if (strncmp(key, "allow-", 6) == 0) ++ add_block(key, data); + else +- add_data(line,space+1); ++ add_data(key, data); + + //printf("line: '%s' ret=%d\n",rline,ret); + } +@@ -200,6 +225,18 @@ + return NULL; + } + ++if_block *ifparser_getmapping(const char* iface) ++{ ++ if_block *curr = first; ++ while(curr!=NULL) ++ { ++ if (strcmp(curr->type,"mapping")==0 && strcmp(curr->name,iface)==0) ++ return curr; ++ curr = curr->next; ++ } ++ return NULL; ++} ++ + const char *ifparser_getkey(if_block* iface, const char *key) + { + if_data *curr = iface->info; +diff -Nur bzr.debian.0.9.5/src/backends/interface_parser.h bzr.debian.0.9.5.new/src/backends/interface_parser.h +--- bzr.debian.0.9.5/src/backends/interface_parser.h 2007-06-25 15:14:46.000000000 +0000 ++++ bzr.debian.0.9.5.new/src/backends/interface_parser.h 2007-06-25 16:03:45.000000000 +0000 +@@ -44,6 +44,7 @@ + void ifparser_destroy(void); + + if_block *ifparser_getif(const char* iface); ++if_block *ifparser_getmapping(const char* iface); + if_block *ifparser_getfirst(void); + const char *ifparser_getkey(if_block* iface, const char *key); + --- network-manager-0.6.6.orig/debian/patches/06-dispatch_more_events.patch +++ network-manager-0.6.6/debian/patches/06-dispatch_more_events.patch @@ -0,0 +1,194 @@ +--- + dispatcher-daemon/NetworkManagerDispatcher.c | 18 +++++++++++++++--- + man/NetworkManagerDispatcher.8.in | 8 ++++++-- + src/NetworkManagerDbus.c | 1 + + src/NetworkManagerDbus.h | 1 + + src/nm-device.c | 1 + + 5 files changed, 24 insertions(+), 5 deletions(-) + +Index: network-manager.debian/dispatcher-daemon/NetworkManagerDispatcher.c +=================================================================== +--- network-manager.debian.orig/dispatcher-daemon/NetworkManagerDispatcher.c ++++ network-manager.debian/dispatcher-daemon/NetworkManagerDispatcher.c +@@ -39,16 +39,18 @@ + #include "nm-utils.h" + + + enum NMDAction + { + NMD_DEVICE_DONT_KNOW, + NMD_DEVICE_NOW_INACTIVE, + NMD_DEVICE_NOW_ACTIVE, ++ NMD_DEVICE_GOING_INACTIVE, ++ NMD_DEVICE_GOING_ACTIVE, + }; + typedef enum NMDAction NMDAction; + + + #define NM_SCRIPT_DIR SYSCONFDIR"/NetworkManager/dispatcher.d" + + #define NMD_DEFAULT_PID_FILE LOCALSTATEDIR"/run/NetworkManagerDispatcher.pid" + +@@ -90,16 +92,20 @@ + { + GDir * dir; + const char * file_name; + const char * char_act; + + if (action == NMD_DEVICE_NOW_ACTIVE) + char_act = "up"; + else if (action == NMD_DEVICE_NOW_INACTIVE) ++ char_act = "post-down"; ++ else if (action == NMD_DEVICE_GOING_ACTIVE) ++ char_act = "pre-up"; ++ else if (action == NMD_DEVICE_GOING_INACTIVE) + char_act = "down"; + else + return; + + if (!(dir = g_dir_open (NM_SCRIPT_DIR, 0, NULL))) + { + nm_warning ("nmd_execute_scripts(): opendir() could not open '" NM_SCRIPT_DIR "'. errno = %d", errno); + return; +@@ -212,35 +218,41 @@ + { + dbus_connection_unref (connection); + connection = NULL; + g_timeout_add (3000, nmd_reinit_dbus, NULL); + handled = TRUE; + } + + if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNoLongerActive")) +- action = NMD_DEVICE_NOW_INACTIVE; ++ action = NMD_DEVICE_GOING_INACTIVE; + else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNowActive")) + action = NMD_DEVICE_NOW_ACTIVE; ++ else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceActivating")) ++ action = NMD_DEVICE_GOING_ACTIVE; ++ else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceDeactivated")) ++ action = NMD_DEVICE_NOW_INACTIVE; + + if (action != NMD_DEVICE_DONT_KNOW) + { + if (dbus_message_get_args (message, &error, DBUS_TYPE_OBJECT_PATH, &dev_object_path, DBUS_TYPE_INVALID)) + { + char * dev_iface_name = NULL; + + dev_object_path = nm_dbus_unescape_object_path (dev_object_path); + if (dev_object_path) + dev_iface_name = nmd_get_device_name (connection, dev_object_path); + + if (dev_object_path && dev_iface_name) + { + nm_info ("Device %s (%s) is now %s.", dev_object_path, dev_iface_name, +- (action == NMD_DEVICE_NOW_INACTIVE ? "down" : +- (action == NMD_DEVICE_NOW_ACTIVE ? "up" : "error"))); ++ (action == NMD_DEVICE_NOW_INACTIVE ? "going down" : ++ (action == NMD_DEVICE_NOW_ACTIVE ? "up" : ++ (action == NMD_DEVICE_GOING_INACTIVE ? "going down" : ++ (action == NMD_DEVICE_GOING_ACTIVE ? "going up" : "error"))))); + + nmd_execute_scripts (action, dev_iface_name); + } + + g_free (dev_object_path); + g_free (dev_iface_name); + + handled = TRUE; +Index: network-manager.debian/src/NetworkManagerDbus.c +=================================================================== +--- network-manager.debian.orig/src/NetworkManagerDbus.c ++++ network-manager.debian/src/NetworkManagerDbus.c +@@ -197,16 +197,17 @@ + } DeviceStatusSignals; + + static DeviceStatusSignals dev_status_signals[] = + { + { DEVICE_NO_LONGER_ACTIVE, "DeviceNoLongerActive" }, + { DEVICE_NOW_ACTIVE, "DeviceNowActive" }, + { DEVICE_ACTIVATING, "DeviceActivating" }, + { DEVICE_ACTIVATION_FAILED, "DeviceActivationFailed" }, ++ { DEVICE_DEACTIVATED, "DeviceDeactivated" }, + { DEVICE_ADDED, "DeviceAdded" }, + { DEVICE_REMOVED, "DeviceRemoved" }, + { DEVICE_CARRIER_ON, "DeviceCarrierOn" }, + { DEVICE_CARRIER_OFF, "DeviceCarrierOff" }, + { DEVICE_STATUS_INVALID, NULL } + }; + + /* +Index: network-manager.debian/src/NetworkManagerDbus.h +=================================================================== +--- network-manager.debian.orig/src/NetworkManagerDbus.h ++++ network-manager.debian/src/NetworkManagerDbus.h +@@ -35,16 +35,17 @@ + typedef enum + { + DEVICE_STATUS_INVALID, + DEVICE_NOW_ACTIVE, + DEVICE_NO_LONGER_ACTIVE, + DEVICE_ACTIVATING, + DEVICE_ACTIVATION_FAILED, + DEVICE_ACTIVATION_CANCELED, ++ DEVICE_DEACTIVATED, + DEVICE_ADDED, + DEVICE_REMOVED, + DEVICE_CARRIER_ON, + DEVICE_CARRIER_OFF + } DeviceStatus; + + + static inline gboolean message_is_error (DBusMessage *msg) +Index: network-manager.debian/src/nm-device.c +=================================================================== +--- network-manager.debian.orig/src/nm-device.c ++++ network-manager.debian/src/nm-device.c +@@ -1494,16 +1494,17 @@ + nm_system_device_flush_addresses (self); + nm_device_update_ip4_address (self); + + /* Call device type-specific deactivation */ + if (NM_DEVICE_GET_CLASS (self)->deactivate) + NM_DEVICE_GET_CLASS (self)->deactivate (self); + + nm_schedule_state_change_signal_broadcast (self->priv->app_data); ++ nm_dbus_schedule_device_status_change_signal (self->priv->app_data, self, NULL, DEVICE_DEACTIVATED); + } + + + /* + * nm_device_is_activating + * + * Return whether or not the device is currently activating itself. + * +Index: network-manager.debian/man/NetworkManagerDispatcher.8.in +=================================================================== +--- network-manager.debian.orig/man/NetworkManagerDispatcher.8.in ++++ network-manager.debian/man/NetworkManagerDispatcher.8.in +@@ -8,20 +8,24 @@ + .SH SYNOPSIS + .B NetworkManagerDispatcher [\-\-no-daemon] + .SH DESCRIPTION + The \fINetworkManagerDispatcher\fP daemon runs commands in the + .I @sysconfdir@/NetworkManager/dispatcher.d + directory in response to interfaces coming up and down. The scripts are run + alphabetically. The first parameter is the network interface name. The second + parameter is ++.I pre\-up ++before bringing the interface up, + .I up +-if the interface is now up and ++after bringing the interface up, + .I down +-if the interface is now down. ++before taking the interface down and ++.I post\-down ++after taking the interface down. + .SH OPTIONS + The following options are supported: + .TP + .I "--no-daemon" + Do not daemonize. This is useful for debugging. + .SH FILES + @sysconfdir@/NetworkManager/dispatcher.d + .SH SEE ALSO --- network-manager-0.6.6.orig/debian/patches/16_undefined_macros.patch +++ network-manager-0.6.6/debian/patches/16_undefined_macros.patch @@ -0,0 +1,19 @@ +diff -Nur bzr.debian.0.9.5/src/nm-netlink-monitor.c bzr.debian.0.9.5.new/src/nm-netlink-monitor.c +--- bzr.debian.0.9.5/src/nm-netlink-monitor.c 2007-06-25 17:18:17.000000000 +0200 ++++ bzr.debian.0.9.5.new/src/nm-netlink-monitor.c 2007-06-25 17:33:45.000000000 +0200 +@@ -53,6 +53,15 @@ + #define NM_NETLINK_MONITOR_DISCONNECT_CONDITIONS \ + ((GIOCondition) (G_IO_HUP)) + ++#include ++#ifndef IFLA_RTA ++#define IFLA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg)))) ++#endif ++ ++#ifndef IFLA_PAYLOAD ++#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg)) ++#endif ++ + struct NMData; + struct _NmNetlinkMonitorPrivate + { --- network-manager-0.6.6.orig/debian/patches/17_avahi_autoipd.patch +++ network-manager-0.6.6/debian/patches/17_avahi_autoipd.patch @@ -0,0 +1,82 @@ +diff -Nur bzr.debian.0.9.4.patchupdate/src/dhcp-manager/nm-dhcp-manager.c bzr.debian.0.9.4.patchupdate.new/src/dhcp-manager/nm-dhcp-manager.c +--- bzr.debian.0.9.4.patchupdate/src/dhcp-manager/nm-dhcp-manager.c 2007-06-25 17:14:46.000000000 +0200 ++++ bzr.debian.0.9.4.patchupdate.new/src/dhcp-manager/nm-dhcp-manager.c 2007-06-25 17:16:23.000000000 +0200 +@@ -34,7 +34,7 @@ + #include "nm-utils.h" + + +-#define NM_DHCP_TIMEOUT 45 /* DHCP timeout, in seconds */ ++#define NM_DHCP_TIMEOUT 99 /* DHCP timeout, in seconds */ + + struct NMDHCPManager + { +@@ -681,6 +681,7 @@ + } + break; + ++ case DHCDBD_FAIL: /* all attempts to contact server timed out, sleeping */ + case DHCDBD_TIMEOUT: /* timed out contacting DHCP server */ + if (nm_act_request_get_stage (req) == NM_ACT_STAGE_IP_CONFIG_START) + { +@@ -689,7 +690,6 @@ + } + break; + +- case DHCDBD_FAIL: /* all attempts to contact server timed out, sleeping */ + case DHCDBD_ABEND: /* dhclient exited abnormally */ + // case DHCDBD_END: /* dhclient exited normally */ + if (nm_act_request_get_stage (req) == NM_ACT_STAGE_IP_CONFIG_START) +diff -Nur bzr.debian.0.9.4.patchupdate/src/nm-device.c bzr.debian.0.9.4.patchupdate.new/src/nm-device.c +--- bzr.debian.0.9.4.patchupdate/src/nm-device.c 2007-06-25 17:16:23.000000000 +0200 ++++ bzr.debian.0.9.4.patchupdate.new/src/nm-device.c 2007-06-25 17:16:23.000000000 +0200 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "nm-device.h" + #include "nm-device-private.h" +@@ -912,17 +913,22 @@ + NMIP4Config * + nm_device_new_ip4_autoip_config (NMDevice *self) + { +- struct in_addr ip; + NMIP4Config * config = NULL; + + g_return_val_if_fail (self != NULL, NULL); + +- if (get_autoip (self, &ip)) +- { ++ /* check if avahi-autoipd is running on the interface */ ++ char* argv[] = { "/usr/sbin/avahi-autoipd", "--check", nm_device_get_iface(self), NULL }; ++ gint exit_status; ++ if (g_spawn_sync (NULL, argv, NULL, 0, NULL, NULL, NULL, NULL, ++ &exit_status, NULL) && WIFEXITED(exit_status) && ++ WEXITSTATUS(exit_status) == 0) { + #define LINKLOCAL_BCAST 0xa9feffff + + config = nm_ip4_config_new (); +- nm_ip4_config_set_address (config, (guint32)(ip.s_addr)); ++ ++ nm_info ("avahi-autoipd running on %s, assuming IPv4LL address", nm_device_get_iface (self)); ++ nm_ip4_config_set_address (config, 0); /* to indicate that it shouldn't be touched */ + nm_ip4_config_set_netmask (config, (guint32)(ntohl (0xFFFF0000))); + nm_ip4_config_set_broadcast (config, (guint32)(ntohl (LINKLOCAL_BCAST))); + nm_ip4_config_set_gateway (config, 0); +@@ -1174,6 +1180,15 @@ + if (nm_device_activation_should_cancel (self)) + goto out; + ++ /* device was configured externally (e. g. from a DHCP exit hook ++ * script), do not touch it */ ++ if (nm_ip4_config_get_address(ip4_config) == 0) { ++ nm_info("not touching %s configuration, was configured externally", ++ nm_device_get_iface (self)); ++ nm_policy_schedule_activation_finish (req); ++ goto out; ++ } ++ + nm_device_set_ip4_config (self, ip4_config); + if (nm_system_device_set_from_ip4_config (self)) + { --- network-manager-0.6.6.orig/debian/patches/19_interfaces_can_have_more_than_one_instance.patch +++ network-manager-0.6.6/debian/patches/19_interfaces_can_have_more_than_one_instance.patch @@ -0,0 +1,74 @@ +diff -Nur bzr.debian.0.9.4.patchupdate/src/backends/interface_parser.c bzr.debian.0.9.4.patchupdate.new/src/backends/interface_parser.c +--- bzr.debian.0.9.4.patchupdate/src/backends/interface_parser.c 2007-06-25 17:16:30.000000000 +0200 ++++ bzr.debian.0.9.4.patchupdate.new/src/backends/interface_parser.c 2007-06-25 17:16:31.000000000 +0200 +@@ -32,7 +32,7 @@ + + if_data* last_data; + +-void add_block(const char *type, const char* name) ++if_block *add_block(const char *type, const char* name) + { + if_block *ret = (if_block*)calloc(1,sizeof(struct _if_block)); + ret->name = g_strdup(name); +@@ -46,6 +46,7 @@ + } + last_data = NULL; + //printf("added block '%s' with type '%s'\n",name,type); ++ return ret; + } + + void add_data(const char *key,const char *data) +@@ -132,6 +133,7 @@ + if (strcmp(key, "iface") == 0) + { + char *key2; ++ if_block *old, *new; + + while (!strchr(WS, line[pos]) && pos < len ) pos++; + +@@ -144,8 +146,23 @@ + continue; + } + key2 = &line[pos]; +- +- add_block(key, data); ++ ++ // check if we already have an instance of iface foo. ++ old = ifparser_getif(data); ++ ++ new = add_block(key, data); ++ ++ // if we do have an instance of iface foo, make sure the new ++ // is linked from the old one. ++ ++ if ((old) && (old != new)) ++ { ++ while (old->nextsame != 0) ++ { ++ old=old->nextsame; ++ } ++ old->nextsame=new; ++ } + + if (pos < len) + { +diff -Nur bzr.debian.0.9.4.patchupdate/src/backends/interface_parser.h bzr.debian.0.9.4.patchupdate.new/src/backends/interface_parser.h +--- bzr.debian.0.9.4.patchupdate/src/backends/interface_parser.h 2007-06-25 17:16:30.000000000 +0200 ++++ bzr.debian.0.9.4.patchupdate.new/src/backends/interface_parser.h 2007-06-25 17:16:31.000000000 +0200 +@@ -38,6 +38,7 @@ + char *name; + if_data *info; + struct _if_block *next; ++ struct _if_block *nextsame; + } if_block; + + void ifparser_init(void); +@@ -48,7 +49,7 @@ + if_block *ifparser_getfirst(void); + const char *ifparser_getkey(if_block* iface, const char *key); + +-void add_block(const char *type, const char* name); ++if_block *add_block(const char *type, const char* name); + void add_data(const char *key,const char *data); + void _destroy_data(if_data *ifd); + void _destroy_block(if_block* ifb); --- network-manager-0.6.6.orig/debian/patches/20_do_not_take_over_dhcpv4iface_when_v6_is_configured.patch +++ network-manager-0.6.6/debian/patches/20_do_not_take_over_dhcpv4iface_when_v6_is_configured.patch @@ -0,0 +1,32 @@ +diff -Nur bzr.debian.0.9.4.patchupdate/src/backends/NetworkManagerDebian.c bzr.debian.0.9.4.patchupdate.new/src/backends/NetworkManagerDebian.c +--- bzr.debian.0.9.4.patchupdate/src/backends/NetworkManagerDebian.c 2007-06-25 17:16:32.000000000 +0200 ++++ bzr.debian.0.9.4.patchupdate.new/src/backends/NetworkManagerDebian.c 2007-06-25 17:16:33.000000000 +0200 +@@ -556,6 +556,28 @@ + blacklist = FALSE; + } + ++ /* handle some ipv6 situations */ ++ ++ curr_b = curr_device; ++ ++ /* NM does not know how to handle ipv6 interfaces */ ++ if (ifparser_getkey(curr_b, "inet6")) { ++ blacklist = TRUE; ++ goto out; ++ } ++ ++ /* if we have a have an inet dhcp interface and later an inet6 stanza ++ * we blacklist it. ++ */ ++ if (ifparser_getkey(curr_b, "inet") && strcmp (ifparser_getkey(curr_b, "inet"),"dhcp") == 0) { ++ while (curr_b->nextsame != 0) { ++ curr_b = curr_b->nextsame; ++ if (ifparser_getkey(curr_b, "inet6")) { ++ blacklist = TRUE; ++ } ++ } ++ } ++ + /* If the interface has no options other than just "inet dhcp" + * it's probably ok to fiddle with it. + */ --- network-manager-0.6.6.orig/debian/patches/21_manual_means_always_online.diff +++ network-manager-0.6.6/debian/patches/21_manual_means_always_online.diff @@ -0,0 +1,36 @@ +diff -Nur bzr.debian.0.9.5/src/NetworkManagerDbus.c bzr.debian.0.9.5.new/src/NetworkManagerDbus.c +--- bzr.debian.0.9.5/src/NetworkManagerDbus.c 2007-06-25 17:38:42.000000000 +0200 ++++ bzr.debian.0.9.5.new/src/NetworkManagerDbus.c 2007-06-25 17:38:42.000000000 +0200 +@@ -302,6 +302,9 @@ + if (data->asleep == TRUE) + return NM_STATE_ASLEEP; + ++ if (data->always_online == TRUE) ++ return NM_STATE_CONNECTED; ++ + act_dev = nm_get_active_device (data); + if (!act_dev && !data->modem_active) + return NM_STATE_DISCONNECTED; +diff -Nur bzr.debian.0.9.5/src/NetworkManagerMain.h bzr.debian.0.9.5.new/src/NetworkManagerMain.h +--- bzr.debian.0.9.5/src/NetworkManagerMain.h 2007-06-25 17:18:17.000000000 +0200 ++++ bzr.debian.0.9.5.new/src/NetworkManagerMain.h 2007-06-25 17:38:42.000000000 +0200 +@@ -86,6 +86,7 @@ + gboolean modem_active; + gboolean asleep; + gboolean disconnected; ++ gboolean always_online; + + GSList * dialup_list; + GMutex * dialup_list_mutex; +diff -Nur bzr.debian.0.9.5/src/nm-device.c bzr.debian.0.9.5.new/src/nm-device.c +--- bzr.debian.0.9.5/src/nm-device.c 2007-06-25 17:38:42.000000000 +0200 ++++ bzr.debian.0.9.5.new/src/nm-device.c 2007-06-25 17:38:42.000000000 +0200 +@@ -195,6 +195,8 @@ + /* Allow distributions to flag devices as disabled */ + if (nm_system_device_get_disabled (dev)) + { ++ /* In this case, we assume we're always online */ ++ app_data->always_online = TRUE; + g_object_unref (G_OBJECT (dev)); + return NULL; + } --- network-manager-0.6.6.orig/debian/patches/23_nm-monitor-eni.diff +++ network-manager-0.6.6/debian/patches/23_nm-monitor-eni.diff @@ -0,0 +1,230 @@ +=== modified file 'src/NetworkManager.c' +Binary files bzr.debian.0.9.5/.bzr/checkout/dirstate and bzr.debian.0.9.5.new/.bzr/checkout/dirstate differ +diff -Nur bzr.debian.0.9.5/src/backends/NetworkManagerDebian.c bzr.debian.0.9.5.new/src/backends/NetworkManagerDebian.c +--- bzr.debian.0.9.5/src/backends/NetworkManagerDebian.c 2007-06-25 17:40:34.000000000 +0200 ++++ bzr.debian.0.9.5.new/src/backends/NetworkManagerDebian.c 2007-06-25 17:40:34.000000000 +0200 +@@ -31,7 +31,11 @@ + #include + #include + #include ++#include ++#include + #include "NetworkManagerSystem.h" ++#include "NetworkManagerDbus.h" ++#include "NetworkManagerPolicy.h" + #include "NetworkManagerUtils.h" + #include "nm-device.h" + #include "nm-device-802-3-ethernet.h" +@@ -43,14 +47,178 @@ + #define ARPING "/usr/sbin/arping" + #define RESOLVCONF "resolvconf" + ++/* taken from NetworkManager.c */ ++static char *nm_get_device_interface_from_hal (LibHalContext *ctx, const char *udi) ++{ ++ char *iface = NULL; ++ ++ if (libhal_device_property_exists (ctx, udi, "net.interface", NULL)) ++ { ++ /* Only use Ethernet and Wireless devices at the moment */ ++ if (libhal_device_property_exists (ctx, udi, "info.category", NULL)) ++ { ++ char *category = libhal_device_get_property_string (ctx, udi, "info.category", NULL); ++ if (category && (!strcmp (category, "net.80203") || !strcmp (category, "net.80211"))) ++ { ++ char *temp = libhal_device_get_property_string (ctx, udi, "net.interface", NULL); ++ iface = g_strdup (temp); ++ libhal_free_string (temp); ++ } ++ libhal_free_string (category); ++ } ++ } ++ ++ return (iface); ++} ++ ++/* callback called when /etc/network/interfaces is modified */ ++static gboolean eni_changed (GIOChannel *eni_channel, GIOCondition cond, gpointer user_data) ++{ ++ gboolean reparse = FALSE; ++ NMData *data = (NMData *) user_data; ++ NMDevice *active; ++ char **net_devices; ++ DBusError error; ++ int num_net_devices; ++ int i; ++ GSList *walk; ++ struct inotify_event evt; ++ ++ /* read the notifications from the watch descriptor */ ++ while (g_io_channel_read_chars (eni_channel, (gchar *) &evt, ++ sizeof (struct inotify_event), NULL, NULL) == G_IO_STATUS_NORMAL) { ++ if (evt.len > 0) { ++ gchar filename[evt.len]; ++ g_io_channel_read_chars (eni_channel, filename, evt.len, NULL, NULL); ++ ++ if (!strcmp (filename, "interfaces")) ++ reparse = TRUE; ++ } ++ } ++ ++ if (reparse == FALSE) ++ /* ignore this notification */ ++ return TRUE; ++ ++ nm_info ("/etc/network/interface changed: rebuilding the device list."); ++ ++ /* get the existing devices from Hal */ ++ dbus_error_init (&error); ++ net_devices = libhal_find_device_by_capability (data->hal_ctx, "net", &num_net_devices, &error); ++ if (dbus_error_is_set (&error)) { ++ nm_warning ("Could not get existing devices from Hal: %s", error.message); ++ dbus_error_free (&error); ++ ++ return FALSE; ++ } ++ ++ /* get the currently active device, we do not touch it if it has not been disabled */ ++ active = nm_get_active_device (data); ++ if (active && nm_system_device_get_disabled (active) == TRUE) ++ active = NULL; ++ ++ nm_lock_mutex (data->dev_list_mutex, __FUNCTION__); ++ ++ /* remove the devices */ ++ for (walk = data->dev_list; walk != NULL; walk = g_slist_next (walk)) { ++ NMDevice *dev = NM_DEVICE (walk->data); ++ ++ if (active && dev == active) { ++ /* do not remove the active device */ ++ nm_info ("Keeping active %s device '%s'.", ++ nm_device_is_802_11_wireless (dev) ? "wireless (802.11)" : "wired Ethernet (802.3)", ++ nm_device_get_iface (dev)); ++ ++ continue; ++ } ++ ++ nm_info ("Removing %s device '%s'.", ++ nm_device_is_802_11_wireless (dev) ? "wireless (802.11)" : "wired Ethernet (802.3)", ++ nm_device_get_iface (dev)); ++ nm_device_set_removed (dev, TRUE); ++ nm_device_stop (dev); ++ ++ nm_dbus_schedule_device_status_change_signal (data, dev, NULL, DEVICE_REMOVED); ++ g_object_unref (dev); ++ } ++ ++ g_slist_free (data->dev_list); ++ data->dev_list = NULL; ++ if (active) ++ data->dev_list = g_slist_append (data->dev_list, active); ++ ++ nm_info ("Recreating the device list."); ++ /* repopulate the device list */ ++ for (i = 0; i < num_net_devices; i++) ++ { ++ char *iface; ++ ++ if ((iface = nm_get_device_interface_from_hal (data->hal_ctx, net_devices[i]))) ++ { ++ NMDevice *dev; ++ ++ if (active && !strcmp (iface, nm_device_get_iface (active))) ++ continue; ++ ++ if ((dev = nm_device_new (iface, net_devices[i], FALSE, DEVICE_TYPE_UNKNOWN, data))) ++ { ++ nm_info ("Now managing %s device '%s'.", ++ nm_device_is_802_11_wireless (dev) ? "wireless (802.11)" : "wired Ethernet (802.3)", ++ nm_device_get_iface (dev)); ++ ++ data->dev_list = g_slist_append (data->dev_list, dev); ++ nm_device_deactivate (dev); ++ ++ nm_dbus_schedule_device_status_change_signal (data, dev, NULL, DEVICE_ADDED); ++ } ++ ++ g_free (iface); ++ } ++ } ++ nm_info ("Device list recreated successfully."); ++ ++ libhal_free_string_array (net_devices); ++ nm_policy_schedule_device_change_check (data); ++ nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__); ++ ++ return TRUE; ++} ++ + /* + * nm_system_init + * + * Initializes the distribution-specific system backend + * + */ +-void nm_system_init (void) ++void nm_system_init (NMData *data) + { ++ GIOChannel *eni_channel; ++ GSource *io_source; ++ ++ int ifd = inotify_init (); ++ if (ifd == -1) { ++ nm_warning ("Could not initialize inotify"); ++ ++ return; ++ } ++ ++ int wd = inotify_add_watch (ifd, "/etc/network/", IN_CLOSE_WRITE); ++ if (wd == -1) { ++ nm_warning ("Could not monitor /etc/network/interface"); ++ close (ifd); ++ ++ return; ++ } ++ ++ /* add an io_watch to the main_context */ ++ eni_channel = g_io_channel_unix_new (ifd); ++ g_io_channel_set_flags (eni_channel, G_IO_FLAG_NONBLOCK, NULL); ++ g_io_channel_set_encoding (eni_channel, NULL, NULL); ++ io_source = g_io_create_watch (eni_channel, G_IO_IN | G_IO_ERR); ++ g_source_set_callback (io_source, (GSourceFunc) eni_changed, data, NULL); ++ g_source_attach (io_source, data->main_context); ++ g_io_channel_unref (eni_channel); ++ g_source_unref (io_source); + } + + /* +diff -Nur bzr.debian.0.9.5/src/NetworkManager.c bzr.debian.0.9.5.new/src/NetworkManager.c +--- bzr.debian.0.9.5/src/NetworkManager.c 2007-06-25 17:18:17.000000000 +0200 ++++ bzr.debian.0.9.5.new/src/NetworkManager.c 2007-06-25 17:40:34.000000000 +0200 +@@ -757,8 +757,6 @@ + nm_logging_setup (become_daemon); + nm_info ("starting..."); + +- nm_system_init(); +- + /* Initialize our instance data */ + nm_data = nm_data_new (enable_test_devices); + if (!nm_data) +@@ -800,6 +798,8 @@ + /* If Hal is around, grab a device list from it */ + if ((owner = get_name_owner (nm_data->dbus_connection, "org.freedesktop.Hal"))) + nm_hal_init (nm_data); ++ ++ nm_system_init (nm_data); + + /* We run dhclient when we need to, and we don't want any stray ones + * lying around upon launch. +diff -Nur bzr.debian.0.9.5/src/NetworkManagerSystem.h bzr.debian.0.9.5.new/src/NetworkManagerSystem.h +--- bzr.debian.0.9.5/src/NetworkManagerSystem.h 2007-06-25 17:18:17.000000000 +0200 ++++ bzr.debian.0.9.5.new/src/NetworkManagerSystem.h 2007-06-25 17:40:34.000000000 +0200 +@@ -33,7 +33,7 @@ + * implemented in the backend files in backends/ directory + */ + +-void nm_system_init (void); ++void nm_system_init (struct NMData *data); + gboolean nm_system_device_has_active_routes (NMDevice *dev); + + int nm_system_get_rtnl_index_from_iface (const char *iface); --- network-manager-0.6.6.orig/debian/patches/41k_20_sec_wireless_link_timeout.patch +++ network-manager-0.6.6/debian/patches/41k_20_sec_wireless_link_timeout.patch @@ -0,0 +1,28 @@ +=== modified file 'src/nm-device-802-11-wireless.c' +--- + src/nm-device-802-11-wireless.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: network-manager.debian/src/nm-device-802-11-wireless.c +=================================================================== +--- network-manager.debian.orig/src/nm-device-802-11-wireless.c ++++ network-manager.debian/src/nm-device-802-11-wireless.c +@@ -2623,17 +2623,17 @@ + nm_ap_get_essid (ap) ? nm_ap_get_essid (ap) : "(none)"); + nm_supplicant_remove_timeout (self->priv->supplicant); + nm_device_activate_schedule_stage3_ip_config_start (req); + } + } else { + if (nm_device_is_activated (dev) || nm_device_is_activating (dev)) { + /* Start the link timeout so we allow some time for reauthentication */ + if ((self->priv->link_timeout == NULL) && !self->priv->scanning) { +- self->priv->link_timeout = g_timeout_source_new (8000); ++ self->priv->link_timeout = g_timeout_source_new (20000); + g_source_set_callback (self->priv->link_timeout, + link_timeout_cb, + self, + link_timeout_done); + g_source_attach (self->priv->link_timeout, nm_device_get_main_context (dev)); + g_source_unref (self->priv->link_timeout); + } + } else --- network-manager-0.6.6.orig/debian/patches/41o_completely_deactivate_stage1.patch +++ network-manager-0.6.6/debian/patches/41o_completely_deactivate_stage1.patch @@ -0,0 +1,27 @@ +--- + src/nm-device-802-11-wireless.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: network-manager.debian/src/nm-device-802-11-wireless.c +=================================================================== +--- network-manager.debian.orig/src/nm-device-802-11-wireless.c 2007-08-06 16:56:31.000000000 +0200 ++++ network-manager.debian/src/nm-device-802-11-wireless.c 2007-08-06 17:03:11.000000000 +0200 +@@ -3026,17 +3026,17 @@ + const char * driver; + const char * iface; + NMSock * sk; + int err; + + driver = nm_device_get_driver (dev); + iface = nm_device_get_iface (dev); + supplicant_cleanup (dev); +- real_deactivate(dev); ++ nm_device_deactivate(dev); + sleep(1); + return NM_ACT_STAGE_RETURN_SUCCESS; + } + + + /****************************************************************************/ + + static NMActStageReturn --- network-manager-0.6.6.orig/debian/patches/41r_wpa_control_custom_timeout.patch +++ network-manager-0.6.6/debian/patches/41r_wpa_control_custom_timeout.patch @@ -0,0 +1,120 @@ +--- + src/wpa_ctrl.c | 26 +++++++++++++++++++++++++- + src/wpa_ctrl.h | 2 ++ + 2 files changed, 27 insertions(+), 1 deletion(-) + +Index: network-manager.debian/src/wpa_ctrl.c +=================================================================== +--- network-manager.debian.orig/src/wpa_ctrl.c ++++ network-manager.debian/src/wpa_ctrl.c +@@ -41,32 +41,45 @@ + int s; + #ifdef CONFIG_CTRL_IFACE_UDP + struct sockaddr_in local; + struct sockaddr_in dest; + #else /* CONFIG_CTRL_IFACE_UDP */ + struct sockaddr_un local; + struct sockaddr_un dest; + #endif /* CONFIG_CTRL_IFACE_UDP */ ++ int timeout_sec; + }; + ++void wpa_ctrl_set_custom_timeout(struct wpa_ctrl *ctrl, int timeout_sec) ++{ ++ ctrl->timeout_sec = timeout_sec; ++} ++ ++ ++void wpa_ctrl_unset_custom_timeout(struct wpa_ctrl *ctrl) ++{ ++ ctrl->timeout_sec = 2; ++} + + struct wpa_ctrl * wpa_ctrl_open(const char *ctrl_path, + const char *local_path_dir) + { + struct wpa_ctrl *ctrl; + #ifndef CONFIG_CTRL_IFACE_UDP + static int counter = 0; + #endif /* CONFIG_CTRL_IFACE_UDP */ + + ctrl = malloc(sizeof(*ctrl)); + if (ctrl == NULL) + return NULL; + memset(ctrl, 0, sizeof(*ctrl)); + ++ ctrl->timeout_sec = 2; ++ + #ifdef CONFIG_CTRL_IFACE_UDP + ctrl->s = socket(PF_INET, SOCK_DGRAM, 0); + if (ctrl->s < 0) { + perror("socket"); + free(ctrl); + return NULL; + } + +@@ -127,29 +140,40 @@ + #ifndef CONFIG_CTRL_IFACE_UDP + unlink(ctrl->local.sun_path); + #endif /* CONFIG_CTRL_IFACE_UDP */ + close(ctrl->s); + free(ctrl); + } + + ++static int wpa_ctrl_request_timed(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len, ++ char *reply, size_t *reply_len, int timeout_sec, ++ void (*msg_cb)(char *msg, size_t len)); ++ + int wpa_ctrl_request(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len, + char *reply, size_t *reply_len, + void (*msg_cb)(char *msg, size_t len)) + { ++ return wpa_ctrl_request_timed(ctrl, cmd, cmd_len, reply, reply_len, ctrl->timeout_sec, msg_cb); ++} ++ ++static int wpa_ctrl_request_timed(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len, ++ char *reply, size_t *reply_len, int timeout_sec, ++ void (*msg_cb)(char *msg, size_t len)) ++{ + struct timeval tv; + int res; + fd_set rfds; + + if (send(ctrl->s, cmd, cmd_len, 0) < 0) + return -1; + + for (;;) { +- tv.tv_sec = 2; ++ tv.tv_sec = timeout_sec; + tv.tv_usec = 0; + FD_ZERO(&rfds); + FD_SET(ctrl->s, &rfds); + res = select(ctrl->s + 1, &rfds, NULL, NULL, &tv); + if (FD_ISSET(ctrl->s, &rfds)) { + res = recv(ctrl->s, reply, *reply_len, 0); + if (res < 0) + return res; +Index: network-manager.debian/src/wpa_ctrl.h +=================================================================== +--- network-manager.debian.orig/src/wpa_ctrl.h ++++ network-manager.debian/src/wpa_ctrl.h +@@ -66,16 +66,18 @@ + /** + * wpa_ctrl_close - Close a control interface to wpa_supplicant/hostapd + * @ctrl: Control interface data from wpa_ctrl_open() + * + * This function is used to close a control interface. + */ + void wpa_ctrl_close(struct wpa_ctrl *ctrl); + ++void wpa_ctrl_set_custom_timeout(struct wpa_ctrl *ctrl, int timeout_sec); ++void wpa_ctrl_unset_custom_timeout(struct wpa_ctrl *ctrl); + + /** + * wpa_ctrl_request - Send a command to wpa_supplicant/hostapd + * @ctrl: Control interface data from wpa_ctrl_open() + * @cmd: Command; usually, ASCII text, e.g., "PING" + * @cmd_len: Length of the cmd in bytes + * @reply: Buffer for the response + * @reply_len: Reply buffer length --- network-manager-0.6.6.orig/debian/patches/41r_wpa_control_explicit_TIMEOUT_reply_fixup.patch +++ network-manager-0.6.6/debian/patches/41r_wpa_control_explicit_TIMEOUT_reply_fixup.patch @@ -0,0 +1,27 @@ +--- + src/wpa_ctrl.c | 2 ++ + 1 file changed, 2 insertions(+) + +Index: network-manager.debian/src/wpa_ctrl.c +=================================================================== +--- network-manager.debian.orig/src/wpa_ctrl.c ++++ network-manager.debian/src/wpa_ctrl.c +@@ -190,16 +190,18 @@ + reply[res] = '\0'; + msg_cb(reply, res); + } + continue; + } + *reply_len = res; + break; + } else { ++ sprintf(reply, "TIMEOUT[CLI]\0"); ++ *reply_len = strlen("TIMEOUT[CLI]\0"); + return -2; + } + } + return 0; + } + + + static int wpa_ctrl_attach_helper(struct wpa_ctrl *ctrl, int attach) --- network-manager-0.6.6.orig/debian/patches/41s_wpa_ctrl_socket_non_block.patch +++ network-manager-0.6.6/debian/patches/41s_wpa_ctrl_socket_non_block.patch @@ -0,0 +1,45 @@ +--- + src/wpa_ctrl.c | 3 +++ + 1 file changed, 3 insertions(+) + +Index: network-manager.debian/src/wpa_ctrl.c +=================================================================== +--- network-manager.debian.orig/src/wpa_ctrl.c ++++ network-manager.debian/src/wpa_ctrl.c +@@ -12,16 +12,18 @@ + * See README and COPYING for more details. + */ + + /* WHACK #include "includes.h" */ + #include + #include + #include + #include ++#include ++#include + + #define CONFIG_CTRL_IFACE + #ifdef CONFIG_CTRL_IFACE + + #ifndef CONFIG_CTRL_IFACE_UDP + #include + #endif /* CONFIG_CTRL_IFACE_UDP */ + +@@ -103,16 +105,17 @@ + return NULL; + } + #else /* CONFIG_CTRL_IFACE_UDP */ + ctrl->s = socket(PF_UNIX, SOCK_DGRAM, 0); + if (ctrl->s < 0) { + free(ctrl); + return NULL; + } ++ fcntl(ctrl->s, F_SETFD, fcntl(ctrl->s, F_GETFD) | O_NONBLOCK); + + ctrl->local.sun_family = AF_UNIX; + snprintf(ctrl->local.sun_path, sizeof(ctrl->local.sun_path), + "%s/wpa_ctrl_%d-%d", local_path_dir, getpid(), counter++); + if (bind(ctrl->s, (struct sockaddr *) &ctrl->local, + sizeof(ctrl->local)) < 0) { + close(ctrl->s); + free(ctrl); --- network-manager-0.6.6.orig/debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch +++ network-manager-0.6.6/debian/patches/41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch @@ -0,0 +1,124 @@ +--- + src/nm-supplicant.c | 27 ++++++++++++++++++--------- + 1 file changed, 18 insertions(+), 9 deletions(-) + +Index: network-manager.debian/src/nm-supplicant.c +=================================================================== +--- network-manager.debian.orig/src/nm-supplicant.c ++++ network-manager.debian/src/nm-supplicant.c +@@ -22,31 +22,33 @@ + * This program 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 version 2 of the License. + */ + + #define WPA_SUPPLICANT_GLOBAL_SOCKET LOCALSTATEDIR"/run/wpa_supplicant-global" + #define WPA_SUPPLICANT_CONTROL_SOCKET LOCALSTATEDIR"/run/wpa_supplicant" + #define WPA_SUPPLICANT_NUM_RETRIES 20 +-#define WPA_SUPPLICANT_RETRY_TIME_US 100*1000 ++#define WPA_SUPPLICANT_RETRY_TIME_US 250*1000 + + G_DEFINE_TYPE (NMSupplicant, nm_supplicant, G_TYPE_OBJECT) + + #define NM_SUPPLICANT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SUPPLICANT, NMSupplicantPrivate)) + + typedef struct { + GPid pid; + GSource *watch; + GSource *status; + GSource *timeout; + struct wpa_ctrl *ctrl; + + char *socket_path; + char *message; ++ ++ guint32 run_count; + } NMSupplicantPrivate; + + enum { + STATE_CHANGED, + DOWN, + + LAST_SIGNAL + }; +@@ -103,19 +105,19 @@ + nm_supplicant_remove_timeout (self); + + /* HACK: should be fixed in wpa_supplicant. Will likely + * require accomodations for selinux. + */ + unlink (WPA_SUPPLICANT_GLOBAL_SOCKET); + unlink (priv->socket_path); + ++ priv->run_count = (priv->run_count + 1) % 10; + g_signal_emit (self, signals[DOWN], 0); + } +- + static void + supplicant_watch_done (gpointer user_data) + { + NMSupplicantPrivate *priv = NM_SUPPLICANT_GET_PRIVATE (user_data); + + priv->watch = NULL; + } + +@@ -204,45 +206,52 @@ + struct wpa_ctrl *ctrl = NULL; + int tries; + + g_return_val_if_fail (NM_IS_SUPPLICANT (self), FALSE); + g_return_val_if_fail (iface != NULL, FALSE); + + /* Try to open wpa_supplicant's global control socket */ + for (tries = 0; tries < WPA_SUPPLICANT_NUM_RETRIES && !ctrl; tries++) { ++ if (tries > 0) ++ nm_info("retry to connect to global supplicant socket (try=%d)", tries); + ctrl = wpa_ctrl_open (WPA_SUPPLICANT_GLOBAL_SOCKET, NM_RUN_DIR); + g_usleep (WPA_SUPPLICANT_RETRY_TIME_US); + } + + if (!ctrl) { + nm_info ("Error opening supplicant global control interface."); + return FALSE; + } + ++ priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ ++ gchar *control_path = g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "%d", priv->run_count); + /* wpa_cli -g/var/run/wpa_supplicant-global interface_add eth1 "" wext /var/run/wpa_supplicant */ + if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, +- "INTERFACE_ADD %s\t\t%s\t" WPA_SUPPLICANT_CONTROL_SOCKET "\t", +- iface, supplicant_driver)) { ++ "INTERFACE_ADD %s\t\t%s\t%s\t", ++ iface, supplicant_driver, control_path)) { + wpa_ctrl_close (ctrl); ++ g_free (control_path); + return FALSE; + } + + wpa_ctrl_close (ctrl); +- +- priv = NM_SUPPLICANT_GET_PRIVATE (self); ++ g_free (control_path); + + /* Get a control socket to wpa_supplicant for this interface. +- * Try a couple times to work around naive socket naming ++ * Try a couple times to work around naive socket namings + * in wpa_ctrl that sometimes collides with stale ones. + */ +- priv->socket_path = g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "/%s", iface); ++ priv->socket_path = g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "%d/%s", priv->run_count, iface); + +- while (!priv->ctrl && (tries++ < 10)) ++ while (!priv->ctrl && (tries++ < 10)) { + priv->ctrl = wpa_ctrl_open (priv->socket_path, NM_RUN_DIR); ++ g_usleep (WPA_SUPPLICANT_RETRY_TIME_US); ++ } + + if (!priv->ctrl) + nm_info ("Error opening control interface to supplicant."); + + return priv->ctrl != NULL; + } + + static void --- network-manager-0.6.6.orig/debian/patches/41u_custom_timeout_for_some_wpa_ctrl_operations.patch +++ network-manager-0.6.6/debian/patches/41u_custom_timeout_for_some_wpa_ctrl_operations.patch @@ -0,0 +1,38 @@ +--- + src/nm-supplicant.c | 3 +++ + 1 file changed, 3 insertions(+) + +Index: network-manager.debian/src/nm-supplicant.c +=================================================================== +--- network-manager.debian.orig/src/nm-supplicant.c ++++ network-manager.debian/src/nm-supplicant.c +@@ -219,26 +219,29 @@ + + if (!ctrl) { + nm_info ("Error opening supplicant global control interface."); + return FALSE; + } + + priv = NM_SUPPLICANT_GET_PRIVATE (self); + ++ wpa_ctrl_set_custom_timeout(ctrl, 12); + gchar *control_path = g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "%d", priv->run_count); + /* wpa_cli -g/var/run/wpa_supplicant-global interface_add eth1 "" wext /var/run/wpa_supplicant */ + if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, + "INTERFACE_ADD %s\t\t%s\t%s\t", + iface, supplicant_driver, control_path)) { ++ wpa_ctrl_unset_custom_timeout(ctrl); + wpa_ctrl_close (ctrl); + g_free (control_path); + return FALSE; + } + ++ wpa_ctrl_unset_custom_timeout(ctrl); + wpa_ctrl_close (ctrl); + g_free (control_path); + + /* Get a control socket to wpa_supplicant for this interface. + * Try a couple times to work around naive socket namings + * in wpa_ctrl that sometimes collides with stale ones. + */ + priv->socket_path = g_strdup_printf (WPA_SUPPLICANT_CONTROL_SOCKET "%d/%s", priv->run_count, iface); --- network-manager-0.6.6.orig/debian/patches/41wa_lp145683_wpa_ctrl_check_select_result_for_error.patch +++ network-manager-0.6.6/debian/patches/41wa_lp145683_wpa_ctrl_check_select_result_for_error.patch @@ -0,0 +1,46 @@ +--- + src/wpa_ctrl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: network-manager.debian/src/wpa_ctrl.c +=================================================================== +--- network-manager.debian.orig/src/wpa_ctrl.c ++++ network-manager.debian/src/wpa_ctrl.c +@@ -171,17 +171,17 @@ + return -1; + + for (;;) { + tv.tv_sec = timeout_sec; + tv.tv_usec = 0; + FD_ZERO(&rfds); + FD_SET(ctrl->s, &rfds); + res = select(ctrl->s + 1, &rfds, NULL, NULL, &tv); +- if (FD_ISSET(ctrl->s, &rfds)) { ++ if (res >0 && FD_ISSET(ctrl->s, &rfds)) { + res = recv(ctrl->s, reply, *reply_len, 0); + if (res < 0) + return res; + if (res > 0 && reply[0] == '<') { + /* This is an unsolicited message from + * wpa_supplicant, not the reply to the + * request. Use msg_cb to report this to the + * caller. */ +@@ -252,17 +252,17 @@ + struct timeval tv; + int res; + fd_set rfds; + tv.tv_sec = 0; + tv.tv_usec = 0; + FD_ZERO(&rfds); + FD_SET(ctrl->s, &rfds); + res = select(ctrl->s + 1, &rfds, NULL, NULL, &tv); +- return FD_ISSET(ctrl->s, &rfds); ++ return res > 0 && FD_ISSET(ctrl->s, &rfds); + } + + + int wpa_ctrl_get_fd(struct wpa_ctrl *ctrl) + { + return ctrl->s; + } + --- network-manager-0.6.6.orig/debian/patches/41x_lp145653_reraise_fatal_signals.patch +++ network-manager-0.6.6/debian/patches/41x_lp145653_reraise_fatal_signals.patch @@ -0,0 +1,28 @@ +--- + src/nm-logging.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: network-manager.debian/src/nm-logging.c +=================================================================== +--- network-manager.debian.orig/src/nm-logging.c ++++ network-manager.debian/src/nm-logging.c +@@ -159,17 +159,18 @@ + switch (signo) + { + case SIGSEGV: + case SIGBUS: + case SIGILL: + case SIGABRT: + nm_warning ("Caught signal %d. Generating backtrace...", signo); + nm_logging_backtrace (); +- exit (1); ++ sigaction (signo, SIG_DFL, NULL); ++ raise(signo); + break; + + case SIGFPE: + case SIGPIPE: + /* let the fatal signals interrupt us */ + --in_fatal; + + nm_warning ("Caught signal %d, shutting down abnormally. Generating backtrace...", signo); --- network-manager-0.6.6.orig/debian/patches/41y_queue_if_dbus_name_is_taken_on_startup.patch +++ network-manager-0.6.6/debian/patches/41y_queue_if_dbus_name_is_taken_on_startup.patch @@ -0,0 +1,117 @@ +--- + src/NetworkManagerDbus.c | 55 ++++++++++++++++++++++++++++++++--------------- + 1 file changed, 38 insertions(+), 17 deletions(-) + +Index: network-manager.debian/src/NetworkManagerDbus.c +=================================================================== +--- network-manager.debian.orig/src/NetworkManagerDbus.c ++++ network-manager.debian/src/NetworkManagerDbus.c +@@ -525,16 +525,22 @@ + { + nm_hal_deinit (data); + dbus_connection_unref (data->dbus_connection); + data->dbus_connection = NULL; + nm_dhcp_manager_dispose (data->dhcp_manager); + g_thread_create ((GThreadFunc) nm_dbus_reinit, (gpointer) data, FALSE, NULL); + handled = TRUE; + } ++ else if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameLost")) ++ { ++ g_warning("NetworkManagerDBus Lost the primary service name ownership ... shutting down!"); ++ write (nm_get_sigterm_pipe (), "X", 1); ++ handled = TRUE; ++ } + else if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) + { + char *service; + char *old_owner; + char *new_owner; + + if (dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &service, DBUS_TYPE_STRING, &old_owner, + DBUS_TYPE_STRING, &new_owner, DBUS_TYPE_INVALID)) +@@ -802,17 +808,17 @@ + DBusConnection *nm_dbus_init (NMData *data) + { + DBusError error; + DBusConnection * connection; + DBusObjectPathVTable nm_vtable = {NULL, &nm_dbus_nm_message_handler, NULL, NULL, NULL, NULL}; + DBusObjectPathVTable devices_vtable = {NULL, &nm_dbus_devices_message_handler, NULL, NULL, NULL, NULL}; + DBusObjectPathVTable vpn_vtable = {NULL, &nm_dbus_vpn_message_handler, NULL, NULL, NULL, NULL}; + char * owner; +- int flags, ret; ++ int flags, ret, i; + + dbus_connection_set_change_sigpipe (TRUE); + + dbus_error_init (&error); + connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); + if ((connection == NULL) || dbus_error_is_set (&error)) + { + nm_warning ("nm_dbus_init() could not get the system bus. Make sure the message bus daemon is running!"); +@@ -854,35 +860,50 @@ + { + char *match = get_nmi_match_string (owner); + + dbus_bus_add_match (connection, match, NULL); + g_free (match); + g_free (owner); + } + +- dbus_error_init (&error); ++ for (i=0; i < 10; i++) { ++ dbus_error_init (&error); + #if (DBUS_VERSION_MAJOR == 0) && (DBUS_VERSION_MINOR < 60) +- flags = DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT; ++ if(i == 9) ++ flags = DBUS_NAME_FLAG_REPLACE_EXISTING; ++ else ++ flags = 0; + #else +- flags = DBUS_NAME_FLAG_DO_NOT_QUEUE; ++ flags = DBUS_NAME_FLAG_ALLOW_REPLACEMENT | DBUS_NAME_FLAG_DO_NOT_QUEUE; ++ if(i == 9) ++ flags |= DBUS_NAME_FLAG_REPLACE_EXISTING; // we want to QUEUE in case the previous NetworkManager didn't yet terminate. + #endif +- ret = dbus_bus_request_name (connection, NM_DBUS_SERVICE, flags, &error); +- if (dbus_error_is_set (&error)) +- { +- nm_warning ("nm_dbus_init() could not acquire the NetworkManager service.\n Message: '%s'", error.message); +- connection = NULL; +- goto out; +- } +- else if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) +- { +- nm_warning ("nm_dbus_init() could not acquire the NetworkManager service as it is already taken (ret=%d). Is the daemon already running?", +- ret); +- connection = NULL; +- goto out; ++ ret = dbus_bus_request_name (connection, NM_DBUS_SERVICE, flags, &error); ++ if (dbus_error_is_set (&error)) ++ { ++ nm_warning ("nm_dbus_init() could not acquire the NetworkManager service.\n Message: '%s'", error.message); ++ connection = NULL; ++ goto out; ++ } ++ else if (ret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER && ret != DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER) ++ { ++ nm_info ("nm_dbus_init() could not acquire the NetworkManager service as PRIMARY_OWNER (ret=%d). This happens if NetworkManager daemon is already/still running?", ++ ret); ++ if (dbus_error_is_set (&error)) ++ dbus_error_free (&error); ++ if (i == 9) { ++ connection = NULL; ++ goto out; ++ } ++ // sleep 200 ms ++ g_usleep (G_USEC_PER_SEC); ++ } else { ++ break; ++ } + } + + out: + if (dbus_error_is_set (&error)) + dbus_error_free (&error); + + return (connection); + } --- network-manager-0.6.6.orig/debian/patches/41z_lp138217_use_timeout_to_schedule_activation.patch +++ network-manager-0.6.6/debian/patches/41z_lp138217_use_timeout_to_schedule_activation.patch @@ -0,0 +1,27 @@ +--- + src/NetworkManagerPolicy.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: network-manager.debian/src/NetworkManagerPolicy.c +=================================================================== +--- network-manager.debian.orig/src/NetworkManagerPolicy.c ++++ network-manager.debian/src/NetworkManagerPolicy.c +@@ -167,17 +167,17 @@ + g_assert (data); + + dev = nm_act_request_get_dev (req); + g_assert (dev); + + nm_act_request_set_stage (req, NM_ACT_STAGE_FAILED); + nm_act_request_ref (req); + +- source = g_idle_source_new (); ++ source = g_timeout_source_new (250); + g_source_set_priority (source, G_PRIORITY_HIGH_IDLE); + g_source_set_callback (source, (GSourceFunc) nm_policy_activation_failed, req, NULL); + g_source_attach (source, data->main_context); + g_source_unref (source); + nm_info ("Activation (%s) failure scheduled...", nm_device_get_iface (dev)); + } + + --- network-manager-0.6.6.orig/debian/patches/42a_ath_pci_supplicant_tweaks.patch +++ network-manager-0.6.6/debian/patches/42a_ath_pci_supplicant_tweaks.patch @@ -0,0 +1,105 @@ +--- + src/nm-device-802-11-wireless.c | 24 ++++++++++++++++++++---- + 1 file changed, 20 insertions(+), 4 deletions(-) + +Index: network-manager.ubuntu/src/nm-device-802-11-wireless.c +=================================================================== +--- network-manager.ubuntu.orig/src/nm-device-802-11-wireless.c ++++ network-manager.ubuntu/src/nm-device-802-11-wireless.c +@@ -2382,18 +2382,19 @@ + { + NMAccessPoint * ap = NULL; + gboolean success = FALSE; + char * response = NULL; + int nwid; + const char * essid; + struct wpa_ctrl * ctrl; + gboolean is_adhoc; +- char * hex_essid = NULL; +- const char * ap_scan = "AP_SCAN 1"; ++ char * hex_essid = NULL; ++ char * ap_scan = "AP_SCAN 1"; ++ const char * kernel_driver = nm_device_get_driver (NM_DEVICE (self)); + guint32 caps; + gboolean supports_wpa; + + ap = nm_act_request_get_ap (req); + g_assert (ap); + + ctrl = nm_supplicant_get_ctrl (self->priv->supplicant); + g_assert (ctrl); +@@ -2411,17 +2412,17 @@ + * scanning specific SSIDs + * - The wireless network is Ad-Hoc + * - The wireless driver does not support WPA (stupid drivers...) + */ + is_adhoc = (nm_ap_get_mode(ap) == IW_MODE_ADHOC); + if (is_adhoc || !supports_wpa) + ap_scan = "AP_SCAN 2"; + else if (!nm_ap_get_broadcast (ap)) +- ap_scan = self->priv->has_scan_capa_ssid ? "AP_SCAN 1" : "AP_SCAN 2"; ++ ap_scan = self->priv->has_scan_capa_ssid && nm_null_safe_strcmp("ath_pci", kernel_driver) ? "AP_SCAN 1" : "AP_SCAN 2"; + + /* Tell wpa_supplicant that we'll do the scanning */ + if (!nm_utils_supplicant_request_with_check (ctrl, "OK", __func__, NULL, ap_scan)) + goto out; + + /* Standard network setup info */ + if (!(response = nm_utils_supplicant_request (ctrl, "ADD_NETWORK"))) + { +@@ -2657,16 +2658,18 @@ + NMActRequest *req) + { + NMDevice80211Wireless * self = NM_DEVICE_802_11_WIRELESS (dev); + NMAccessPoint * ap = nm_act_request_get_ap (req); + NMData * data = nm_act_request_get_data (req); + const char * iface; + gboolean ask_user = FALSE; + GMainContext *ctx; ++ const char * wpa_driver; ++ const char * kernel_driver; + + g_assert (ap); + + if (self->priv->supplicant) + g_object_unref (self->priv->supplicant); + + /* If we need an encryption key, get one */ + if (ap_need_key (self, ap, &ask_user)) +@@ -2685,22 +2688,35 @@ + g_signal_connect (self->priv->supplicant, "state-changed", + G_CALLBACK (supplicant_state_changed), + self); + + g_signal_connect (self->priv->supplicant, "down", + G_CALLBACK (supplicant_down), + self); + ++ ++ /* ++ * driver tweak: ++ * We want to work with the generic "wext" wpa_supplicant driver, but some kernel drivers ++ * are just utter junk. For those losers, we use a specific wpa_supplicant driver. ++ */ ++ kernel_driver = nm_device_get_driver (NM_DEVICE (self)); ++ ++ if (!nm_null_safe_strcmp (kernel_driver, "ath_pci")) ++ wpa_driver = "madwifi"; ++ else ++ wpa_driver = "wext"; ++ + if (!nm_supplicant_exec (self->priv->supplicant, ctx)) + { + nm_warning ("Activation (%s/wireless): couldn't start the supplicant.", iface); + goto out; + } +- if (!nm_supplicant_interface_init (self->priv->supplicant, iface, "wext")) ++ if (!nm_supplicant_interface_init (self->priv->supplicant, iface, wpa_driver)) + { + nm_warning ("Activation (%s/wireless): couldn't connect to the supplicant.", iface); + goto out; + } + if (!nm_supplicant_monitor_start (self->priv->supplicant, ctx, + get_supplicant_timeout (self), + supplicant_timed_out, self)) + { --- network-manager-0.6.6.orig/debian/patches/series +++ network-manager-0.6.6/debian/patches/series @@ -0,0 +1,22 @@ +01-supplicant_timeout.patch +02-dbus_access_network_manager.patch +05-debian_backend.patch +06-dispatch_more_events.patch +16_undefined_macros.patch +17_avahi_autoipd.patch +19_interfaces_can_have_more_than_one_instance.patch +20_do_not_take_over_dhcpv4iface_when_v6_is_configured.patch +21_manual_means_always_online.diff +23_nm-monitor-eni.diff +41k_20_sec_wireless_link_timeout.patch +#41o_completely_deactivate_stage1.patch +41r_wpa_control_custom_timeout.patch +41r_wpa_control_explicit_TIMEOUT_reply_fixup.patch +41s_wpa_ctrl_socket_non_block.patch +41t_nm_device_wireless_index_ctrl_sockets_by_run_count.patch +41u_custom_timeout_for_some_wpa_ctrl_operations.patch +41wa_lp145683_wpa_ctrl_check_select_result_for_error.patch +41x_lp145653_reraise_fatal_signals.patch +41y_queue_if_dbus_name_is_taken_on_startup.patch +41z_lp138217_use_timeout_to_schedule_activation.patch +42a_ath_pci_supplicant_tweaks.patch --- network-manager-0.6.6.orig/debian/rules +++ network-manager-0.6.6/debian/rules @@ -0,0 +1,34 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/class/autotools.mk +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk + +DEB_INSTALL_DOCS_ALL := README AUTHORS TODO + +DEB_CONFIGURE_EXTRA_FLAGS += \ + --with-dbus-sys=/etc/dbus-1/system.d \ + --with-wpa_supplicant=/sbin/wpa_supplicant \ + --with-dhcdbd=/usr/sbin/dhcdbd \ + --with-distro=debian + +DEB_DH_SHLIBDEPS_ARGS := -Xnm-vpn-properties + +clean:: + rm -f po/*.gmo + rm -f debian/*.1 + + +build/network-manager:: + /usr/bin/docbook-to-man debian/nm-vpn-properties.sgml > debian/nm-vpn-properties.1 +binary-install/network-manager:: + install -m 755 debian/network-manager.dbus-event \ + debian/network-manager/etc/dbus-1/event.d/25NetworkManager + install -m 755 debian/network-manager-dispatcher.dbus-event \ + debian/network-manager/etc/dbus-1/event.d/26NetworkManagerDispatcher + install -m 755 debian/network-manager-dispatcher.script \ + debian/network-manager/etc/NetworkManager/dispatcher.d/01ifupdown + cd po; intltool-update -p + +binary-install/network-manager-gnome:: + dh_iconcache --- network-manager-0.6.6.orig/debian/watch +++ network-manager-0.6.6/debian/watch @@ -0,0 +1,3 @@ +version=3 + +http://download.gnome.org/sources/NetworkManager/0.6/NetworkManager-(.*)\.tar\.gz