From 4b7b208fc9bbf2f1476c15f817bc4d89b8e45a31 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Thu, 3 Apr 2008 00:10:34 +0000 Subject: * New upstream release. (Closes: #470197) - Ensure dbus errors are properly initialised. (Closes: #471317) * Removed patches - debian/patches/04-if_fix.patch (obsolete) - debian/patches/11-man_page_sh_name.patch (merged upstream) - debian/patches/12_readme_format.patch (merged upstream) - debian/patches/20-stable_branch_updates_r2652.patch (merged upstream) - debian/patches/21-endianess_fix_r2754.patch (merged upstream) - debian/patches/22-fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch (merged upstream) - debian/patches/23-rfkill_return_type.patch (fixed upstream) - debian/patches/24-get_mode_fix_r3122.patch (merged upstream) - debian/patches/25-libnl_unique_pid_r3155.patch (merged upstream) - debian/patches/26-libnl_1.0-pre8_r3206.patch (merged upstream) - debian/patches/27-dont_repeat_errors.patch (merged upstream) git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2153 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/04-if_fix.patch | 12 - debian/patches/11-man_page_sh_name.patch | 15 - debian/patches/12_readme_format.patch | 14 - .../patches/20-stable_branch_updates_r2652.patch | 914 --------------------- debian/patches/21-endianess_fix_r2754.patch | 28 - ...x_vpn_ftbfs_dont_disable_gnome_deprecated.patch | 44 - debian/patches/23-rfkill_return_type.patch | 22 - debian/patches/24-get_mode_fix_r3122.patch | 13 - debian/patches/25-libnl_unique_pid_r3155.patch | 417 ---------- debian/patches/26-libnl_1.0-pre8_r3206.patch | 202 ----- debian/patches/27-dont_repeat_errors.patch | 37 - 11 files changed, 1718 deletions(-) delete mode 100644 debian/patches/04-if_fix.patch delete mode 100644 debian/patches/11-man_page_sh_name.patch delete mode 100644 debian/patches/12_readme_format.patch delete mode 100644 debian/patches/20-stable_branch_updates_r2652.patch delete mode 100644 debian/patches/21-endianess_fix_r2754.patch delete mode 100644 debian/patches/22-fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch delete mode 100644 debian/patches/23-rfkill_return_type.patch delete mode 100644 debian/patches/24-get_mode_fix_r3122.patch delete mode 100644 debian/patches/25-libnl_unique_pid_r3155.patch delete mode 100644 debian/patches/26-libnl_1.0-pre8_r3206.patch delete mode 100644 debian/patches/27-dont_repeat_errors.patch (limited to 'debian/patches') diff --git a/debian/patches/04-if_fix.patch b/debian/patches/04-if_fix.patch deleted file mode 100644 index ca0b1574..00000000 --- a/debian/patches/04-if_fix.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- src/nm-device-802-3-ethernet.c 2006-05-13 21:06:05.000000000 +0200 -+++ src/nm-device-802-3-ethernet.c.new 2006-08-13 22:34:56.000000000 +0200 -@@ -376,7 +376,9 @@ - /**************************************/ - /* MII capability detection */ - /**************************************/ -+#define _LINUX_IF_H - #include -+#undef _LINUX_IF_H - - static int - mdio_read (NMDevice8023Ethernet *self, NMSock *sk, struct ifreq *ifr, int location) diff --git a/debian/patches/11-man_page_sh_name.patch b/debian/patches/11-man_page_sh_name.patch deleted file mode 100644 index b363268c..00000000 --- a/debian/patches/11-man_page_sh_name.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: man/nm-tool.1.in -=================================================================== -RCS file: /cvs/gnome/NetworkManager/man/nm-tool.1.in,v -retrieving revision 1.1 -diff -u -3 -p -r1.1 nm-tool.1.in ---- man/nm-tool.1.in 1 Feb 2006 18:14:15 -0000 1.1 -+++ man/nm-tool.1.in 30 Nov 2006 19:33:39 -0000 -@@ -3,6 +3,7 @@ - .\" Copyright (C) 2005 Robert Love - .\" - .TH NM-TOOL "1" -+.SH NAME - nm-tool \- utility to report NetworkManager state - .SH SYNOPSIS - .B nm-tool diff --git a/debian/patches/12_readme_format.patch b/debian/patches/12_readme_format.patch deleted file mode 100644 index 5fa39d24..00000000 --- a/debian/patches/12_readme_format.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: README -=================================================================== ---- README (Revision 3190) -+++ README (Arbeitskopie) -@@ -20,7 +20,8 @@ - For wireless networking support, NetworkManager keeps a list of wireless - networks, the preferred list. Preferred Networks are wireless networks that - the user has explicitly made NetworkManager associate with at some previous --time. So if the user walks into a Starbucks and explicitly asks NetworkManager to associate with that Starbucks network, NetworkManager will remember the -+time. So if the user walks into a Starbucks and explicitly asks NetworkManager -+to associate with that Starbucks network, NetworkManager will remember the - Starbucks network information from that point on. Upon returning to that - Starbucks, NetworkManager will attempt to associate _automatically_ with the - Starbucks network since it is now in the Preferred Networks list. The point of diff --git a/debian/patches/20-stable_branch_updates_r2652.patch b/debian/patches/20-stable_branch_updates_r2652.patch deleted file mode 100644 index aea8e86f..00000000 --- a/debian/patches/20-stable_branch_updates_r2652.patch +++ /dev/null @@ -1,914 +0,0 @@ -Index: ChangeLog -=================================================================== ---- ChangeLog (Revision 2558) -+++ ChangeLog (Revision 2652) -@@ -1,3 +1,99 @@ -+2007-07-26 Dan Williams -+ -+ Patch from Bernhard Miklautz -+ -+ * src/NetworkManagerSystem.c -+ - (nm_system_device_set_ip4_route): don't add the route if it's on the -+ same subnet (#437396) -+ -+2007-07-26 Dan Williams -+ -+ * src/nm-device-802-11-wireless.c -+ - (real_start): I hate orinoco; apparently has trouble scanning too soon -+ after being brought up, so do the initial scan a bit later. -+ -+2007-06-27 Dan Williams -+ -+ * src/NetworkManager.c -+ - (nm_hal_init): set hardware RF to enabled if no killswitches are found -+ after the initial discovery -+ -+2007-06-21 Dan Williams -+ -+ More fixes for Fedora #194124, gnome.org #354565 -+ -+ * src/nm-device-802-3-ethernet.c -+ - (real_act_stage1_prepare): new function; fail activation if device -+ doesn't have a link -+ -+ * src/NetworkManagerPolicy.c -+ - (nm_policy_activation_finish): ensure device is actually activated -+ before sending out signals. Fixes a race where device cancellation -+ would be processed right after finish was scheduled, but not run. -+ - (nm_policy_device_change_check, nm_policy_schedule_device_change_check): -+ ensure device change check GSource ID is locked across threads; -+ allow interruption of activation of 802.3 ethernet devices that no -+ longer have an active link, and ensure that 802.3 ethernet devices -+ have an active link before starting activation -+ -+2007-06-21 Dan Williams -+ -+ Add HAL-based rfkill support, based on a patch from Benjamin Kahn. -+ -+ * src/NetworkManagerDbus.[ch] -+ - (nm_dbus_signal_wireless_enabled): new function, emit signals when -+ wireless enabled status changes -+ -+ * src/nm-dbus-nm.c -+ - (nm_dbus_nm_set_wireless_enabled): handle hardware rfkill correctly; -+ send errors when hardware switch overrides user request, and send -+ signals when wireless enabled state changes -+ - (nm_dbus_nm_get_wireless_enabled): send additional 'hardware rf enabled' -+ argument in method reply -+ -+ * src/NetworkManager.c -+ - (handle_killswitch_pcall_done, nm_killswitch_getpower_reply_cb, -+ nm_poll_killswitches, nm_add_killswitch_device, -+ nm_add_initial_killswitch_devices): new functions; detect and handle -+ hardware killswitches exported by HAL. Unfortunately we have to -+ poll the switches because HAL doesn't support signals for killswitches -+ yet. -+ - (nm_hal_device_new_capability): detect killswitches added asynchronously -+ - (nm_hal_init): look for killswitches when connecting to HAL -+ - (nm_hal_deinit): dispose of killswitches when deiniting HAL data -+ -+ * src/NetworkManagerMain.h -+ - Add bits to track killswitches -+ -+2007-06-12 Dan Williams -+ -+ * src/nm-device.c -+ - (real_act_stage3_ip_config_start): sometimes the device gets downed -+ during the wpa_supplicant association. Ensure the device is up -+ before it's used for IP configuration. -+ -+2007-06-07 Dan Williams -+ -+ Patch from Jon Nettleton -+ -+ * src/nm-device-802-11-wireless.c: -+ - (real_act_stage2_config): sleep 1 second to allow link status -+ to stabilize -+ -+2007-06-07 Dan Williams -+ -+ * (nm_device_802_3_ethernet_link_activated, -+ nm_device_802_3_ethernet_link_deactivated): fix ethernet link detection -+ behavior due to races between the netlink code and when the -+ device thread recognizes the change. Checking the link state -+ before scheduling the change even on the device thread is wrong. -+ (gnome.org #354565, rh #194124) -+ -+2007-04-25 Dan Williams -+ -+ * initscript/RedHat/NetworkManager.in: remove trailing backslash -+ (gnome.org #432401) -+ - 2007-04-18 Tambet Ingo - - * src/nm-dbus-nmi.c (nm_dbus_get_user_key_for_network_cb): Update the security -Index: src/NetworkManagerDbus.c -=================================================================== ---- src/NetworkManagerDbus.c (Revision 2558) -+++ src/NetworkManagerDbus.c (Revision 2652) -@@ -434,6 +434,29 @@ - } - - -+void nm_dbus_signal_wireless_enabled (NMData * data) -+{ -+ DBusMessage * message; -+ -+ g_return_if_fail (data != NULL); -+ g_return_if_fail (data->dbus_connection != NULL); -+ -+ if (!(message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, "WirelessEnabled"))) -+ { -+ nm_warning ("%s(): Not enough memory for new dbus message!", __func__); -+ return; -+ } -+ -+ dbus_message_append_args (message, -+ DBUS_TYPE_BOOLEAN, &data->wireless_enabled, -+ DBUS_TYPE_BOOLEAN, &data->hw_rf_enabled, -+ DBUS_TYPE_INVALID); -+ if (!dbus_connection_send (data->dbus_connection, message, NULL)) -+ nm_warning ("%s(): Could not emit the WirelessEnabled signal!", __func__); -+ -+ dbus_message_unref (message); -+} -+ - /* - * nm_dbus_signal_filter - * -Index: src/NetworkManagerDbus.h -=================================================================== ---- src/NetworkManagerDbus.h (Revision 2558) -+++ src/NetworkManagerDbus.h (Revision 2652) -@@ -68,6 +68,7 @@ - - void nm_dbus_signal_wireless_network_change (DBusConnection *connection, NMDevice80211Wireless *dev, NMAccessPoint *ap, NMNetworkStatus status, gint strength); - void nm_dbus_signal_device_strength_change (DBusConnection *connection, NMDevice80211Wireless *dev, gint strength); -+void nm_dbus_signal_wireless_enabled (NMData * data); - - NMDevice * nm_dbus_get_device_from_escaped_object_path (NMData *data, const char *path); - -Index: src/nm-dbus-nm.c -=================================================================== ---- src/nm-dbus-nm.c (Revision 2558) -+++ src/nm-dbus-nm.c (Revision 2652) -@@ -483,53 +483,84 @@ - return (reply); - } - --static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data) -+static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *cb_data) - { - gboolean enabled = FALSE; - DBusError err; -- NMData *app_data; -+ NMData * data; -+ DBusMessage * ret = NULL; - -- g_return_val_if_fail (data && data->data && connection && message, NULL); -+ g_return_val_if_fail (cb_data && cb_data->data && connection && message, NULL); - - dbus_error_init (&err); - if (!dbus_message_get_args (message, &err, DBUS_TYPE_BOOLEAN, &enabled, DBUS_TYPE_INVALID)) -- return NULL; -+ goto out; - -- app_data = data->data; -- app_data->wireless_enabled = enabled; -+ data = cb_data->data; -+ if (enabled == data->wireless_enabled) -+ goto out; - -- if (!enabled) -- { -- GSList *elt; -+ /* Hardware rfkill overrides whatever user wants */ -+ if (!data->hw_rf_enabled) { -+ nm_info ("User request to %s wireless overridden by radio killswitch.", -+ enabled ? "enable" : "disable"); - -- /* Physically down all wireless devices */ -- nm_lock_mutex (app_data->dev_list_mutex, __FUNCTION__); -- for (elt = app_data->dev_list; elt; elt = g_slist_next (elt)) -- { -- NMDevice *dev = (NMDevice *)(elt->data); -- if (nm_device_is_802_11_wireless (dev)) -- { -+ /* Return error if user tries to re-enable wireless, or just ignore -+ * a disable wireless request when wireless is already disabled. -+ */ -+ if (enabled) { -+ ret = nm_dbus_create_error_message (message, -+ NM_DBUS_INTERFACE, -+ "DisabledBySystem", -+ "Wireless disabled by hardware switch."); -+ } -+ goto out; -+ } -+ -+ nm_info ("User request to %s wireless.", enabled ? "enable" : "disable"); -+ -+ data->wireless_enabled = enabled; -+ if (!data->wireless_enabled) { -+ GSList * elt; -+ -+ /* Deactivate all wireless devices and force them down so they -+ * turn off their radios. -+ */ -+ nm_lock_mutex (data->dev_list_mutex, __FUNCTION__); -+ for (elt = data->dev_list; elt; elt = g_slist_next (elt)) { -+ NMDevice * dev = (NMDevice *) elt->data; -+ if (nm_device_is_802_11_wireless (dev)) { - nm_device_deactivate (dev); - nm_device_bring_down (dev); - } - } -- nm_unlock_mutex (app_data->dev_list_mutex, __FUNCTION__); -+ nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__); - } - -- nm_policy_schedule_device_change_check (data->data); -+ nm_policy_schedule_device_change_check (data); -+ nm_dbus_signal_wireless_enabled (data); - -- return NULL; -+out: -+ return ret; - } - --static DBusMessage *nm_dbus_nm_get_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data) -+static DBusMessage *nm_dbus_nm_get_wireless_enabled (DBusConnection *connection, DBusMessage *message, NMDbusCBData *cb_data) - { -+ NMData * data; - DBusMessage *reply = NULL; - -- g_return_val_if_fail (data && data->data && connection && message, NULL); -+ g_return_val_if_fail (cb_data && connection && message, NULL); - -- if ((reply = dbus_message_new_method_return (message))) -- dbus_message_append_args (reply, DBUS_TYPE_BOOLEAN, &data->data->wireless_enabled, DBUS_TYPE_INVALID); -+ data = cb_data->data; -+ g_return_val_if_fail (data != NULL, NULL); - -+ if ((reply = dbus_message_new_method_return (message))) { -+ dbus_message_append_args (reply, -+ DBUS_TYPE_BOOLEAN, &data->wireless_enabled, -+ DBUS_TYPE_BOOLEAN, &data->hw_rf_enabled, -+ DBUS_TYPE_INVALID); -+ } -+ - return reply; - } - -Index: src/nm-device-802-3-ethernet.c -=================================================================== ---- src/nm-device-802-3-ethernet.c (Revision 2558) -+++ src/nm-device-802-3-ethernet.c (Revision 2652) -@@ -108,18 +108,16 @@ - GObject *obj, - NMDevice8023Ethernet *self) - { -+ GSource * source; -+ - /* Make sure signal is for us */ - if (NM_DEVICE (self) != NM_DEVICE (obj)) - return; - -- if (!nm_device_has_active_link (NM_DEVICE (self))) -- { -- GSource * source = g_idle_source_new (); -- -- g_source_set_callback (source, (GSourceFunc) link_activated_helper, self, NULL); -- g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -- g_source_unref (source); -- } -+ source = g_idle_source_new (); -+ g_source_set_callback (source, (GSourceFunc) link_activated_helper, self, NULL); -+ g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -+ g_source_unref (source); - } - - -@@ -135,18 +133,16 @@ - GObject *obj, - NMDevice8023Ethernet *self) - { -+ GSource * source; -+ - /* Make sure signal is for us */ - if (NM_DEVICE (self) != NM_DEVICE (obj)) - return; - -- if (nm_device_has_active_link (NM_DEVICE (self))) -- { -- GSource * source = g_idle_source_new (); -- -- g_source_set_callback (source, (GSourceFunc) link_deactivated_helper, self, NULL); -- g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -- g_source_unref (source); -- } -+ source = g_idle_source_new (); -+ g_source_set_callback (source, (GSourceFunc) link_deactivated_helper, self, NULL); -+ g_source_attach (source, nm_device_get_main_context (NM_DEVICE (self))); -+ g_source_unref (source); - } - - static void -@@ -211,6 +207,26 @@ - return caps; - } - -+ -+static NMActStageReturn -+real_act_stage1_prepare (NMDevice *dev, NMActRequest *req) -+{ -+ NMDevice8023Ethernet * self = NM_DEVICE_802_3_ETHERNET (dev); -+ NMDevice8023EthernetClass * klass; -+ NMDeviceClass * parent_class; -+ -+ /* Ensure ethernet devices have a link before going further with activation, -+ * partially works around Fedora #194124. -+ */ -+ if (!nm_device_has_active_link (dev)) -+ return NM_ACT_STAGE_RETURN_FAILURE; -+ -+ /* Chain up to parent */ -+ klass = NM_DEVICE_802_3_ETHERNET_GET_CLASS (self); -+ parent_class = NM_DEVICE_CLASS (g_type_class_peek_parent (klass)); -+ return parent_class->act_stage1_prepare (dev, req); -+} -+ - static void - nm_device_802_3_ethernet_dispose (GObject *object) - { -@@ -275,6 +291,7 @@ - parent_class->get_generic_capabilities = real_get_generic_capabilities; - parent_class->init = real_init; - parent_class->update_link = real_update_link; -+ parent_class->act_stage1_prepare = real_act_stage1_prepare; - - g_type_class_add_private (object_class, sizeof (NMDevice8023EthernetPrivate)); - } -Index: src/NetworkManagerPolicy.c -=================================================================== ---- src/NetworkManagerPolicy.c (Revision 2558) -+++ src/NetworkManagerPolicy.c (Revision 2652) -@@ -52,6 +52,7 @@ - NMDevice *dev = NULL; - NMData *data = NULL; - NMAccessPoint * ap = NULL; -+ NMActRequest * dev_req; - - g_return_val_if_fail (req != NULL, FALSE); - -@@ -61,6 +62,13 @@ - dev = nm_act_request_get_dev (req); - g_assert (dev); - -+ /* Ensure that inactive devices don't get the activated signal -+ * sent due to race conditions. -+ */ -+ dev_req = nm_device_get_act_request (dev); -+ if (!dev_req || (dev_req != req)) -+ return FALSE; -+ - if (nm_device_is_802_11_wireless (dev)) - ap = nm_act_request_get_ap (req); - -@@ -265,14 +273,16 @@ - } - - #if 0 -- nm_info ("AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (best_wired_dev) : "(null)", -- best_wireless_dev ? nm_device_get_iface (best_wireless_dev) : "(null)", (best_wireless_dev && *ap) ? nm_ap_get_essid (*ap) : "null" ); -+ nm_info ("AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (NM_DEVICE (best_wired_dev)) : "(null)", -+ best_wireless_dev ? nm_device_get_iface (NM_DEVICE (best_wireless_dev)) : "(null)", (best_wireless_dev && *ap) ? nm_ap_get_essid (*ap) : "null" ); - #endif - - return highest_priority_dev; - } - - -+static GStaticMutex dcc_mutex = G_STATIC_MUTEX_INIT; -+ - /* - * nm_policy_device_change_check - * -@@ -294,7 +304,9 @@ - - g_return_val_if_fail (data != NULL, FALSE); - -+ g_static_mutex_lock (&dcc_mutex); - data->dev_change_check_idle_id = 0; -+ g_static_mutex_unlock (&dcc_mutex); - - old_dev = nm_get_active_device (data); - -@@ -303,11 +315,19 @@ - - if (old_dev) - { -+ gboolean has_link = TRUE; - guint32 caps = nm_device_get_capabilities (old_dev); - -+ /* Ensure ethernet devices have a link before starting activation, -+ * partially works around Fedora #194124. -+ */ -+ if (nm_device_is_802_3_ethernet (old_dev)) -+ has_link = nm_device_has_active_link (old_dev); -+ - /* Don't interrupt a currently activating device. */ - if ( nm_device_is_activating (old_dev) -- && !nm_device_can_interrupt_activation (old_dev)) -+ && !nm_device_can_interrupt_activation (old_dev) -+ && has_link) - { - nm_info ("Old device '%s' activating, won't change.", nm_device_get_iface (old_dev)); - goto out; -@@ -425,13 +445,36 @@ - if (do_switch && (nm_device_is_802_3_ethernet (new_dev) || (nm_device_is_802_11_wireless (new_dev) && ap))) - { - NMActRequest * act_req = NULL; -+ gboolean has_link = TRUE; - -- if ((act_req = nm_act_request_new (data, new_dev, ap, FALSE))) -+ /* Ensure ethernet devices have a link before starting activation, -+ * partially works around Fedora #194124. -+ */ -+ if (nm_device_is_802_3_ethernet (new_dev)) -+ has_link = nm_device_has_active_link (new_dev); -+ -+ if (has_link) - { -- nm_info ("Will activate connection '%s%s%s'.", nm_device_get_iface (new_dev), ap ? "/" : "", ap ? nm_ap_get_essid (ap) : ""); -- nm_policy_schedule_device_activation (act_req); -- nm_act_request_unref (act_req); -+ if ((act_req = nm_act_request_new (data, new_dev, ap, FALSE))) -+ { -+ nm_info ("Will activate connection '%s%s%s'.", -+ nm_device_get_iface (new_dev), -+ ap ? "/" : "", -+ ap ? nm_ap_get_essid (ap) : ""); -+ nm_policy_schedule_device_activation (act_req); -+ nm_act_request_unref (act_req); -+ } -+ else -+ { -+ nm_info ("Error creating activation request for %s", -+ nm_device_get_iface (new_dev)); -+ } - } -+ else -+ { -+ nm_info ("Won't activate %s because it no longer has a link.", -+ nm_device_get_iface (new_dev)); -+ } - } - - if (ap) -@@ -452,11 +495,9 @@ - */ - void nm_policy_schedule_device_change_check (NMData *data) - { -- static GStaticMutex mutex = G_STATIC_MUTEX_INIT; -- - g_return_if_fail (data != NULL); - -- g_static_mutex_lock (&mutex); -+ g_static_mutex_lock (&dcc_mutex); - - if (data->dev_change_check_idle_id == 0) - { -@@ -466,8 +507,7 @@ - data->dev_change_check_idle_id = g_source_attach (source, data->main_context); - g_source_unref (source); - } -- -- g_static_mutex_unlock (&mutex); -+ g_static_mutex_unlock (&dcc_mutex); - } - - -Index: src/nm-ap-security-wpa-eap.c -=================================================================== ---- src/nm-ap-security-wpa-eap.c (Revision 2558) -+++ src/nm-ap-security-wpa-eap.c (Revision 2652) -@@ -57,7 +57,6 @@ - NMAPSecurityWPA_EAP * security = NULL; - int eap_method; - int key_type; -- int phase2_type; - int wpa_version; - char * identity = NULL; - char * passwd = NULL; -Index: src/nm-device.c -=================================================================== ---- src/nm-device.c (Revision 2558) -+++ src/nm-device.c (Revision 2652) -@@ -856,6 +856,12 @@ - data = nm_act_request_get_data (req); - g_assert (data); - -+ /* Sometimes the device gets downed by wpa_supplicant; in any case, make -+ * sure it's up before anything tries to use it. -+ */ -+ if (!nm_device_is_up (self)) -+ nm_device_bring_up (self); -+ - /* DHCP devices try DHCP, non-DHCP default to SUCCESS */ - if (nm_device_get_use_dhcp (self)) - { -Index: src/NetworkManager.c -=================================================================== ---- src/NetworkManager.c (Revision 2558) -+++ src/NetworkManager.c (Revision 2652) -@@ -67,6 +67,7 @@ - - static gboolean sigterm_pipe_handler (GIOChannel *src, GIOCondition condition, gpointer data); - static void nm_data_free (NMData *data); -+static gboolean nm_poll_killswitches(gpointer user_data); - - /* - * nm_get_device_interface_from_hal -@@ -274,7 +275,184 @@ - } - - -+static void handle_killswitch_pcall_done (NMData *data, DBusPendingCall * pcall) -+{ -+ GSource * source; -+ gboolean now_enabled = FALSE; -+ gboolean now_disabled = FALSE; -+ -+ data->ks_pcall_list = g_slist_remove (data->ks_pcall_list, pcall); -+ if (g_slist_length (data->ks_pcall_list) > 0) -+ return; /* not done with all killswitches yet */ -+ -+ if (data->hw_rf_enabled != data->tmp_hw_rf_enabled) { -+ nm_info ("Wireless now %s by radio killswitch", -+ data->tmp_hw_rf_enabled ? "enabled" : "disabled"); -+ if (data->tmp_hw_rf_enabled) -+ now_enabled = TRUE; -+ else -+ now_disabled = TRUE; -+ -+ data->hw_rf_enabled = data->tmp_hw_rf_enabled; -+ } -+ -+ if (data->hw_rf_enabled == data->wireless_enabled) -+ goto out; -+ -+ /* Only re-enabled wireless if killswitch just changed, otherwise -+ * ignore hardware rf enabled state. -+ */ -+ if (now_enabled && !data->wireless_enabled) { -+ data->wireless_enabled = TRUE; -+ nm_policy_schedule_device_change_check (data); -+ nm_dbus_signal_wireless_enabled (data); -+ } else if (!data->hw_rf_enabled && data->wireless_enabled) { -+ GSList * elt; -+ -+ /* Deactivate all wireless devices and force them down so they -+ * turn off their radios. -+ */ -+ nm_lock_mutex (data->dev_list_mutex, __FUNCTION__); -+ for (elt = data->dev_list; elt; elt = g_slist_next (elt)) { -+ NMDevice * dev = (NMDevice *) elt->data; -+ if (nm_device_is_802_11_wireless (dev)) { -+ nm_device_deactivate (dev); -+ nm_device_bring_down (dev); -+ } -+ } -+ nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__); -+ -+ data->wireless_enabled = FALSE; -+ nm_policy_schedule_device_change_check (data); -+ nm_dbus_signal_wireless_enabled (data); -+ } -+ -+out: -+ /* Schedule another killswitch poll */ -+ source = g_timeout_source_new (6000); -+ g_source_set_callback (source, nm_poll_killswitches, data, NULL); -+ g_source_attach (source, data->main_context); -+ g_source_unref (source); -+} -+ -+static void nm_killswitch_getpower_reply_cb (DBusPendingCall *pcall, NMData * data) -+{ -+ DBusError err; -+ DBusMessage * reply = NULL; -+ guint32 status; -+ -+ g_return_if_fail (pcall != NULL); -+ g_return_if_fail (data != NULL); -+ -+ if (!dbus_pending_call_get_completed (pcall)) -+ goto out; -+ -+ if (!(reply = dbus_pending_call_steal_reply (pcall))) -+ goto out; -+ -+ if (message_is_error (reply)) { -+ dbus_error_init (&err); -+ dbus_set_error_from_message (&err, reply); -+ nm_info ("Error getting killswitch power: %s - %s", err.name, err.message); -+ dbus_error_free (&err); -+ goto out; -+ } -+ -+ if (!dbus_message_get_args (reply, &err, DBUS_TYPE_UINT32, &status, DBUS_TYPE_INVALID)) { -+ nm_info ("Error getting killswitch power arguments: %s - %s", err.name, err.message); -+ dbus_error_free (&err); -+ goto out; -+ } -+ -+ if (status == 0) -+ data->tmp_hw_rf_enabled = FALSE; -+ -+out: -+ if (reply) -+ dbus_message_unref (reply); -+ -+ handle_killswitch_pcall_done (data, pcall); -+ dbus_pending_call_unref (pcall); -+} -+ -+ -+static gboolean nm_poll_killswitches (gpointer user_data) -+{ -+ NMData * data = (NMData *) user_data; -+ DBusConnection * connection = data->dbus_connection; -+ GSList * elt; -+ -+ g_return_val_if_fail (data != NULL, FALSE); -+ -+ data->tmp_hw_rf_enabled = TRUE; -+ -+ for (elt = data->killswitch_list; elt; elt = g_slist_next (elt)) -+ { -+ DBusPendingCall * pcall; -+ DBusMessage * message; -+ -+ message = dbus_message_new_method_call ("org.freedesktop.Hal", -+ elt->data, -+ "org.freedesktop.Hal.Device.KillSwitch", -+ "GetPower"); -+ if (!dbus_connection_send_with_reply (connection, message, &pcall, 5000)) { -+ nm_warning ("%s(): could not send dbus message", __func__); -+ } else if (!pcall) { -+ nm_warning ("%s(): could not send dbus message; pcall was NULL", __func__); -+ } else { -+ dbus_pending_call_set_notify (pcall, -+ (DBusPendingCallNotifyFunction) nm_killswitch_getpower_reply_cb, -+ data, -+ NULL); -+ data->ks_pcall_list = g_slist_append (data->ks_pcall_list, pcall); -+ } -+ dbus_message_unref (message); -+ } -+ return FALSE; -+} -+ -+ - /* -+ * nm_add_killswitch_device -+ * -+ * Adds a killswitch device to the list -+ * -+ */ -+static void nm_add_killswitch_device (NMData * data, const char * udi) -+{ -+ char * type; -+ GSList * elt; -+ -+ type = libhal_device_get_property_string (data->hal_ctx, udi, "killswitch.type", NULL); -+ if (!type) -+ return; -+ -+ if (strcmp (type, "wlan") != 0) -+ goto out; -+ -+ /* see if it's already in the list */ -+ for (elt = data->killswitch_list; elt; elt = g_slist_next (elt)) { -+ const char * list_udi = (const char *) elt->data; -+ if (strcmp (list_udi, udi) == 0) -+ goto out; -+ } -+ -+ /* Start polling switches if this is the first switch we've found */ -+ if (g_slist_length (data->killswitch_list) == 0) { -+ GSource * source = g_idle_source_new (); -+ g_source_set_callback (source, nm_poll_killswitches, data, NULL); -+ g_source_attach (source, data->main_context); -+ g_source_unref (source); -+ } -+ -+ data->killswitch_list = g_slist_append (data->killswitch_list, g_strdup (udi)); -+ nm_info ("Found radio killswitch %s", udi); -+ -+out: -+ libhal_free_string (type); -+} -+ -+/* - * nm_hal_device_new_capability - * - */ -@@ -283,10 +461,9 @@ - NMData *data = (NMData *)libhal_ctx_get_user_data (ctx); - - g_return_if_fail (data != NULL); -+ g_return_if_fail (capability != NULL); - -- /*nm_debug ("nm_hal_device_new_capability() called with udi = %s, capability = %s", udi, capability );*/ -- -- if (capability && ((strcmp (capability, "net.80203") == 0) || (strcmp (capability, "net.80211") == 0))) -+ if (((strcmp (capability, "net.80203") == 0) || (strcmp (capability, "net.80211") == 0))) - { - char *iface; - -@@ -296,6 +473,10 @@ - g_free (iface); - } - } -+ else if (strcmp (capability, "killswitch") == 0) -+ { -+ nm_add_killswitch_device (data, udi); -+ } - } - - -@@ -340,7 +521,31 @@ - libhal_free_string_array (net_devices); - } - -+void nm_add_initial_killswitch_devices (NMData * data) -+{ -+ char ** udis; -+ int num_udis, i; -+ DBusError error; - -+ g_return_if_fail (data != NULL); -+ -+ dbus_error_init (&error); -+ udis = libhal_find_device_by_capability (data->hal_ctx, "killswitch", &num_udis, &error); -+ if (!udis) -+ return; -+ -+ if (dbus_error_is_set (&error)) { -+ nm_warning("Could not find killswitch devices: %s", error.message); -+ dbus_error_free (&error); -+ return; -+ } -+ -+ for (i = 0; i < num_udis; i++) -+ nm_add_killswitch_device (data, udis[i]); -+ libhal_free_string_array (udis); -+} -+ -+ - /* - * nm_state_change_signal_broadcast - * -@@ -616,28 +821,39 @@ - g_return_if_fail (data != NULL); - - if ((data->hal_ctx = nm_get_hal_ctx (data))) -+ { -+ nm_add_initial_killswitch_devices (data); - nm_add_initial_devices (data); -+ } -+ -+ /* If there weren't any killswitches, mark hardware RF to on */ -+ if (g_slist_length (data->killswitch_list) == 0) -+ data->hw_rf_enabled = TRUE; - } - - - void nm_hal_deinit (NMData *data) - { -+ DBusError error; -+ - g_return_if_fail (data != NULL); - -- if (data->hal_ctx) -+ if (!data->hal_ctx) -+ return; -+ -+ g_slist_foreach (data->killswitch_list, (GFunc) g_free, NULL); -+ g_slist_free (data->killswitch_list); -+ data->killswitch_list = NULL; -+ -+ dbus_error_init (&error); -+ libhal_ctx_shutdown (data->hal_ctx, &error); -+ if (dbus_error_is_set (&error)) - { -- DBusError error; -- -- dbus_error_init (&error); -- libhal_ctx_shutdown (data->hal_ctx, &error); -- if (dbus_error_is_set (&error)) -- { -- nm_warning ("libhal shutdown failed - %s", error.message); -- dbus_error_free (&error); -- } -- libhal_ctx_free (data->hal_ctx); -- data->hal_ctx = NULL; -+ nm_warning ("libhal shutdown failed - %s", error.message); -+ dbus_error_free (&error); - } -+ libhal_ctx_free (data->hal_ctx); -+ data->hal_ctx = NULL; - } - - -Index: src/nm-device-802-11-wireless.c -=================================================================== ---- src/nm-device-802-11-wireless.c (Revision 2558) -+++ src/nm-device-802-11-wireless.c (Revision 2652) -@@ -617,7 +617,10 @@ - /* Start the scanning timeout for devices that can do scanning */ - if (nm_device_get_capabilities (dev) & NM_DEVICE_CAP_WIRELESS_SCAN) - { -- self->priv->pending_scan = g_idle_source_new (); -+ /* Stupid orinoco has problems scanning immediately after being up, -+ * so wait a bit before triggering a scan. -+ */ -+ self->priv->pending_scan = g_timeout_source_new (600); - g_source_set_callback (self->priv->pending_scan, - nm_device_802_11_wireless_scan, - self, -@@ -2981,6 +2984,9 @@ - return NM_ACT_STAGE_RETURN_POSTPONE; - } - -+ /* Some cards are dumb. Wait a second */ -+ sleep (1); -+ - iface = nm_device_get_iface (dev); - if (!supplicant_exec (self)) - { -@@ -3446,10 +3452,9 @@ - char *genie, *gpos, *gend, *custom; - NMAccessPoint *ap = NULL; - size_t clen; -- int maxrate; -+ int maxrate = 0; - struct iw_event iwe_buf, *iwe = &iwe_buf; - struct stream_descr stream; -- struct wireless_scan * wscan = NULL; - int ret; - - g_return_val_if_fail (dev != NULL, FALSE); -Index: src/NetworkManagerMain.h -=================================================================== ---- src/NetworkManagerMain.h (Revision 2558) -+++ src/NetworkManagerMain.h (Revision 2652) -@@ -82,6 +82,7 @@ - GSList * dev_list; - GMutex * dev_list_mutex; - -+ gboolean hw_rf_enabled; - gboolean wireless_enabled; - gboolean modem_active; - gboolean asleep; -@@ -90,6 +91,10 @@ - GSList * dialup_list; - GMutex * dialup_list_mutex; - -+ GSList * killswitch_list; -+ GSList * ks_pcall_list; /* track killswitch D-Bus pending calls */ -+ gboolean tmp_hw_rf_enabled; -+ - struct NMAccessPointList *allowed_ap_list; - struct NMAccessPointList *invalid_ap_list; - } NMData; -Index: src/NetworkManagerSystem.c -=================================================================== ---- src/NetworkManagerSystem.c (Revision 2558) -+++ src/NetworkManagerSystem.c (Revision 2652) -@@ -64,6 +64,7 @@ - struct sockaddr_in *p; - const char * iface; - int err; -+ NMIP4Config * config = NULL; - - iface = nm_device_get_iface (dev); - -@@ -75,6 +76,15 @@ - if (ip4_gateway == 0) - return TRUE; - -+ /* -+ * Do not add the route if the destination is on the same subnet. -+ */ -+ config = nm_device_get_ip4_config(dev); -+ if (config && -+ ((guint32)ip4_dest & nm_ip4_config_get_netmask(config)) == -+ (nm_ip4_config_get_address(config) & nm_ip4_config_get_netmask(config))) -+ return TRUE; -+ - if ((sk = nm_dev_sock_open (dev, NETWORK_CONTROL, __FUNCTION__, NULL)) == NULL) - return FALSE; - diff --git a/debian/patches/21-endianess_fix_r2754.patch b/debian/patches/21-endianess_fix_r2754.patch deleted file mode 100644 index 4932e22a..00000000 --- a/debian/patches/21-endianess_fix_r2754.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: ChangeLog -=================================================================== ---- ChangeLog (Revision 2753) -+++ ChangeLog (Revision 2754) -@@ -1,3 +1,8 @@ -+2007-08-30 Dan Williams -+ -+ * libnm-util/sha1.c -+ - Include config.h to get defines for endiannes (gnome.org #420216) -+ - 2007-07-26 Dan Williams - - Patch from Bernhard Miklautz -Index: libnm-util/sha1.c -=================================================================== ---- libnm-util/sha1.c (Revision 2753) -+++ libnm-util/sha1.c (Revision 2754) -@@ -12,6 +12,10 @@ - * See README and COPYING for more details. - */ - -+#ifdef HAVE_CONFIG_H -+#include -+#endif -+ - #include - #include - diff --git a/debian/patches/22-fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch b/debian/patches/22-fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch deleted file mode 100644 index ac0459b6..00000000 --- a/debian/patches/22-fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch +++ /dev/null @@ -1,44 +0,0 @@ -=== modified file 'gnome/vpn-properties/Makefile.am' ---- network-manager-0.6.5.old/gnome/vpn-properties/Makefile.am 2007-06-25 13:51:34 +0000 -+++ network-manager-0.6.5/gnome/vpn-properties/Makefile.am 2007-08-03 11:50:32 +0000 -@@ -21,17 +21,16 @@ nm_vpn_properties_CFLAGS = - $(GCONF_CFLAGS) \ - $(GMODULE_CFLAGS) \ - $(LIBGNOMEUI_CFLAGS) \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ - -DICONDIR=\""$(datadir)/icons"\" \ - -DGLADEDIR=\""$(gladedir)"\" \ - -DG_DISABLE_DEPRECATED \ - -DGDK_DISABLE_DEPRECATED \ -- -DGNOME_DISABLE_DEPRECATED \ - -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ - -DVERSION=\"$(VERSION)\" \ - $(NULL) - - nm_vpn_properties_LDADD = \ - $(GLADE_LIBS) \ - $(GTK_LIBS) \ - $(GCONF_LIBS) \ - -=== modified file 'gnome/vpn-properties/Makefile.in' ---- network-manager-0.6.5.old/gnome/vpn-properties/Makefile.in 2007-06-25 13:51:34 +0000 -+++ network-manager-0.6.5/gnome/vpn-properties/Makefile.in 2007-08-03 11:50:32 +0000 -@@ -258,17 +258,16 @@ nm_vpn_properties_CFLAGS = \ - $(GCONF_CFLAGS) \ - $(GMODULE_CFLAGS) \ - $(LIBGNOMEUI_CFLAGS) \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ - -DICONDIR=\""$(datadir)/icons"\" \ - -DGLADEDIR=\""$(gladedir)"\" \ - -DG_DISABLE_DEPRECATED \ - -DGDK_DISABLE_DEPRECATED \ -- -DGNOME_DISABLE_DEPRECATED \ - -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ - -DVERSION=\"$(VERSION)\" \ - $(NULL) - - - nm_vpn_properties_LDADD = \ - $(GLADE_LIBS) \ - $(GTK_LIBS) \ - diff --git a/debian/patches/23-rfkill_return_type.patch b/debian/patches/23-rfkill_return_type.patch deleted file mode 100644 index 1e327d46..00000000 --- a/debian/patches/23-rfkill_return_type.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: src/NetworkManager.c -=================================================================== ---- src/NetworkManager.c (Revision 2974) -+++ src/NetworkManager.c (Arbeitskopie) -@@ -339,7 +339,7 @@ - { - DBusError err; - DBusMessage * reply = NULL; -- guint32 status; -+ gint32 status; - - g_return_if_fail (pcall != NULL); - g_return_if_fail (data != NULL); -@@ -358,7 +358,7 @@ - goto out; - } - -- if (!dbus_message_get_args (reply, &err, DBUS_TYPE_UINT32, &status, DBUS_TYPE_INVALID)) { -+ if (!dbus_message_get_args (reply, &err, DBUS_TYPE_INT32, &status, DBUS_TYPE_INVALID)) { - nm_info ("Error getting killswitch power arguments: %s - %s", err.name, err.message); - dbus_error_free (&err); - goto out; diff --git a/debian/patches/24-get_mode_fix_r3122.patch b/debian/patches/24-get_mode_fix_r3122.patch deleted file mode 100644 index f89db8d5..00000000 --- a/debian/patches/24-get_mode_fix_r3122.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: src/nm-device-802-11-wireless.c -=================================================================== ---- src/nm-device-802-11-wireless.c (Revision 3121) -+++ src/nm-device-802-11-wireless.c (Revision 3122) -@@ -1144,7 +1144,7 @@ - #endif - if (iw_get_ext (nm_dev_sock_get_fd (sk), nm_device_get_iface (NM_DEVICE (self)), SIOCGIWMODE, &wrq) == 0) - { -- if ((mode == IW_MODE_ADHOC) || (mode == IW_MODE_INFRA)) -+ if ((wrq.u.mode == IW_MODE_ADHOC) || (wrq.u.mode == IW_MODE_INFRA)) - mode = wrq.u.mode; - } - else diff --git a/debian/patches/25-libnl_unique_pid_r3155.patch b/debian/patches/25-libnl_unique_pid_r3155.patch deleted file mode 100644 index a14aad83..00000000 --- a/debian/patches/25-libnl_unique_pid_r3155.patch +++ /dev/null @@ -1,417 +0,0 @@ -Index: src/NetworkManagerSystem.c -=================================================================== ---- src/NetworkManagerSystem.c (Revision 3154) -+++ src/NetworkManagerSystem.c (Revision 3155) -@@ -177,24 +177,6 @@ - } - - --static struct nl_cache * get_link_cache (struct nl_handle *nlh) --{ -- static GStaticMutex mutex = G_STATIC_MUTEX_INIT; -- static struct nl_cache * link_cache = NULL; -- -- g_static_mutex_lock (&mutex); -- if (!link_cache) -- link_cache = rtnl_link_alloc_cache (nlh); -- if (!link_cache) -- nm_warning ("ERROR: couldn't allocate rtnl link cache!"); -- else -- nl_cache_update (nlh, link_cache); -- g_static_mutex_unlock (&mutex); -- -- return link_cache; --} -- -- - static void iface_to_rtnl_index (const char *iface, struct nl_handle *nlh, struct rtnl_addr *addr) - { - struct nl_cache * cache = NULL; -@@ -204,14 +186,17 @@ - g_return_if_fail (nlh != NULL); - g_return_if_fail (addr != NULL); - -- if ((cache = get_link_cache (nlh))) -- { -- i = rtnl_link_name2i (cache, iface); -- if (RTNL_LINK_NOT_FOUND != i) -- rtnl_addr_set_ifindex (addr, i); -+ cache = rtnl_link_alloc_cache (nlh); -+ if (!cache) { -+ nm_warning ("%s: couldn't allocate link cache.", __func__); -+ return; - } -- else -- nm_warning ("iface_to_rtnl_link() couldn't allocate link cache."); -+ -+ nl_cache_update (nlh, cache); -+ i = rtnl_link_name2i (cache, iface); -+ if (RTNL_LINK_NOT_FOUND != i) -+ rtnl_addr_set_ifindex (addr, i); -+ nl_cache_destroy_and_free (cache); - } - - -@@ -223,45 +208,104 @@ - g_return_val_if_fail (iface != NULL, NULL); - g_return_val_if_fail (nlh != NULL, NULL); - -- if ((cache = get_link_cache (nlh))) -- have_link = rtnl_link_get_by_name (cache, iface); -- else -- nm_warning ("iface_to_rtnl_link() couldn't allocate link cache."); -+ cache = rtnl_link_alloc_cache (nlh); -+ if (!cache) { -+ nm_warning ("%s: couldn't allocate link cache.", __func__); -+ return NULL; -+ } - -+ nl_cache_update (nlh, cache); -+ have_link = rtnl_link_get_by_name (cache, iface); -+ nl_cache_destroy_and_free (cache); -+ - return have_link; - } - -+static GStaticMutex nlh_mutex = G_STATIC_MUTEX_INIT; - --static struct nl_handle * new_nl_handle (void) -+GHashTable *nl_pids = NULL; -+ -+static struct -+nl_handle * new_nl_handle (void) - { -- struct nl_handle * nlh = NULL; -+ struct nl_handle * nlh = NULL; -+ guint32 nl_pid; -+ int i = 0; - -- nlh = nl_handle_alloc_nondefault(NL_CB_VERBOSE); -- nl_handle_set_pid (nlh, (pthread_self() << 16 | getpid())); -- if (nl_connect(nlh, NETLINK_ROUTE) < 0) -- { -- nm_warning ("%s: couldn't connecto to netlink: %s", __func__, nl_geterror()); -- nl_handle_destroy (nlh); -- nlh = NULL; -+ g_static_mutex_lock (&nlh_mutex); -+ -+ if (nl_pids == NULL) { -+ nl_pids = g_hash_table_new (g_direct_hash, g_direct_equal); -+ g_assert (nl_pids); -+ -+ /* Insert the PID used by nm-netlink-monitor.c */ -+ g_hash_table_insert (nl_pids, GUINT_TO_POINTER (getpid ()), GUINT_TO_POINTER (1)); - } - -+ while (i++ < 10) { -+ nl_pid = g_random_int (); -+ if (!g_hash_table_lookup (nl_pids, GUINT_TO_POINTER (nl_pid))) -+ break; -+ } -+ -+ if (i < 10) { -+ nlh = nl_handle_alloc_nondefault (NL_CB_VERBOSE); -+ nl_handle_set_pid (nlh, nl_pid); -+ -+ if (nl_connect (nlh, NETLINK_ROUTE) < 0) { -+ nm_warning ("%s: couldn't connect to netlink: %s", __func__, nl_geterror ()); -+ nl_handle_destroy (nlh); -+ nlh = NULL; -+ } else { -+ g_hash_table_insert (nl_pids, GUINT_TO_POINTER (nl_pid), GUINT_TO_POINTER (1)); -+ } -+ } else { -+ g_warning ("%s: couldn't find free netlink pid.", __func__); -+ } -+ -+ g_static_mutex_unlock (&nlh_mutex); -+ - return nlh; - } - -+static void -+destroy_nl_handle (struct nl_handle *nlh) -+{ -+ g_return_if_fail (nlh != NULL); - -+ g_static_mutex_lock (&nlh_mutex); -+ g_hash_table_remove (nl_pids, GUINT_TO_POINTER (nl_handle_get_pid (nlh))); -+ g_static_mutex_unlock (&nlh_mutex); -+ -+ nl_close (nlh); -+ nl_handle_destroy (nlh); -+ -+} -+ -+ - int - nm_system_get_rtnl_index_from_iface (const char *iface) - { - struct nl_handle * nlh = NULL; -- struct nl_cache * cache = NULL; -+ struct nl_cache * cache; - int i = RTNL_LINK_NOT_FOUND; - - nlh = new_nl_handle (); -- if (nlh && (cache = get_link_cache (nlh))) -- i = rtnl_link_name2i (cache, iface); -- nl_close (nlh); -- nl_handle_destroy (nlh); -+ if (!nlh) -+ return RTNL_LINK_NOT_FOUND; - -+ cache = rtnl_link_alloc_cache (nlh); -+ if (!cache) { -+ nm_warning ("%s: couldn't allocate link cache."); -+ goto out; -+ } -+ -+ nl_cache_update (nlh, cache); -+ i = rtnl_link_name2i (cache, iface); -+ nl_cache_destroy_and_free (cache); -+ -+out: -+ destroy_nl_handle (nlh); - return i; - } - -@@ -275,18 +319,31 @@ - char * buf = NULL; - - nlh = new_nl_handle (); -- if (nlh && (cache = get_link_cache (nlh))) -- { -- buf = g_malloc0 (MAX_IFACE_LEN); -- if (!rtnl_link_i2name (cache, rtnl_index, buf, MAX_IFACE_LEN - 1)) -- { -- g_free (buf); -- buf = NULL; -- } -+ if (!nlh) -+ return NULL; -+ -+ cache = rtnl_link_alloc_cache (nlh); -+ if (!cache) { -+ nm_warning ("%s: couldn't allocate link cache."); -+ goto out; - } -- nl_close (nlh); -- nl_handle_destroy (nlh); - -+ nl_cache_update (nlh, cache); -+ -+ buf = g_malloc0 (MAX_IFACE_LEN); -+ if (!buf) -+ goto destroy_cache; -+ -+ if (!rtnl_link_i2name (cache, rtnl_index, buf, MAX_IFACE_LEN - 1)) { -+ g_free (buf); -+ buf = NULL; -+ } -+ -+destroy_cache: -+ nl_cache_destroy_and_free (cache); -+ -+out: -+ destroy_nl_handle (nlh); - return buf; - } - -@@ -313,13 +370,15 @@ - config = nm_device_get_ip4_config (dev); - g_return_val_if_fail (config != NULL, FALSE); - -+ nlh = new_nl_handle (); -+ if (!nlh) -+ return FALSE; -+ - nm_system_delete_default_route (); - nm_system_device_flush_addresses (dev); - nm_system_device_flush_routes (dev); - nm_system_flush_arp_cache (); - -- nlh = new_nl_handle (); -- - if ((addr = nm_ip4_config_to_rtnl_addr (config, NM_RTNL_ADDR_DEFAULT))) - { - iface_to_rtnl_index (nm_device_get_iface (dev), nlh, addr); -@@ -330,8 +389,7 @@ - else - nm_warning ("nm_system_device_set_from_ip4_config(): couldn't create rtnl address!\n"); - -- nl_close (nlh); -- nl_handle_destroy (nlh); -+ destroy_nl_handle (nlh); - - sleep (1); - nm_system_device_set_ip4_route (dev, nm_ip4_config_get_gateway (config), 0, 0, nm_ip4_config_get_mss (config)); -@@ -424,7 +482,13 @@ - * Set IPv4 configuration of a VPN device from an NMIP4Config object. - * - */ --gboolean nm_system_vpn_device_set_from_ip4_config (NMNamedManager *named, NMDevice *active_device, const char *iface, NMIP4Config *config, char **routes, int num_routes) -+gboolean -+nm_system_vpn_device_set_from_ip4_config (NMNamedManager *named, -+ NMDevice *active_device, -+ const char *iface, -+ NMIP4Config *config, -+ char **routes, -+ int num_routes) - { - NMIP4Config * ad_config = NULL; - struct nl_handle * nlh = NULL; -@@ -437,71 +501,73 @@ - if (active_device && (ad_config = nm_device_get_ip4_config (active_device))) - nm_system_device_set_ip4_route (active_device, nm_ip4_config_get_gateway (ad_config), nm_ip4_config_get_gateway (config), 0xFFFFFFFF, nm_ip4_config_get_mss (config)); - -- if (iface != NULL && strlen (iface)) -- { -- nm_system_device_set_up_down_with_iface (iface, TRUE); -+ if (!iface || !strlen (iface)) -+ goto done; - -- nlh = new_nl_handle (); -+ nlh = new_nl_handle (); -+ if (!nlh) -+ goto done; - -- if ((addr = nm_ip4_config_to_rtnl_addr (config, NM_RTNL_ADDR_PTP_DEFAULT))) -- { -- int err = 0; -- iface_to_rtnl_index (iface, nlh, addr); -- if ((err = rtnl_addr_add (nlh, addr, 0)) < 0) -- nm_warning ("nm_system_device_set_from_ip4_config(): error %d returned from rtnl_addr_add():\n%s", err, nl_geterror()); -- rtnl_addr_put (addr); -- } -- else -- nm_warning ("nm_system_vpn_device_set_from_ip4_config(): couldn't create rtnl address!\n"); -+ nm_system_device_set_up_down_with_iface (iface, TRUE); - -- /* Set the MTU */ -- if ((request = rtnl_link_alloc ())) -- { -- struct rtnl_link * old; -+ if ((addr = nm_ip4_config_to_rtnl_addr (config, NM_RTNL_ADDR_PTP_DEFAULT))) -+ { -+ int err = 0; -+ iface_to_rtnl_index (iface, nlh, addr); -+ if ((err = rtnl_addr_add (nlh, addr, 0)) < 0) -+ nm_warning ("nm_system_device_set_from_ip4_config(): error %d returned from rtnl_addr_add():\n%s", err, nl_geterror()); -+ rtnl_addr_put (addr); -+ } -+ else -+ nm_warning ("nm_system_vpn_device_set_from_ip4_config(): couldn't create rtnl address!\n"); - -- old = iface_to_rtnl_link (iface, nlh); -- rtnl_link_set_mtu (request, 1412); -- rtnl_link_change (nlh, old, request, 0); -+ /* Set the MTU */ -+ if ((request = rtnl_link_alloc ())) -+ { -+ struct rtnl_link * old; - -- rtnl_link_put (old); -- rtnl_link_put (request); -- } -+ old = iface_to_rtnl_link (iface, nlh); -+ rtnl_link_set_mtu (request, 1412); -+ rtnl_link_change (nlh, old, request, 0); - -- nl_close (nlh); -- nl_handle_destroy (nlh); -+ rtnl_link_put (old); -+ rtnl_link_put (request); -+ } - -- sleep (1); -+ destroy_nl_handle (nlh); - -- nm_system_device_flush_routes_with_iface (iface); -- if (num_routes <= 0) -+ sleep (1); -+ -+ nm_system_device_flush_routes_with_iface (iface); -+ if (num_routes <= 0) -+ { -+ nm_system_delete_default_route (); -+ nm_system_device_add_default_route_via_device_with_iface (iface); -+ } -+ else -+ { -+ int i; -+ for (i = 0; i < num_routes; i++) - { -- nm_system_delete_default_route (); -- nm_system_device_add_default_route_via_device_with_iface (iface); -- } -- else -- { -- int i; -- for (i = 0; i < num_routes; i++) -+ char *valid_ip4_route; -+ -+ /* Make sure the route is valid, otherwise it's a security risk as the route -+ * text is simply taken from the user, and passed directly to system(). If -+ * we did not check the route, think of: -+ * -+ * system("/sbin/ip route add `rm -rf /` dev eth0") -+ * -+ * where `rm -rf /` was the route text. As UID 0 (root), we have to be careful. -+ */ -+ if ((valid_ip4_route = validate_ip4_route (routes[i]))) - { -- char *valid_ip4_route; -- -- /* Make sure the route is valid, otherwise it's a security risk as the route -- * text is simply taken from the user, and passed directly to system(). If -- * we did not check the route, think of: -- * -- * system("/sbin/ip route add `rm -rf /` dev eth0") -- * -- * where `rm -rf /` was the route text. As UID 0 (root), we have to be careful. -- */ -- if ((valid_ip4_route = validate_ip4_route (routes[i]))) -- { -- nm_system_device_add_route_via_device_with_iface (iface, valid_ip4_route); -- g_free (valid_ip4_route); -- } -+ nm_system_device_add_route_via_device_with_iface (iface, valid_ip4_route); -+ g_free (valid_ip4_route); - } - } - } - -+done: - nm_named_manager_add_ip4_config (named, config); - - return TRUE; -@@ -548,7 +614,8 @@ - - g_return_val_if_fail (iface != NULL, FALSE); - -- if (!(nlh = new_nl_handle ())) -+ nlh = new_nl_handle (); -+ if (!nlh) - return FALSE; - - if (!(request = rtnl_link_alloc ())) -@@ -569,9 +636,7 @@ - success = TRUE; - - out: -- nl_close (nlh); -- nl_handle_destroy (nlh); -- -+ destroy_nl_handle (nlh); - return success; - } - -@@ -614,6 +679,6 @@ - out_request: - rtnl_link_put (request); - out_nl_close: -- nl_close (nlh); -- nl_handle_destroy (nlh); -+ destroy_nl_handle (nlh); - } -+ diff --git a/debian/patches/26-libnl_1.0-pre8_r3206.patch b/debian/patches/26-libnl_1.0-pre8_r3206.patch deleted file mode 100644 index 6f96215d..00000000 --- a/debian/patches/26-libnl_1.0-pre8_r3206.patch +++ /dev/null @@ -1,202 +0,0 @@ -Index: src/nm-netlink-monitor.c -=================================================================== ---- src/nm-netlink-monitor.c (Revision 3205) -+++ src/nm-netlink-monitor.c (Revision 3206) -@@ -174,7 +174,7 @@ - } - - monitor_address.nl_family = AF_NETLINK; -- monitor_address.nl_pid = getpid (); -+ monitor_address.nl_pid = UINT_MAX; - monitor_address.nl_groups = RTMGRP_LINK; - - if (bind (fd, -@@ -365,7 +365,7 @@ - packet.header.nlmsg_len = NLMSG_LENGTH (sizeof (struct rtgenmsg)); - packet.header.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST; - packet.header.nlmsg_type = RTM_GETLINK; -- packet.header.nlmsg_pid = getpid (); -+ packet.header.nlmsg_pid = UINT_MAX; - /* Might be good to generate a unique sequence number and track - the response */ - packet.header.nlmsg_seq = sequence_number << 16; -Index: src/NetworkManagerSystem.c -=================================================================== ---- src/NetworkManagerSystem.c (Revision 3205) -+++ src/NetworkManagerSystem.c (Revision 3206) -@@ -196,7 +196,7 @@ - i = rtnl_link_name2i (cache, iface); - if (RTNL_LINK_NOT_FOUND != i) - rtnl_addr_set_ifindex (addr, i); -- nl_cache_destroy_and_free (cache); -+ nl_cache_free (cache); - } - - -@@ -216,55 +216,42 @@ - - nl_cache_update (nlh, cache); - have_link = rtnl_link_get_by_name (cache, iface); -- nl_cache_destroy_and_free (cache); -+ nl_cache_free (cache); - - return have_link; - } - --static GStaticMutex nlh_mutex = G_STATIC_MUTEX_INIT; -- --GHashTable *nl_pids = NULL; -- - static struct --nl_handle * new_nl_handle (void) -+nl_handle *new_nl_handle (gboolean recursive) - { -- struct nl_handle * nlh = NULL; -- guint32 nl_pid; -- int i = 0; -+ struct nl_handle *nlh = NULL; -+ struct nl_cb *cb; - -- g_static_mutex_lock (&nlh_mutex); -- -- if (nl_pids == NULL) { -- nl_pids = g_hash_table_new (g_direct_hash, g_direct_equal); -- g_assert (nl_pids); -- -- /* Insert the PID used by nm-netlink-monitor.c */ -- g_hash_table_insert (nl_pids, GUINT_TO_POINTER (getpid ()), GUINT_TO_POINTER (1)); -+ cb = nl_cb_alloc (NL_CB_VERBOSE); -+ nlh = nl_handle_alloc_cb (cb); -+ if (!nlh) { -+ nm_warning ("%s: couldn't allocate netlink handle: %s", __func__, nl_geterror ()); -+ return NULL; - } - -- while (i++ < 10) { -- nl_pid = g_random_int (); -- if (!g_hash_table_lookup (nl_pids, GUINT_TO_POINTER (nl_pid))) -- break; -- } -+ if (nl_connect (nlh, NETLINK_ROUTE) < 0) { -+ /* HACK: try one more time. Because the netlink monitor for link state -+ * inits before we get here, it grabs the port that matches the PID -+ * of the NM process, which also happens to be the PID that libnl uses -+ * the first time too. The real fix is to convert nm-netlink-monitor.c -+ * over to use libnl. -+ */ -+ nl_handle_destroy (nlh); -+ if (recursive) -+ return NULL; - -- if (i < 10) { -- nlh = nl_handle_alloc_nondefault (NL_CB_VERBOSE); -- nl_handle_set_pid (nlh, nl_pid); -- -- if (nl_connect (nlh, NETLINK_ROUTE) < 0) { -+ nlh = new_nl_handle (TRUE); -+ if (!nlh) { - nm_warning ("%s: couldn't connect to netlink: %s", __func__, nl_geterror ()); -- nl_handle_destroy (nlh); -- nlh = NULL; -- } else { -- g_hash_table_insert (nl_pids, GUINT_TO_POINTER (nl_pid), GUINT_TO_POINTER (1)); -+ return NULL; - } -- } else { -- g_warning ("%s: couldn't find free netlink pid.", __func__); - } - -- g_static_mutex_unlock (&nlh_mutex); -- - return nlh; - } - -@@ -273,16 +260,10 @@ - { - g_return_if_fail (nlh != NULL); - -- g_static_mutex_lock (&nlh_mutex); -- g_hash_table_remove (nl_pids, GUINT_TO_POINTER (nl_handle_get_pid (nlh))); -- g_static_mutex_unlock (&nlh_mutex); -- - nl_close (nlh); - nl_handle_destroy (nlh); -- - } - -- - int - nm_system_get_rtnl_index_from_iface (const char *iface) - { -@@ -290,7 +271,7 @@ - struct nl_cache * cache; - int i = RTNL_LINK_NOT_FOUND; - -- nlh = new_nl_handle (); -+ nlh = new_nl_handle (FALSE); - if (!nlh) - return RTNL_LINK_NOT_FOUND; - -@@ -302,7 +283,7 @@ - - nl_cache_update (nlh, cache); - i = rtnl_link_name2i (cache, iface); -- nl_cache_destroy_and_free (cache); -+ nl_cache_free (cache); - - out: - destroy_nl_handle (nlh); -@@ -318,7 +299,7 @@ - struct nl_cache * cache = NULL; - char * buf = NULL; - -- nlh = new_nl_handle (); -+ nlh = new_nl_handle (FALSE); - if (!nlh) - return NULL; - -@@ -340,7 +321,7 @@ - } - - destroy_cache: -- nl_cache_destroy_and_free (cache); -+ nl_cache_free (cache); - - out: - destroy_nl_handle (nlh); -@@ -370,7 +351,7 @@ - config = nm_device_get_ip4_config (dev); - g_return_val_if_fail (config != NULL, FALSE); - -- nlh = new_nl_handle (); -+ nlh = new_nl_handle (FALSE); - if (!nlh) - return FALSE; - -@@ -504,7 +485,7 @@ - if (!iface || !strlen (iface)) - goto done; - -- nlh = new_nl_handle (); -+ nlh = new_nl_handle (FALSE); - if (!nlh) - goto done; - -@@ -614,7 +595,7 @@ - - g_return_val_if_fail (iface != NULL, FALSE); - -- nlh = new_nl_handle (); -+ nlh = new_nl_handle (FALSE); - if (!nlh) - return FALSE; - -@@ -658,7 +639,7 @@ - if (!mtu) - return; - -- nlh = new_nl_handle (); -+ nlh = new_nl_handle (FALSE); - if (!nlh) - return; - diff --git a/debian/patches/27-dont_repeat_errors.patch b/debian/patches/27-dont_repeat_errors.patch deleted file mode 100644 index 64e23223..00000000 --- a/debian/patches/27-dont_repeat_errors.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/src/NetworkManager.c b/src/NetworkManager.c -index 4f89f63..ddb5a4a 100644 ---- a/src/NetworkManager.c -+++ b/src/NetworkManager.c -@@ -65,6 +65,8 @@ - */ - static NMData *nm_data = NULL; - -+char *ks_err_message = NULL; -+ - static gboolean sigterm_pipe_handler (GIOChannel *src, GIOCondition condition, gpointer data); - static void nm_data_free (NMData *data); - static gboolean nm_poll_killswitches(gpointer user_data); -@@ -353,13 +355,21 @@ static void nm_killswitch_getpower_reply_cb (DBusPendingCall *pcall, NMData * da - if (message_is_error (reply)) { - dbus_error_init (&err); - dbus_set_error_from_message (&err, reply); -- nm_info ("Error getting killswitch power: %s - %s", err.name, err.message); -+ if (!ks_err_message || strcmp (ks_err_message, err.message)) { -+ nm_info ("Error getting killswitch power: %s - %s", err.name, err.message); -+ g_free (ks_err_message); -+ ks_err_message = g_strdup (err.message); -+ } - dbus_error_free (&err); - goto out; - } - - if (!dbus_message_get_args (reply, &err, DBUS_TYPE_INT32, &status, DBUS_TYPE_INVALID)) { -- nm_info ("Error getting killswitch power arguments: %s - %s", err.name, err.message); -+ if (!ks_err_message || strcmp (ks_err_message, err.message)) { -+ nm_info ("Error getting killswitch power arguments: %s - %s", err.name, err.message); -+ g_free (ks_err_message); -+ ks_err_message = g_strdup (err.message); -+ } - dbus_error_free (&err); - goto out; - } -- cgit 1.3.0-6-gf8a5 From 6750b359b814598de75aa800c952a2a7e0844939 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Thu, 3 Apr 2008 00:20:38 +0000 Subject: * debian/patches/06-dispatch_more_events.patch - NetworkManagerDispatcher.1.in has been renamed to NetworkManagerDispatcher.8.in. Update the patch accordingly. * debian/network-manager.manpages - The NetworkManager and NetworkManagerDispatcher man pages have been moved to section 8. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2154 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/06-dispatch_more_events.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'debian/patches') diff --git a/debian/patches/06-dispatch_more_events.patch b/debian/patches/06-dispatch_more_events.patch index 60d50432..8ef4b176 100644 --- a/debian/patches/06-dispatch_more_events.patch +++ b/debian/patches/06-dispatch_more_events.patch @@ -48,8 +48,8 @@ nmd_execute_scripts (action, dev_iface_name); } ---- man/NetworkManagerDispatcher.1.in 2006-02-01 19:14:15.000000000 +0100 -+++ man/NetworkManagerDispatcher.1.in.new 2006-08-15 20:13:00.000000000 +0200 +--- man/NetworkManagerDispatcher.8.in 2006-02-01 19:14:15.000000000 +0100 ++++ man/NetworkManagerDispatcher.8.in.new 2006-08-15 20:13:00.000000000 +0200 @@ -12,10 +12,14 @@ directory in response to interfaces coming up and down. The scripts are run alphabetically. The first parameter is the network interface name. The second -- cgit 1.3.0-6-gf8a5 From 21880be8206c4c90dae6826f8b479c74b9d7d942 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Thu, 3 Apr 2008 00:24:41 +0000 Subject: debian/patches/07-domain_search.patch - Add support for DHCP domain-search option. (Closes: #465158) Thanks to Bas Zoetekouw for the patch. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2156 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/07-domain_search.patch | 281 ++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 debian/patches/07-domain_search.patch (limited to 'debian/patches') diff --git a/debian/patches/07-domain_search.patch b/debian/patches/07-domain_search.patch new file mode 100644 index 00000000..cf614a0d --- /dev/null +++ b/debian/patches/07-domain_search.patch @@ -0,0 +1,281 @@ +Index: NetworkManager-0.6/src/dhcp-manager/nm-dhcp-manager.c +=================================================================== +--- NetworkManager-0.6.orig/src/dhcp-manager/nm-dhcp-manager.c 2008-03-02 09:25:16.000000000 +0100 ++++ NetworkManager-0.6/src/dhcp-manager/nm-dhcp-manager.c 2008-03-02 09:26:33.000000000 +0100 +@@ -472,6 +472,7 @@ + guint32 num_ip4_nis_servers = 0; + char * hostname = NULL; + char * domain_names = NULL; ++ char * domain_searches = NULL; + char * nis_domain = NULL; + guint32 * ip4_nis_servers = NULL; + struct in_addr temp_addr; +@@ -520,6 +521,7 @@ + get_ip4_string (manager, dev, "host_name", &hostname, TRUE); + get_ip4_uint32s (manager, dev, "domain_name_servers", &ip4_nameservers, &num_ip4_nameservers, FALSE); + get_ip4_string (manager, dev, "domain_name", &domain_names, TRUE); ++ get_ip4_string (manager, dev, "domain_search", &domain_searches, TRUE); + get_ip4_string (manager, dev, "nis_domain", &nis_domain, TRUE); + get_ip4_uint32s (manager, dev, "nis_servers", &ip4_nis_servers, &num_ip4_nis_servers, TRUE); + +@@ -557,14 +559,27 @@ + + if (domain_names) + { +- char **searches = g_strsplit (domain_names, " ", 0); ++ char **domains = g_strsplit (domain_names, " ", 0); + char **s; + +- for (s = searches; *s; s++) ++ for (s = domains; *s; s++) + { + nm_info (" domain name '%s'", *s); + nm_ip4_config_add_domain (ip4_config, *s); + } ++ g_strfreev (domains); ++ } ++ ++ if (domain_searches) ++ { ++ char **searches = g_strsplit (domain_searches, " ", 0); ++ char **s; ++ ++ for (s = searches; *s; s++) ++ { ++ nm_info (" domain search '%s'", *s); ++ nm_ip4_config_add_search (ip4_config, *s); ++ } + g_strfreev (searches); + } + +Index: NetworkManager-0.6/src/named-manager/nm-named-manager.c +=================================================================== +--- NetworkManager-0.6.orig/src/named-manager/nm-named-manager.c 2008-03-02 09:25:16.000000000 +0100 ++++ NetworkManager-0.6/src/named-manager/nm-named-manager.c 2008-03-02 09:26:33.000000000 +0100 +@@ -319,7 +319,7 @@ + static char * + compute_searches (NMNamedManager *mgr, NMIP4Config *config) + { +- int i, num_searches; ++ int i, num_searches, num_domains; + GString *str = NULL; + + g_return_val_if_fail (mgr != NULL, g_strdup ("")); +@@ -328,14 +328,54 @@ + if (!config) + return g_strdup (""); + +- num_searches = nm_ip4_config_get_num_domains (config); +- for (i = 0; i < num_searches; i++) +- { +- if (!str) +- str = g_string_new ("search"); ++ num_searches = nm_ip4_config_get_num_searches (config); ++ num_domains = nm_ip4_config_get_num_domains (config); ++ ++ /* ISC DHCP 3.1 provides support for the domain-search option. This is the ++ * correct way for a DHCP server to provide a domain search list. Wedging ++ * multiple domains into the domain-name option is a horrible hack. ++ * ++ * So, we handle it like this (as proposed by Andrew Pollock at ++ * http://bugs.debian.org/465158): ++ * ++ * - if the domain-search option is present in the data received via DHCP, ++ * use it in favour of the domain-name option for setting the search ++ * directive in /etc/resolv.conf ++ * ++ * - if the domain-name option is present in the data received via DHCP, use ++ * it to set the domain directive in /etc/resolv.conf ++ * (this is handled in compute_domain() below) ++ * ++ * - if only the domain-name option is present in the data received via DHCP ++ * (and domain-search is not), for backwards compatibility, set the search ++ * directive in /etc/resolv.conf to the specified domain names ++ */ + +- g_string_append_c (str, ' '); +- g_string_append (str, nm_ip4_config_get_domain (config, i)); ++ if ( num_searches == 0 && num_domains > 0 ) ++ { ++ /* old, pre-ISC-3.1 fallback: ++ * use (possibly multiple entries from) domain-name for the search entry */ ++ str = g_string_new ("search"); ++ for (i = 0; i < num_domains; i++) ++ { ++ g_string_append_c (str, ' '); ++ g_string_append (str, nm_ip4_config_get_domain (config, i)); ++ } ++ } ++ else if ( num_searches > 0 ) ++ { ++ /* the "correct", post-ISC-3.1 situation: use searches just as received */ ++ str = g_string_new ("search"); ++ for (i = 0; i < num_searches; i++) ++ { ++ g_string_append_c (str, ' '); ++ g_string_append (str, nm_ip4_config_get_search (config, i)); ++ } ++ } ++ else /* num_searches == 0 && num_domains == 0 */ ++ { ++ /* no info available at all */ ++ return g_strdup (""); + } + + if (!str) +@@ -346,11 +386,41 @@ + return g_string_free (str, FALSE); + } + ++static char * ++compute_domain (NMNamedManager *mgr, NMIP4Config *config) ++{ ++ int num_domains; ++ GString *str = NULL; ++ ++ g_return_val_if_fail (mgr != NULL, g_strdup ("")); ++ ++ /* config can be NULL */ ++ if (!config) ++ return g_strdup (""); ++ ++ num_domains = nm_ip4_config_get_num_domains (config); ++ ++ /* warn the user that he should change his config ++ * (see comments above in compute_search() ) */ ++ if ( num_domains > 1 ) ++ nm_warning ("DHCP server sent multiple entries in domain-name; this is obsolete behaviour; please fix or update your DHCP server"); ++ ++ if (num_domains == 0) ++ return g_strdup (""); ++ ++ str = g_string_new ("domain "); ++ g_string_append (str, nm_ip4_config_get_domain (config, 0)); ++ g_string_append_c (str, '\n'); ++ ++ return g_string_free (str, FALSE); ++} ++ + static gboolean + rewrite_resolv_conf (NMNamedManager *mgr, NMIP4Config *config, GError **error) + { + const char * tmp_resolv_conf = RESOLV_CONF ".tmp"; + char * searches = NULL; ++ char * domain = NULL; + FILE * f; + NMIP4Config *ns_config = config; + +@@ -388,23 +458,27 @@ + } + g_return_val_if_fail (ns_config != NULL, FALSE); + ++ domain = compute_domain (mgr, ns_config); + searches = compute_searches (mgr, ns_config); + + if (mgr->priv->use_named == TRUE) { + /* Using caching-nameserver & local DNS */ +- if (fprintf (f, "%s%s%s", "; Use a local caching nameserver controlled by NetworkManager\n\n", searches, "\nnameserver 127.0.0.1\n") < 0) ++ if (fprintf (f, "%s%s%s%s", "; Use a local caching nameserver controlled by NetworkManager\n\n", domain, searches, "\nnameserver 127.0.0.1\n") < 0) + goto lose; + } else { + /* Using glibc resolver */ + char *nameservers = compute_nameservers (mgr, ns_config); + ++ fprintf (f, "%s\n\n", domain); + fprintf (f, "%s\n\n", searches); +- g_free (searches); +- + fprintf (f, "%s\n\n", nameservers); ++ + g_free (nameservers); + } + ++ g_free (domain); ++ g_free (searches); ++ + if (fclose (f) < 0) + goto lose; + +@@ -414,6 +488,7 @@ + return TRUE; + + lose: ++ g_free (domain); + g_free (searches); + fclose (f); + g_set_error (error, +Index: NetworkManager-0.6/src/nm-ip4-config.c +=================================================================== +--- NetworkManager-0.6.orig/src/nm-ip4-config.c 2008-03-02 09:25:16.000000000 +0100 ++++ NetworkManager-0.6/src/nm-ip4-config.c 2008-03-02 09:26:33.000000000 +0100 +@@ -46,6 +46,7 @@ + + GSList * nameservers; + GSList * domains; ++ GSList * searches; + + gchar * hostname; + gchar * nis_domain; +@@ -275,6 +276,17 @@ + config->domains = g_slist_append (config->domains, g_strdup (domain)); + } + ++void nm_ip4_config_add_search (NMIP4Config *config, const char *search) ++{ ++ g_return_if_fail (config != NULL); ++ g_return_if_fail (search != NULL); ++ ++ if (!strlen (search)) ++ return; ++ ++ config->searches = g_slist_append (config->searches, g_strdup (search)); ++} ++ + void nm_ip4_config_set_hostname (NMIP4Config *config, const char *hostname) + { + g_return_if_fail (config != NULL); +@@ -329,6 +341,25 @@ + return (g_slist_length (config->domains)); + } + ++const char *nm_ip4_config_get_search (NMIP4Config *config, guint i) ++{ ++ const char *search; ++ ++ g_return_val_if_fail (config != NULL, NULL); ++ g_return_val_if_fail (i < g_slist_length (config->searches), NULL); ++ ++ if ((search = (const char *) g_slist_nth_data (config->searches, i))) ++ return search; ++ return NULL; ++} ++ ++guint32 nm_ip4_config_get_num_searches (NMIP4Config *config) ++{ ++ g_return_val_if_fail (config != NULL, 0); ++ ++ return (g_slist_length (config->searches)); ++} ++ + guint32 nm_ip4_config_get_mtu (NMIP4Config *config) + { + g_return_val_if_fail (config != NULL, 0); +Index: NetworkManager-0.6/src/nm-ip4-config.h +=================================================================== +--- NetworkManager-0.6.orig/src/nm-ip4-config.h 2008-03-02 09:25:16.000000000 +0100 ++++ NetworkManager-0.6/src/nm-ip4-config.h 2008-03-02 09:26:33.000000000 +0100 +@@ -68,6 +68,14 @@ + const char * nm_ip4_config_get_domain (NMIP4Config *config, guint i); + guint32 nm_ip4_config_get_num_domains (NMIP4Config *config); + ++void nm_ip4_config_add_search (NMIP4Config *config, const char *search); ++const char * nm_ip4_config_get_search (NMIP4Config *config, guint i); ++guint32 nm_ip4_config_get_num_searches (NMIP4Config *config); ++ ++void nm_ip4_config_add_domain (NMIP4Config *config, const char *search); ++const char * nm_ip4_config_get_domain (NMIP4Config *config, guint i); ++guint32 nm_ip4_config_get_num_searches (NMIP4Config *config); ++ + guint32 nm_ip4_config_get_mtu (NMIP4Config *config); + void nm_ip4_config_set_mtu (NMIP4Config *config, guint32 mtu); + -- cgit 1.3.0-6-gf8a5 From 43c312ba7032101a1c6c962f4aa7da056c710d7c Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Thu, 3 Apr 2008 01:29:36 +0000 Subject: debian/patches/08-hal_deprecated_keys.patch - Add support for the "net.originating_device" key, which has replaced the deprecated "net.physical_device" key in newer HAL versions. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2160 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/08-hal_deprecated_keys.patch | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 debian/patches/08-hal_deprecated_keys.patch (limited to 'debian/patches') diff --git a/debian/patches/08-hal_deprecated_keys.patch b/debian/patches/08-hal_deprecated_keys.patch new file mode 100644 index 00000000..5e09f8c2 --- /dev/null +++ b/debian/patches/08-hal_deprecated_keys.patch @@ -0,0 +1,34 @@ +Index: src/nm-device.c +=================================================================== +--- src/nm-device.c (Revision 3527) ++++ src/nm-device.c (Arbeitskopie) +@@ -115,19 +115,24 @@ + nm_get_device_driver_name (LibHalContext *ctx, const char *udi) + { + char * driver_name = NULL; +- char * physdev_udi = NULL; ++ char * origdev_udi = NULL; + + g_return_val_if_fail (ctx != NULL, NULL); + g_return_val_if_fail (udi != NULL, NULL); + +- physdev_udi = libhal_device_get_property_string (ctx, udi, "net.physical_device", NULL); +- if (physdev_udi && libhal_device_property_exists (ctx, physdev_udi, "info.linux.driver", NULL)) ++ origdev_udi = libhal_device_get_property_string (ctx, udi, "net.originating_device", NULL); ++ if (!origdev_udi) { ++ /* Older HAL uses 'physical_device' */ ++ origdev_udi = libhal_device_get_property_string (ctx, udi, "net.physical_device", NULL); ++ } ++ ++ if (origdev_udi && libhal_device_property_exists (ctx, origdev_udi, "info.linux.driver", NULL)) + { +- char *drv = libhal_device_get_property_string (ctx, physdev_udi, "info.linux.driver", NULL); ++ char *drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); + driver_name = g_strdup (drv); + g_free (drv); + } +- g_free (physdev_udi); ++ g_free (origdev_udi); + + return driver_name; + } -- cgit 1.3.0-6-gf8a5 From d3b68e218e4bc02fc9056797dd5e120704ad8121 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Sat, 5 Jul 2008 12:59:01 +0000 Subject: * debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch - Fix memory leak in src/nm-dbus-net.c. (Closes: #488604) git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2346 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- .../09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch (limited to 'debian/patches') diff --git a/debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch b/debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch new file mode 100644 index 00000000..c3bf1011 --- /dev/null +++ b/debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch @@ -0,0 +1,13 @@ +Index: src/nm-dbus-net.c +=================================================================== +--- src/nm-dbus-net.c (Revision 3769) ++++ src/nm-dbus-net.c (Revision 3770) +@@ -69,6 +69,8 @@ + + compare_path = g_strdup_printf ("%s/%s/Networks/%s", + NM_DBUS_PATH_DEVICES, escaped_dev, escaped_ssid); ++ g_free (escaped_dev); ++ g_free (escaped_ssid); + + len = strlen (compare_path); + if (strncmp (path, compare_path, len) == 0) { -- cgit 1.3.0-6-gf8a5 From 44c2362491293cbd4839cb89087de99e26b4ddf9 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Wed, 14 Jan 2009 08:16:21 +0000 Subject: * debian/patches/20-manual_means_always_online.patch - manual-means-online: If there are interfaces that are not managed by NetworkManager because they have custom configuration in /etc/network/interfaces, we assume to be online. This is obviously not always correct. But reporting offline state for unmanaged devices is causing major hassles as more and more apps rely on NM and go into offline mode otherwise, even if there is a connection (established via ifupdown). (Closes: #491826, #502371, #509006, #509829, #511712) git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2742 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/20-manual_means_always_online.patch | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 debian/patches/20-manual_means_always_online.patch (limited to 'debian/patches') diff --git a/debian/patches/20-manual_means_always_online.patch b/debian/patches/20-manual_means_always_online.patch new file mode 100644 index 00000000..4da87b8e --- /dev/null +++ b/debian/patches/20-manual_means_always_online.patch @@ -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; + } -- cgit 1.3.0-6-gf8a5 From 5b1afa498f15562272686b5a7b167780bc55b213 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Sun, 22 Feb 2009 02:05:46 +0000 Subject: Merged revisions 2066,2304-2305,2308,2317-2318,2320-2323,2325,2333,2405-2415,2426-2429,2431-2434,2456-2458,2460,2464,2507-2508,2510,2513-2515,2517,2538-2539,2659-2668,2734-2735,2862 via svnmerge from svn+ssh://biebl@svn.debian.org/svn/pkg-utopia/packages/experimental/networkmanager ........ r2066 | biebl | 2008-01-25 15:36:51 +0100 (Fr, 25 Jan 2008) | 19 lines * SVN snapshot of the upcoming 0.7 release. * Drop patches which are either obsolete, merged upstream or not yet ported - 01-supplicant_timeout.patch - 04-if_fix.patch - 11-man_page_sh_name.patch - 12_readme_format.patch - 13-validate_mac_addr.patch - 20-stable_branch_updates_r2652.patch - 21-endianess_fix_r2754.patch - 22-fix_vpn_ftbfs_dont_disable_gnome_deprecated.patch - 23-rfkill_return_type.patch - 24-get_mode_fix_r3122.patch - 25-libnl_unique_pid_r3155.patch - 26-libnl_1.0-pre8_r3206.patch - 27-dont_repeat_errors.patch * debian/patches/05-debian_backend.patch - Updated for 0.7. * debian/patches/02-dbus_access_network_manager.patch - Updated for 0.7. ........ r2304 | sjoerd | 2008-06-18 15:05:11 +0200 (Mi, 18 Jun 2008) | 1 line Merge mbiebl's packaging ........ r2305 | sjoerd | 2008-06-18 15:39:30 +0200 (Mi, 18 Jun 2008) | 3 lines * New SVN snapshot * debian/patches/03-system-settings-conf.patch - Removed. Merged upstream ........ r2308 | sjoerd | 2008-06-18 16:54:57 +0200 (Mi, 18 Jun 2008) | 2 lines * Split out libnm-glib-vpn from libnm-glib * debian/rules: Use list-missing ........ r2317 | sjoerd | 2008-06-18 19:39:15 +0200 (Mi, 18 Jun 2008) | 1 line Ensure we install all header files ........ r2318 | sjoerd | 2008-06-18 19:47:38 +0200 (Mi, 18 Jun 2008) | 1 line Don't forget about nm-types.h ........ r2320 | biebl | 2008-06-19 00:18:13 +0200 (Do, 19 Jun 2008) | 2 lines Fix symbols files (remove Debian revision) ........ r2321 | biebl | 2008-06-19 00:20:07 +0200 (Do, 19 Jun 2008) | 5 lines - nm-vpn-properties was removed. Remove the now unnecessary build-deps. - Wrap lines in the long description. - libnm-glib-dev seems to required network-manager-dev ........ r2322 | biebl | 2008-06-19 00:21:18 +0200 (Do, 19 Jun 2008) | 3 lines Merge changelog. 0.7.0~svn3747-1 was never released. A more complete changelog will follow... ........ r2323 | biebl | 2008-06-19 00:23:48 +0200 (Do, 19 Jun 2008) | 2 lines Actually remove the NetworkManagerDispatcher init script. ........ r2325 | biebl | 2008-06-19 01:58:40 +0200 (Do, 19 Jun 2008) | 1 line Fix the package name in libnm-glib-vpn0.symbols ........ r2333 | sjoerd | 2008-06-22 23:27:01 +0200 (So, 22 Jun 2008) | 3 lines * debian/patches/10-execute_system_dhclient_script.patch - Added. Let NM's custom dhclient script execute the systems dhclient script. ........ r2405 | biebl | 2008-08-22 21:39:05 +0200 (Fr, 22 Aug 2008) | 2 lines Update symbols file for svn snapshot r4002 ........ r2406 | biebl | 2008-08-22 21:40:18 +0200 (Fr, 22 Aug 2008) | 2 lines Add "status" action. Requires lsb-base (>= 3.2-14). ........ r2407 | biebl | 2008-08-22 21:43:29 +0200 (Fr, 22 Aug 2008) | 5 lines Disable 05-debian_backend.patch and 10-execute_system_dhclient_script.patch The integration of resolvconf will have to be done differently. The current patches no longer apply. ........ r2408 | biebl | 2008-08-22 21:44:12 +0200 (Fr, 22 Aug 2008) | 2 lines Stop NM at priority 88, exclude private libs from dh_makeshlibs. ........ r2409 | biebl | 2008-08-22 21:46:43 +0200 (Fr, 22 Aug 2008) | 5 lines Update installed files/directories - Install avahi action script and dbus config file - Install nm-dhcp4-config.h header - Install dispatcher.d and system-connections directories created by upstream. ........ r2410 | biebl | 2008-08-22 21:47:21 +0200 (Fr, 22 Aug 2008) | 2 lines Copyright has to be revised. This is a first attempt to remove stale stuff. ........ r2411 | biebl | 2008-08-22 21:47:48 +0200 (Fr, 22 Aug 2008) | 2 lines Update to svn r4002 ........ r2412 | biebl | 2008-08-22 21:49:32 +0200 (Fr, 22 Aug 2008) | 4 lines - Bump Standards Version to 3.8.0 - Suggest avahi-autoipd, NM no longer does IPv4LL - Bump dependency on lsb-base, required by status_of_proc ........ r2413 | biebl | 2008-08-22 22:14:37 +0200 (Fr, 22 Aug 2008) | 1 line Remove, all relevant parts are upstream now ........ r2414 | biebl | 2008-08-22 22:15:21 +0200 (Fr, 22 Aug 2008) | 4 lines Remove 10-execute_system_dhclient_script.patch, patch no longer applies. Resolvconf intergration will have to be addressedd differently. ........ r2415 | biebl | 2008-08-22 22:16:09 +0200 (Fr, 22 Aug 2008) | 2 lines Update to r4004, which contains our custom backend changes. ........ r2426 | smcv | 2008-09-30 19:21:44 +0200 (Di, 30 Sep 2008) | 2 lines * Newer tarball * debian/patches/03-run-resolvconf.patch: Use (and depend on) resolvconf ........ r2427 | biebl | 2008-10-01 13:40:09 +0200 (Mi, 01 Okt 2008) | 5 lines Revert r2426 After a short discussion on irc, it deemed to be best to revert this change as upstream has added resolvconf in r4043 ........ r2428 | sjoerd | 2008-10-03 00:17:18 +0200 (Fr, 03 Okt 2008) | 1 line Update to svn version 4142 ........ r2429 | sjoerd | 2008-10-03 00:40:18 +0200 (Fr, 03 Okt 2008) | 1 line Update the various symbols files ........ r2431 | biebl | 2008-10-03 01:55:09 +0200 (Fr, 03 Okt 2008) | 2 lines Strip off debian revision ........ r2432 | biebl | 2008-10-03 01:57:04 +0200 (Fr, 03 Okt 2008) | 2 lines Pass the correct path of resolvconf and dhclient to ./configure ........ r2433 | biebl | 2008-10-03 01:57:25 +0200 (Fr, 03 Okt 2008) | 2 lines Install the ifupdown plugin and enable it by default. ........ r2434 | sjoerd | 2008-10-03 13:40:53 +0200 (Fr, 03 Okt 2008) | 3 lines * debian/patches/03-nm_get_debian_hostname.patch: - Added. Temporary minimal patch to get hostname from /etc/hostname. There is work being done upstream for a more extensive version. ........ r2456 | sjoerd | 2008-10-10 00:31:49 +0200 (Fr, 10 Okt 2008) | 1 line Update to svn revision 4160 ........ r2457 | sjoerd | 2008-10-10 00:34:20 +0200 (Fr, 10 Okt 2008) | 1 line remove 03-nm_get_debian_hostname.patch, a more complete implementation is merged upstream ........ r2458 | sjoerd | 2008-10-10 00:36:36 +0200 (Fr, 10 Okt 2008) | 1 line unfuck the changelog ........ r2460 | sjoerd | 2008-10-18 21:02:32 +0200 (Sa, 18 Okt 2008) | 1 line Update snapshot to svn version 4191 ........ r2464 | sjoerd | 2008-10-18 22:30:07 +0200 (Sa, 18 Okt 2008) | 1 line target experimental ........ r2507 | sjoerd | 2008-11-29 22:05:27 +0100 (Sa, 29 Nov 2008) | 1 line Start preparing new upstream release (0.7.0) ........ r2508 | sjoerd | 2008-11-29 22:22:54 +0100 (Sa, 29 Nov 2008) | 1 line debian/libnm-util0.symbols: Updated ........ r2510 | sjoerd | 2008-11-29 23:15:59 +0100 (Sa, 29 Nov 2008) | 1 line debian/libnm-glib0.symbols: Updated ........ r2513 | sjoerd | 2008-11-30 15:07:06 +0100 (So, 30 Nov 2008) | 2 lines * debian/patches/03-F3507g.patch - Added. Fix gsm support for Ericsson F3507g Mobile Broadband cards ........ r2514 | biebl | 2008-11-30 15:07:49 +0100 (So, 30 Nov 2008) | 6 lines Update all symbols files - Strip of debian revision number - Use the final 0.7.0 version number for the ~svn??? snapshots which were never released anyway. ........ r2515 | sjoerd | 2008-11-30 15:08:29 +0100 (So, 30 Nov 2008) | 1 line Fix typo in the name ........ r2517 | sjoerd | 2008-12-04 00:52:46 +0100 (Do, 04 Dez 2008) | 1 line debian/control: Recommend ppp ........ r2538 | biebl | 2008-12-06 00:53:36 +0100 (Sa, 06 Dez 2008) | 5 lines * debian/patches/04-ltversioning.patch - Bump soname of libnm-util due to an ABI break between 0.6.6 and 0.7. (Closes: #503682) * Update control, install and symbols file for the new libnm-util library name. ........ r2539 | biebl | 2008-12-06 01:12:06 +0100 (Sa, 06 Dez 2008) | 2 lines * debian/patches/05-dhclient_lease_files.patch - Change the location of the dhclient lease files to /var/lib/dhcp3. ........ r2659 | biebl | 2008-12-16 07:48:51 +0100 (Di, 16 Dez 2008) | 4 lines Rework the changelog for (0.7.0~svn4191-1) List all changes between 0.6.6-2 and 0.7.0~svn4191-1 ........ r2660 | biebl | 2008-12-16 08:55:37 +0100 (Di, 16 Dez 2008) | 2 lines Close bug reports that are fixed by this new upstream release. ........ r2661 | biebl | 2008-12-16 09:03:46 +0100 (Di, 16 Dez 2008) | 5 lines * debian/control - Add Conflicts/Replaces: network-manager-pptp (<< 0.7~~) as the pppd plugin is now shipped by this package. - Add Breaks for network-manager-{gnome,kde} (<< 0.7~~) as the 0.6 versions of those packages do not work with network-manager 0.7. ........ r2662 | biebl | 2008-12-16 09:18:47 +0100 (Di, 16 Dez 2008) | 2 lines Add the vpn (core) plugins also to the Breaks list. ........ r2663 | biebl | 2008-12-16 09:28:27 +0100 (Di, 16 Dez 2008) | 3 lines * debian/network-manager.README.Debian - Merge the README.Debian from Ubuntu which describes the new managed/unmanaged modes. ........ r2664 | biebl | 2008-12-16 09:39:13 +0100 (Di, 16 Dez 2008) | 2 lines * debian/nm-system-settings.conf - Set default mode to unmanaged. ........ r2665 | biebl | 2008-12-16 09:42:40 +0100 (Di, 16 Dez 2008) | 1 line changelog tweaks ........ r2666 | biebl | 2008-12-16 09:55:59 +0100 (Di, 16 Dez 2008) | 3 lines * debian/copyright - Revised and updated. libnm-glib and libnm-util are licensed under the LGPL v2 or later. ........ r2667 | biebl | 2008-12-16 09:56:31 +0100 (Di, 16 Dez 2008) | 1 line Upload to experimental ........ r2668 | biebl | 2008-12-16 10:04:31 +0100 (Di, 16 Dez 2008) | 1 line Refresh 03-F3507g.patch with -p1 ........ r2734 | biebl | 2009-01-13 08:10:58 +0100 (Di, 13 Jan 2009) | 2 lines * debian/control - Add ${misc:Depends} to all binary packages. ........ r2735 | biebl | 2009-01-13 08:15:00 +0100 (Di, 13 Jan 2009) | 2 lines Let network-manager depend on dhcp3-client directly, as the dependency on dhcdbd has been removed. (Closes: #509655) ........ r2862 | biebl | 2009-02-20 02:47:38 +0100 (Fr, 20 Feb 2009) | 3 lines * debian/rules - Include debhelper.mk before any other files as recommended by the cdbs documentation. ........ git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2884 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/01-supplicant_timeout.patch | 11 - .../patches/02-dbus_access_network_manager.patch | 12 +- debian/patches/03-F3507g.patch | 128 +++++++ debian/patches/04-ltversioning.patch | 78 +++++ debian/patches/05-debian_backend.patch | 371 --------------------- debian/patches/05-dhclient_lease_files.patch | 16 + debian/patches/06-dispatch_more_events.patch | 99 ------ debian/patches/13-validate_mac_addr.patch | 33 -- debian/patches/series | 4 + 9 files changed, 232 insertions(+), 520 deletions(-) delete mode 100644 debian/patches/01-supplicant_timeout.patch create mode 100644 debian/patches/03-F3507g.patch create mode 100644 debian/patches/04-ltversioning.patch delete mode 100644 debian/patches/05-debian_backend.patch create mode 100644 debian/patches/05-dhclient_lease_files.patch delete mode 100644 debian/patches/06-dispatch_more_events.patch delete mode 100644 debian/patches/13-validate_mac_addr.patch create mode 100644 debian/patches/series (limited to 'debian/patches') diff --git a/debian/patches/01-supplicant_timeout.patch b/debian/patches/01-supplicant_timeout.patch deleted file mode 100644 index 45060db4..00000000 --- a/debian/patches/01-supplicant_timeout.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- src/nm-device-802-11-wireless.c 2006-06-20 20:15:45.000000000 +0200 -+++ src/nm-device-802-11-wireless.c.new 2006-08-13 22:32:13.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) diff --git a/debian/patches/02-dbus_access_network_manager.patch b/debian/patches/02-dbus_access_network_manager.patch index ced5effe..ad1ed08f 100644 --- a/debian/patches/02-dbus_access_network_manager.patch +++ b/debian/patches/02-dbus_access_network_manager.patch @@ -1,10 +1,10 @@ -Index: src/NetworkManager.conf +Index: NetworkManager/src/NetworkManager.conf =================================================================== ---- src/NetworkManager.conf (Revision 2735) -+++ src/NetworkManager.conf (Arbeitskopie) -@@ -8,6 +8,14 @@ - - +--- NetworkManager.orig/src/NetworkManager.conf 2008-06-11 12:28:11.000000000 +0200 ++++ NetworkManager/src/NetworkManager.conf 2008-06-11 12:32:33.000000000 +0200 +@@ -11,6 +11,14 @@ + + + + diff --git a/debian/patches/03-F3507g.patch b/debian/patches/03-F3507g.patch new file mode 100644 index 00000000..d475a874 --- /dev/null +++ b/debian/patches/03-F3507g.patch @@ -0,0 +1,128 @@ +Index: network-manager-0.7.0/src/nm-gsm-device.c +=================================================================== +--- network-manager-0.7.0.orig/src/nm-gsm-device.c 2008-11-12 22:29:43.000000000 +0100 ++++ network-manager-0.7.0/src/nm-gsm-device.c 2008-12-16 10:03:48.000000000 +0100 +@@ -51,6 +51,15 @@ + guint init_tries; + } NMGsmDevicePrivate; + ++/* Various possible init sequences */ ++const gchar *modem_init_sequences[] = { ++ "ATZ E0 V1 X4 &C1 +FCLASS=0", ++ "ATZ E0 V1 &C1", ++ "AT&F E0 V1", ++ NULL ++}; ++ ++ + enum { + PROP_0, + PROP_MONITOR_IFACE, +@@ -69,7 +78,7 @@ + static void enter_pin (NMGsmDevice *device, NMGsmSecret secret_type, gboolean retry); + static void manual_registration (NMGsmDevice *device); + static void automatic_registration (NMGsmDevice *device); +-static void init_modem (NMSerialDevice *device, gpointer user_data); ++static void init_modem (NMSerialDevice *device); + + NMGsmDevice * + nm_gsm_device_new (const char *udi, +@@ -431,7 +440,7 @@ + const char *responses[] = { "+CREG: 0,0", "+CREG: 0,1", "+CREG: 0,2", "+CREG: 0,3", "+CREG: 0,5", NULL }; + const char *terminators[] = { "OK", "ERROR", "ERR", NULL }; + +- modem_wait_for_reply (device, "AT+CREG?", 15, responses, terminators, automatic_registration_response, NULL); ++ modem_wait_for_reply (device, "AT+CREG?", 25, responses, terminators, automatic_registration_response, NULL); + } + + static void +@@ -496,13 +505,14 @@ + static void + init_modem_full (NMGsmDevice *device) + { ++ NMGsmDevicePrivate *priv = NM_GSM_DEVICE_GET_PRIVATE (device); + const char *responses[] = { "OK", "ERROR", "ERR", NULL }; + + /* Send E0 too because some devices turn echo back on after CPIN which + * just breaks stuff since echo-ed commands are interpreted as replies. + * rh #456770 + */ +- modem_wait_for_reply (device, "ATZ E0 V1 X4 &C1 +FCLASS=0", 10, responses, responses, init_full_done, NULL); ++ modem_wait_for_reply (device, modem_init_sequences[priv->init_tries], 10, responses, responses, init_full_done, NULL); + } + + static void +@@ -647,7 +657,6 @@ + + switch (reply_index) { + case 0: +- priv->init_tries = 0; + check_pin (NM_GSM_DEVICE (device)); + break; + case -1: +@@ -657,35 +666,26 @@ + NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED); + break; + default: +- switch (priv->init_tries) { +- case 0: +- nm_warning ("Trying alternate modem initialization"); +- init_modem (device, "ATZ E0 V1 &C1"); +- break; +- case 1: +- nm_warning ("Trying second alternate modem initialization"); +- init_modem (device, "AT&F E0 V1"); +- break; +- default: ++ priv->init_tries++; ++ if (modem_init_sequences[priv->init_tries] != NULL) { ++ nm_warning ("Trying alternate modem initialization (%d)", ++ priv->init_tries); ++ init_modem (device); ++ } else { + nm_warning ("Modem initialization failed"); + nm_device_state_changed (NM_DEVICE (device), + NM_DEVICE_STATE_FAILED, + NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED); +- break; + } +- priv->init_tries++; +- return; + } + } + + static void +-init_modem (NMSerialDevice *device, gpointer user_data) ++init_modem (NMSerialDevice *device) + { ++ NMGsmDevicePrivate *priv = NM_GSM_DEVICE_GET_PRIVATE (device); + const char *responses[] = { "OK", "ERROR", "ERR", NULL }; +- const char *init_string = user_data; +- +- if (!init_string) +- init_string = "ATZ E0 V1 X4 &C1 +FCLASS=0"; ++ const char *init_string = modem_init_sequences[priv->init_tries]; + + modem_wait_for_reply (NM_GSM_DEVICE (device), init_string, 10, responses, responses, init_done, NULL); + } +@@ -706,7 +706,7 @@ + + NM_GSM_DEVICE_GET_PRIVATE (device)->init_tries = 0; + +- id = nm_serial_device_flash (serial_device, 100, init_modem, NULL); ++ id = nm_serial_device_flash (serial_device, 100, (NMSerialFlashFn) init_modem, NULL); + if (!id) + *reason = NM_DEVICE_STATE_REASON_UNKNOWN; + +Index: network-manager-0.7.0/src/nm-serial-device.c +=================================================================== +--- network-manager-0.7.0.orig/src/nm-serial-device.c 2008-11-20 18:12:16.000000000 +0100 ++++ network-manager-0.7.0/src/nm-serial-device.c 2008-12-16 10:03:48.000000000 +0100 +@@ -415,6 +415,7 @@ + } + + priv->channel = g_io_channel_unix_new (priv->fd); ++ g_io_channel_set_encoding (priv->channel, NULL, NULL); + + return TRUE; + } diff --git a/debian/patches/04-ltversioning.patch b/debian/patches/04-ltversioning.patch new file mode 100644 index 00000000..e88f8750 --- /dev/null +++ b/debian/patches/04-ltversioning.patch @@ -0,0 +1,78 @@ +Index: network-manager-0.7.0/libnm-glib/Makefile.am +=================================================================== +--- network-manager-0.7.0.orig/libnm-glib/Makefile.am 2008-12-06 00:35:11.000000000 +0100 ++++ network-manager-0.7.0/libnm-glib/Makefile.am 2008-12-06 00:35:23.000000000 +0100 +@@ -91,7 +91,8 @@ + $(GCONF_LIBS) \ + $(GNOME_KEYRING_LIBS) + +-libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver ++libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver \ ++ -version-info "1:0:1" + + noinst_PROGRAMS = libnm-glib-test + +@@ -103,7 +104,8 @@ + libnm_glib_vpn_la_SOURCES = nm-vpn-plugin.c nm-vpn-plugin-ui-interface.c + libnm_glib_vpn_la_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS) + libnm_glib_vpn_la_LIBADD = $(top_builddir)/libnm-util/libnm-util.la $(GLIB_LIBS) $(DBUS_LIBS) +-libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver ++libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver \ ++ -version-info "0:0:0" + + + nm-client-bindings.h: $(top_srcdir)/introspection/nm-manager-client.xml +Index: network-manager-0.7.0/libnm-glib/Makefile.in +=================================================================== +--- network-manager-0.7.0.orig/libnm-glib/Makefile.in 2008-12-06 00:35:14.000000000 +0100 ++++ network-manager-0.7.0/libnm-glib/Makefile.in 2008-12-06 00:36:06.000000000 +0100 +@@ -405,14 +405,18 @@ + $(GCONF_LIBS) \ + $(GNOME_KEYRING_LIBS) + +-libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver ++libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver \ ++ -version-info "1:0:1" ++ + libnm_glib_test_SOURCES = libnm-glib-test.c + libnm_glib_test_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS) + libnm_glib_test_LDADD = libnm_glib.la $(top_builddir)/libnm-util/libnm-util.la $(GLIB_LIBS) $(DBUS_LIBS) + libnm_glib_vpn_la_SOURCES = nm-vpn-plugin.c nm-vpn-plugin-ui-interface.c + libnm_glib_vpn_la_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS) + libnm_glib_vpn_la_LIBADD = $(top_builddir)/libnm-util/libnm-util.la $(GLIB_LIBS) $(DBUS_LIBS) +-libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver ++libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver \ ++ -version-info "0:0:0" ++ + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = libnm_glib.pc libnm_glib_vpn.pc + DISTCLEANFILES = libnm_glib.pc libnm_glib.pc +Index: network-manager-0.7.0/libnm-util/Makefile.am +=================================================================== +--- network-manager-0.7.0.orig/libnm-util/Makefile.am 2008-12-06 00:34:59.000000000 +0100 ++++ network-manager-0.7.0/libnm-util/Makefile.am 2008-12-06 00:35:23.000000000 +0100 +@@ -52,7 +52,8 @@ + + libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS) + +-libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver ++libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver \ ++ -version-info "1:0:0" + + if WITH_GNUTLS + libnm_util_la_SOURCES += crypto_gnutls.c +Index: network-manager-0.7.0/libnm-util/Makefile.in +=================================================================== +--- network-manager-0.7.0.orig/libnm-util/Makefile.in 2008-12-06 00:35:02.000000000 +0100 ++++ network-manager-0.7.0/libnm-util/Makefile.in 2008-12-06 00:35:39.000000000 +0100 +@@ -367,7 +367,9 @@ + $(libnm_util_include_HEADERS) $(am__append_1) $(am__append_4) + libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS) \ + $(am__append_3) $(am__append_6) +-libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver ++libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver \ ++ -version-info "1:0:0" ++ + libnm_util_includedir = $(includedir)/NetworkManager + test_crypto_SOURCES = test-crypto.c crypto.c $(am__append_7) \ + $(am__append_10) diff --git a/debian/patches/05-debian_backend.patch b/debian/patches/05-debian_backend.patch deleted file mode 100644 index 931a2063..00000000 --- a/debian/patches/05-debian_backend.patch +++ /dev/null @@ -1,371 +0,0 @@ -diff --git a/src/backends/NetworkManagerDebian.c b/src/backends/NetworkManagerDebian.c -index 740572a..4e3e44a 100644 ---- a/src/backends/NetworkManagerDebian.c -+++ b/src/backends/NetworkManagerDebian.c -@@ -37,6 +37,7 @@ - #include "nm-utils.h" - - #define ARPING "/usr/sbin/arping" -+#define RESOLVCONF "resolvconf" - - /* - * nm_system_init -@@ -238,14 +239,16 @@ void nm_system_kill_all_dhcp_daemons (void) - /* - * 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"); -- -+ if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) { -+ nm_info ("Clearing nscd hosts cache."); -+ nm_spawn_process ("/usr/sbin/nscd -i hosts"); -+ } - } - - -@@ -257,8 +260,7 @@ void nm_system_update_dns (void) - * - */ - void nm_system_restart_mdns_responder (void) --{ -- nm_spawn_process ("/usr/bin/killall -q -USR1 mDNSResponder"); -+{ - } - - -@@ -514,13 +516,60 @@ gboolean nm_system_device_get_use_dhcp (NMDevice *dev) - /* - * 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 = FALSE; -+ } -+ -+ /* 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 +612,18 @@ gboolean nm_system_deactivate_dialup (GSList *list, const char *dialup) - 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); -+ status = 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 +642,18 @@ gboolean nm_system_activate_dialup (GSList *list, const char *dialup) - 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); -+ status = 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 +664,26 @@ gboolean nm_system_activate_dialup (GSList *list, const char *dialup) - 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 +695,6 @@ GSList * nm_system_get_dialup_config (void) - } - 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 +735,10 @@ void nm_system_set_hostname (NMIP4Config *config) - */ - gboolean nm_system_should_modify_resolv_conf (void) - { -- return TRUE; -+ if (g_find_program_in_path(RESOLVCONF) != NULL) -+ return FALSE; -+ else -+ return TRUE; - } - - -diff --git a/src/backends/interface_parser.c b/src/backends/interface_parser.c -index 53d6487..b3ad300 100644 ---- a/src/backends/interface_parser.c -+++ b/src/backends/interface_parser.c -@@ -71,14 +73,18 @@ void add_data(const char *key,const char *data) - //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) -@@ -89,7 +95,7 @@ void ifparser_init(void) - first = last = NULL; - while(1) - { -- line = space = NULL; -+ line = NULL; - ret = fscanf(inp,"%255[^\n]\n",rline); - if (ret == EOF) - break; -@@ -102,50 +108,71 @@ void ifparser_init(void) - 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); - } -@@ -198,6 +225,18 @@ if_block *ifparser_getif(const char* iface) - 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 --git a/src/backends/interface_parser.h b/src/backends/interface_parser.h -index 075f454..8914283 100644 ---- a/src/backends/interface_parser.h -+++ b/src/backends/interface_parser.h -@@ -44,6 +44,7 @@ void ifparser_init(void); - 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); - diff --git a/debian/patches/05-dhclient_lease_files.patch b/debian/patches/05-dhclient_lease_files.patch new file mode 100644 index 00000000..8f0597f3 --- /dev/null +++ b/debian/patches/05-dhclient_lease_files.patch @@ -0,0 +1,16 @@ +Index: network-manager-0.7.0/src/dhcp-manager/nm-dhcp-dhclient.c +=================================================================== +--- network-manager-0.7.0.orig/src/dhcp-manager/nm-dhcp-dhclient.c 2008-12-06 01:09:52.000000000 +0100 ++++ network-manager-0.7.0/src/dhcp-manager/nm-dhcp-dhclient.c 2008-12-06 01:10:29.000000000 +0100 +@@ -36,7 +36,11 @@ + #define NM_DHCP_MANAGER_PID_FILENAME "dhclient" + #define NM_DHCP_MANAGER_PID_FILE_EXT "pid" + ++#if defined (TARGET_DEBIAN) ++#define NM_DHCP_MANAGER_LEASE_DIR LOCALSTATEDIR "/lib/dhcp3" ++#else + #define NM_DHCP_MANAGER_LEASE_DIR LOCALSTATEDIR "/lib/dhclient" ++#endif + #define NM_DHCP_MANAGER_LEASE_FILENAME "dhclient" + #define NM_DHCP_MANAGER_LEASE_FILE_EXT "lease" + diff --git a/debian/patches/06-dispatch_more_events.patch b/debian/patches/06-dispatch_more_events.patch deleted file mode 100644 index 8ef4b176..00000000 --- a/debian/patches/06-dispatch_more_events.patch +++ /dev/null @@ -1,99 +0,0 @@ ---- dispatcher-daemon/NetworkManagerDispatcher.c.old 2006-08-13 22:40:18.000000000 +0200 -+++ dispatcher-daemon/NetworkManagerDispatcher.c 2006-08-13 22:40:27.000000000 +0200 -@@ -44,6 +44,8 @@ - NMD_DEVICE_DONT_KNOW, - NMD_DEVICE_NOW_INACTIVE, - NMD_DEVICE_NOW_ACTIVE, -+ NMD_DEVICE_GOING_INACTIVE, -+ NMD_DEVICE_GOING_ACTIVE, - }; - typedef enum NMDAction NMDAction; - -@@ -95,6 +97,10 @@ - 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; -@@ -217,9 +223,13 @@ - } - - 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) - { -@@ -234,8 +244,10 @@ - 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); - } ---- man/NetworkManagerDispatcher.8.in 2006-02-01 19:14:15.000000000 +0100 -+++ man/NetworkManagerDispatcher.8.in.new 2006-08-15 20:13:00.000000000 +0200 -@@ -12,10 +12,14 @@ - 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 ---- src/NetworkManagerDbus.c 2006-05-21 19:28:02.000000000 +0200 -+++ src/NetworkManagerDbus.c.new 2006-08-15 20:15:18.000000000 +0200 -@@ -191,6 +191,7 @@ - { DEVICE_NOW_ACTIVE, "DeviceNowActive" }, - { DEVICE_ACTIVATING, "DeviceActivating" }, - { DEVICE_ACTIVATION_FAILED, "DeviceActivationFailed" }, -+ { DEVICE_DEACTIVATED, "DeviceDeactivated" }, - { DEVICE_ADDED, "DeviceAdded" }, - { DEVICE_REMOVED, "DeviceRemoved" }, - { DEVICE_CARRIER_ON, "DeviceCarrierOn" }, ---- src/NetworkManagerDbus.h 2006-05-21 19:28:02.000000000 +0200 -+++ src/NetworkManagerDbus.h.new 2006-08-15 20:15:39.000000000 +0200 -@@ -40,6 +40,7 @@ - DEVICE_ACTIVATING, - DEVICE_ACTIVATION_FAILED, - DEVICE_ACTIVATION_CANCELED, -+ DEVICE_DEACTIVATED, - DEVICE_ADDED, - DEVICE_REMOVED, - DEVICE_CARRIER_ON, ---- src/nm-device.c 2006-07-10 22:30:49.000000000 +0200 -+++ src/nm-device.c.new 2006-08-15 20:16:11.000000000 +0200 -@@ -1436,6 +1436,7 @@ - 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); - } - - diff --git a/debian/patches/13-validate_mac_addr.patch b/debian/patches/13-validate_mac_addr.patch deleted file mode 100644 index 47a81e19..00000000 --- a/debian/patches/13-validate_mac_addr.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- network-manager-0.6.5.orig/src/nm-device-802-11-wireless.c -+++ network-manager-0.6.5/src/nm-device-802-11-wireless.c -@@ -3439,6 +3439,20 @@ - } - - static gboolean -+has_valid_ether_addr (NMAccessPoint *ap) -+{ -+ struct ether_addr *addr; -+ int i; -+ -+ addr = nm_ap_get_address (ap); -+ for (i = 0 ; i < ETH_ALEN; i++) -+ if (addr->ether_addr_octet[i] != 0) -+ return TRUE; -+ -+ return FALSE; -+} -+ -+static gboolean - process_scan_results (NMDevice80211Wireless *dev, - const guint8 *res_buf, - guint32 res_buf_len) -@@ -3474,7 +3488,8 @@ - - /* Merge previous AP */ - if (ap) { -- add_new_ap_to_device_list (dev, ap); -+ if (has_valid_ether_addr (ap)) -+ add_new_ap_to_device_list (dev, ap); - nm_ap_unref (ap); - ap = NULL; - } diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..c38d933a --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,4 @@ +02-dbus_access_network_manager.patch +03-F3507g.patch +04-ltversioning.patch +05-dhclient_lease_files.patch -- cgit 1.3.0-6-gf8a5 From ad27914bae2e19325c2293f1729567ce8d636b71 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Sun, 22 Feb 2009 02:16:41 +0000 Subject: * Merge experimental branch into unstable. Remaining changes: - Remove 07-domain_search.patch, merged upstream. - Remove 08-hal_deprecated_keys.patch, fixed upstream. - Remove 09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch, obsolete. - Disable 20-manual_means_always_online.patch, needs to be ported to 0.7 first. - Drop libdbus-glib-1-dev Depends from libnm-util-dev. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2885 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/07-domain_search.patch | 281 --------------------- debian/patches/08-hal_deprecated_keys.patch | 34 --- ...dbus_get_ap_from_object_path-mem_leak_fix.patch | 13 - 3 files changed, 328 deletions(-) delete mode 100644 debian/patches/07-domain_search.patch delete mode 100644 debian/patches/08-hal_deprecated_keys.patch delete mode 100644 debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch (limited to 'debian/patches') diff --git a/debian/patches/07-domain_search.patch b/debian/patches/07-domain_search.patch deleted file mode 100644 index cf614a0d..00000000 --- a/debian/patches/07-domain_search.patch +++ /dev/null @@ -1,281 +0,0 @@ -Index: NetworkManager-0.6/src/dhcp-manager/nm-dhcp-manager.c -=================================================================== ---- NetworkManager-0.6.orig/src/dhcp-manager/nm-dhcp-manager.c 2008-03-02 09:25:16.000000000 +0100 -+++ NetworkManager-0.6/src/dhcp-manager/nm-dhcp-manager.c 2008-03-02 09:26:33.000000000 +0100 -@@ -472,6 +472,7 @@ - guint32 num_ip4_nis_servers = 0; - char * hostname = NULL; - char * domain_names = NULL; -+ char * domain_searches = NULL; - char * nis_domain = NULL; - guint32 * ip4_nis_servers = NULL; - struct in_addr temp_addr; -@@ -520,6 +521,7 @@ - get_ip4_string (manager, dev, "host_name", &hostname, TRUE); - get_ip4_uint32s (manager, dev, "domain_name_servers", &ip4_nameservers, &num_ip4_nameservers, FALSE); - get_ip4_string (manager, dev, "domain_name", &domain_names, TRUE); -+ get_ip4_string (manager, dev, "domain_search", &domain_searches, TRUE); - get_ip4_string (manager, dev, "nis_domain", &nis_domain, TRUE); - get_ip4_uint32s (manager, dev, "nis_servers", &ip4_nis_servers, &num_ip4_nis_servers, TRUE); - -@@ -557,14 +559,27 @@ - - if (domain_names) - { -- char **searches = g_strsplit (domain_names, " ", 0); -+ char **domains = g_strsplit (domain_names, " ", 0); - char **s; - -- for (s = searches; *s; s++) -+ for (s = domains; *s; s++) - { - nm_info (" domain name '%s'", *s); - nm_ip4_config_add_domain (ip4_config, *s); - } -+ g_strfreev (domains); -+ } -+ -+ if (domain_searches) -+ { -+ char **searches = g_strsplit (domain_searches, " ", 0); -+ char **s; -+ -+ for (s = searches; *s; s++) -+ { -+ nm_info (" domain search '%s'", *s); -+ nm_ip4_config_add_search (ip4_config, *s); -+ } - g_strfreev (searches); - } - -Index: NetworkManager-0.6/src/named-manager/nm-named-manager.c -=================================================================== ---- NetworkManager-0.6.orig/src/named-manager/nm-named-manager.c 2008-03-02 09:25:16.000000000 +0100 -+++ NetworkManager-0.6/src/named-manager/nm-named-manager.c 2008-03-02 09:26:33.000000000 +0100 -@@ -319,7 +319,7 @@ - static char * - compute_searches (NMNamedManager *mgr, NMIP4Config *config) - { -- int i, num_searches; -+ int i, num_searches, num_domains; - GString *str = NULL; - - g_return_val_if_fail (mgr != NULL, g_strdup ("")); -@@ -328,14 +328,54 @@ - if (!config) - return g_strdup (""); - -- num_searches = nm_ip4_config_get_num_domains (config); -- for (i = 0; i < num_searches; i++) -- { -- if (!str) -- str = g_string_new ("search"); -+ num_searches = nm_ip4_config_get_num_searches (config); -+ num_domains = nm_ip4_config_get_num_domains (config); -+ -+ /* ISC DHCP 3.1 provides support for the domain-search option. This is the -+ * correct way for a DHCP server to provide a domain search list. Wedging -+ * multiple domains into the domain-name option is a horrible hack. -+ * -+ * So, we handle it like this (as proposed by Andrew Pollock at -+ * http://bugs.debian.org/465158): -+ * -+ * - if the domain-search option is present in the data received via DHCP, -+ * use it in favour of the domain-name option for setting the search -+ * directive in /etc/resolv.conf -+ * -+ * - if the domain-name option is present in the data received via DHCP, use -+ * it to set the domain directive in /etc/resolv.conf -+ * (this is handled in compute_domain() below) -+ * -+ * - if only the domain-name option is present in the data received via DHCP -+ * (and domain-search is not), for backwards compatibility, set the search -+ * directive in /etc/resolv.conf to the specified domain names -+ */ - -- g_string_append_c (str, ' '); -- g_string_append (str, nm_ip4_config_get_domain (config, i)); -+ if ( num_searches == 0 && num_domains > 0 ) -+ { -+ /* old, pre-ISC-3.1 fallback: -+ * use (possibly multiple entries from) domain-name for the search entry */ -+ str = g_string_new ("search"); -+ for (i = 0; i < num_domains; i++) -+ { -+ g_string_append_c (str, ' '); -+ g_string_append (str, nm_ip4_config_get_domain (config, i)); -+ } -+ } -+ else if ( num_searches > 0 ) -+ { -+ /* the "correct", post-ISC-3.1 situation: use searches just as received */ -+ str = g_string_new ("search"); -+ for (i = 0; i < num_searches; i++) -+ { -+ g_string_append_c (str, ' '); -+ g_string_append (str, nm_ip4_config_get_search (config, i)); -+ } -+ } -+ else /* num_searches == 0 && num_domains == 0 */ -+ { -+ /* no info available at all */ -+ return g_strdup (""); - } - - if (!str) -@@ -346,11 +386,41 @@ - return g_string_free (str, FALSE); - } - -+static char * -+compute_domain (NMNamedManager *mgr, NMIP4Config *config) -+{ -+ int num_domains; -+ GString *str = NULL; -+ -+ g_return_val_if_fail (mgr != NULL, g_strdup ("")); -+ -+ /* config can be NULL */ -+ if (!config) -+ return g_strdup (""); -+ -+ num_domains = nm_ip4_config_get_num_domains (config); -+ -+ /* warn the user that he should change his config -+ * (see comments above in compute_search() ) */ -+ if ( num_domains > 1 ) -+ nm_warning ("DHCP server sent multiple entries in domain-name; this is obsolete behaviour; please fix or update your DHCP server"); -+ -+ if (num_domains == 0) -+ return g_strdup (""); -+ -+ str = g_string_new ("domain "); -+ g_string_append (str, nm_ip4_config_get_domain (config, 0)); -+ g_string_append_c (str, '\n'); -+ -+ return g_string_free (str, FALSE); -+} -+ - static gboolean - rewrite_resolv_conf (NMNamedManager *mgr, NMIP4Config *config, GError **error) - { - const char * tmp_resolv_conf = RESOLV_CONF ".tmp"; - char * searches = NULL; -+ char * domain = NULL; - FILE * f; - NMIP4Config *ns_config = config; - -@@ -388,23 +458,27 @@ - } - g_return_val_if_fail (ns_config != NULL, FALSE); - -+ domain = compute_domain (mgr, ns_config); - searches = compute_searches (mgr, ns_config); - - if (mgr->priv->use_named == TRUE) { - /* Using caching-nameserver & local DNS */ -- if (fprintf (f, "%s%s%s", "; Use a local caching nameserver controlled by NetworkManager\n\n", searches, "\nnameserver 127.0.0.1\n") < 0) -+ if (fprintf (f, "%s%s%s%s", "; Use a local caching nameserver controlled by NetworkManager\n\n", domain, searches, "\nnameserver 127.0.0.1\n") < 0) - goto lose; - } else { - /* Using glibc resolver */ - char *nameservers = compute_nameservers (mgr, ns_config); - -+ fprintf (f, "%s\n\n", domain); - fprintf (f, "%s\n\n", searches); -- g_free (searches); -- - fprintf (f, "%s\n\n", nameservers); -+ - g_free (nameservers); - } - -+ g_free (domain); -+ g_free (searches); -+ - if (fclose (f) < 0) - goto lose; - -@@ -414,6 +488,7 @@ - return TRUE; - - lose: -+ g_free (domain); - g_free (searches); - fclose (f); - g_set_error (error, -Index: NetworkManager-0.6/src/nm-ip4-config.c -=================================================================== ---- NetworkManager-0.6.orig/src/nm-ip4-config.c 2008-03-02 09:25:16.000000000 +0100 -+++ NetworkManager-0.6/src/nm-ip4-config.c 2008-03-02 09:26:33.000000000 +0100 -@@ -46,6 +46,7 @@ - - GSList * nameservers; - GSList * domains; -+ GSList * searches; - - gchar * hostname; - gchar * nis_domain; -@@ -275,6 +276,17 @@ - config->domains = g_slist_append (config->domains, g_strdup (domain)); - } - -+void nm_ip4_config_add_search (NMIP4Config *config, const char *search) -+{ -+ g_return_if_fail (config != NULL); -+ g_return_if_fail (search != NULL); -+ -+ if (!strlen (search)) -+ return; -+ -+ config->searches = g_slist_append (config->searches, g_strdup (search)); -+} -+ - void nm_ip4_config_set_hostname (NMIP4Config *config, const char *hostname) - { - g_return_if_fail (config != NULL); -@@ -329,6 +341,25 @@ - return (g_slist_length (config->domains)); - } - -+const char *nm_ip4_config_get_search (NMIP4Config *config, guint i) -+{ -+ const char *search; -+ -+ g_return_val_if_fail (config != NULL, NULL); -+ g_return_val_if_fail (i < g_slist_length (config->searches), NULL); -+ -+ if ((search = (const char *) g_slist_nth_data (config->searches, i))) -+ return search; -+ return NULL; -+} -+ -+guint32 nm_ip4_config_get_num_searches (NMIP4Config *config) -+{ -+ g_return_val_if_fail (config != NULL, 0); -+ -+ return (g_slist_length (config->searches)); -+} -+ - guint32 nm_ip4_config_get_mtu (NMIP4Config *config) - { - g_return_val_if_fail (config != NULL, 0); -Index: NetworkManager-0.6/src/nm-ip4-config.h -=================================================================== ---- NetworkManager-0.6.orig/src/nm-ip4-config.h 2008-03-02 09:25:16.000000000 +0100 -+++ NetworkManager-0.6/src/nm-ip4-config.h 2008-03-02 09:26:33.000000000 +0100 -@@ -68,6 +68,14 @@ - const char * nm_ip4_config_get_domain (NMIP4Config *config, guint i); - guint32 nm_ip4_config_get_num_domains (NMIP4Config *config); - -+void nm_ip4_config_add_search (NMIP4Config *config, const char *search); -+const char * nm_ip4_config_get_search (NMIP4Config *config, guint i); -+guint32 nm_ip4_config_get_num_searches (NMIP4Config *config); -+ -+void nm_ip4_config_add_domain (NMIP4Config *config, const char *search); -+const char * nm_ip4_config_get_domain (NMIP4Config *config, guint i); -+guint32 nm_ip4_config_get_num_searches (NMIP4Config *config); -+ - guint32 nm_ip4_config_get_mtu (NMIP4Config *config); - void nm_ip4_config_set_mtu (NMIP4Config *config, guint32 mtu); - diff --git a/debian/patches/08-hal_deprecated_keys.patch b/debian/patches/08-hal_deprecated_keys.patch deleted file mode 100644 index 5e09f8c2..00000000 --- a/debian/patches/08-hal_deprecated_keys.patch +++ /dev/null @@ -1,34 +0,0 @@ -Index: src/nm-device.c -=================================================================== ---- src/nm-device.c (Revision 3527) -+++ src/nm-device.c (Arbeitskopie) -@@ -115,19 +115,24 @@ - nm_get_device_driver_name (LibHalContext *ctx, const char *udi) - { - char * driver_name = NULL; -- char * physdev_udi = NULL; -+ char * origdev_udi = NULL; - - g_return_val_if_fail (ctx != NULL, NULL); - g_return_val_if_fail (udi != NULL, NULL); - -- physdev_udi = libhal_device_get_property_string (ctx, udi, "net.physical_device", NULL); -- if (physdev_udi && libhal_device_property_exists (ctx, physdev_udi, "info.linux.driver", NULL)) -+ origdev_udi = libhal_device_get_property_string (ctx, udi, "net.originating_device", NULL); -+ if (!origdev_udi) { -+ /* Older HAL uses 'physical_device' */ -+ origdev_udi = libhal_device_get_property_string (ctx, udi, "net.physical_device", NULL); -+ } -+ -+ if (origdev_udi && libhal_device_property_exists (ctx, origdev_udi, "info.linux.driver", NULL)) - { -- char *drv = libhal_device_get_property_string (ctx, physdev_udi, "info.linux.driver", NULL); -+ char *drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); - driver_name = g_strdup (drv); - g_free (drv); - } -- g_free (physdev_udi); -+ g_free (origdev_udi); - - return driver_name; - } diff --git a/debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch b/debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch deleted file mode 100644 index c3bf1011..00000000 --- a/debian/patches/09-nm_dbus_get_ap_from_object_path-mem_leak_fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: src/nm-dbus-net.c -=================================================================== ---- src/nm-dbus-net.c (Revision 3769) -+++ src/nm-dbus-net.c (Revision 3770) -@@ -69,6 +69,8 @@ - - compare_path = g_strdup_printf ("%s/%s/Networks/%s", - NM_DBUS_PATH_DEVICES, escaped_dev, escaped_ssid); -+ g_free (escaped_dev); -+ g_free (escaped_ssid); - - len = strlen (compare_path); - if (strncmp (path, compare_path, len) == 0) { -- cgit 1.3.0-6-gf8a5 From 44f99c811e83a362fe04beec41d33333dcc33940 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Sun, 22 Feb 2009 02:28:28 +0000 Subject: - Update 02-dbus_access_network_manager.patch for the latest upstream changes which fixes non-deterministic allow/deny for D-Bus messages with no interface. (Closes: #510729) - Disable 03-F3507g.patch for now, patch no longer applies and should be replaced by ModemManager anyway. - Remove 04-ltversioning.patch, merged upstream. - Remove 05-dhclient_lease_files.patch, merged upstream. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@2887 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- .../patches/02-dbus_access_network_manager.patch | 18 ++--- debian/patches/04-ltversioning.patch | 78 ---------------------- debian/patches/05-dhclient_lease_files.patch | 16 ----- debian/patches/series | 5 +- 4 files changed, 12 insertions(+), 105 deletions(-) delete mode 100644 debian/patches/04-ltversioning.patch delete mode 100644 debian/patches/05-dhclient_lease_files.patch (limited to 'debian/patches') diff --git a/debian/patches/02-dbus_access_network_manager.patch b/debian/patches/02-dbus_access_network_manager.patch index ad1ed08f..a96c6c0b 100644 --- a/debian/patches/02-dbus_access_network_manager.patch +++ b/debian/patches/02-dbus_access_network_manager.patch @@ -1,10 +1,10 @@ -Index: NetworkManager/src/NetworkManager.conf +Index: network-manager-0.7.0.97/src/NetworkManager.conf =================================================================== ---- NetworkManager.orig/src/NetworkManager.conf 2008-06-11 12:28:11.000000000 +0200 -+++ NetworkManager/src/NetworkManager.conf 2008-06-11 12:32:33.000000000 +0200 -@@ -11,6 +11,14 @@ - - +--- network-manager-0.7.0.97.orig/src/NetworkManager.conf 2009-02-17 16:45:44.000000000 +0100 ++++ network-manager-0.7.0.97/src/NetworkManager.conf 2009-02-22 03:20:14.000000000 +0100 +@@ -9,6 +9,16 @@ + + + @@ -12,8 +12,10 @@ Index: NetworkManager/src/NetworkManager.conf + + + -+ ++ ++ + - + diff --git a/debian/patches/04-ltversioning.patch b/debian/patches/04-ltversioning.patch deleted file mode 100644 index e88f8750..00000000 --- a/debian/patches/04-ltversioning.patch +++ /dev/null @@ -1,78 +0,0 @@ -Index: network-manager-0.7.0/libnm-glib/Makefile.am -=================================================================== ---- network-manager-0.7.0.orig/libnm-glib/Makefile.am 2008-12-06 00:35:11.000000000 +0100 -+++ network-manager-0.7.0/libnm-glib/Makefile.am 2008-12-06 00:35:23.000000000 +0100 -@@ -91,7 +91,8 @@ - $(GCONF_LIBS) \ - $(GNOME_KEYRING_LIBS) - --libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver -+libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver \ -+ -version-info "1:0:1" - - noinst_PROGRAMS = libnm-glib-test - -@@ -103,7 +104,8 @@ - libnm_glib_vpn_la_SOURCES = nm-vpn-plugin.c nm-vpn-plugin-ui-interface.c - libnm_glib_vpn_la_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS) - libnm_glib_vpn_la_LIBADD = $(top_builddir)/libnm-util/libnm-util.la $(GLIB_LIBS) $(DBUS_LIBS) --libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver -+libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver \ -+ -version-info "0:0:0" - - - nm-client-bindings.h: $(top_srcdir)/introspection/nm-manager-client.xml -Index: network-manager-0.7.0/libnm-glib/Makefile.in -=================================================================== ---- network-manager-0.7.0.orig/libnm-glib/Makefile.in 2008-12-06 00:35:14.000000000 +0100 -+++ network-manager-0.7.0/libnm-glib/Makefile.in 2008-12-06 00:36:06.000000000 +0100 -@@ -405,14 +405,18 @@ - $(GCONF_LIBS) \ - $(GNOME_KEYRING_LIBS) - --libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver -+libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib.ver \ -+ -version-info "1:0:1" -+ - libnm_glib_test_SOURCES = libnm-glib-test.c - libnm_glib_test_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS) - libnm_glib_test_LDADD = libnm_glib.la $(top_builddir)/libnm-util/libnm-util.la $(GLIB_LIBS) $(DBUS_LIBS) - libnm_glib_vpn_la_SOURCES = nm-vpn-plugin.c nm-vpn-plugin-ui-interface.c - libnm_glib_vpn_la_CFLAGS = $(GLIB_CFLAGS) $(DBUS_CFLAGS) - libnm_glib_vpn_la_LIBADD = $(top_builddir)/libnm-util/libnm-util.la $(GLIB_LIBS) $(DBUS_LIBS) --libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver -+libnm_glib_vpn_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm_glib_vpn.ver \ -+ -version-info "0:0:0" -+ - pkgconfigdir = $(libdir)/pkgconfig - pkgconfig_DATA = libnm_glib.pc libnm_glib_vpn.pc - DISTCLEANFILES = libnm_glib.pc libnm_glib.pc -Index: network-manager-0.7.0/libnm-util/Makefile.am -=================================================================== ---- network-manager-0.7.0.orig/libnm-util/Makefile.am 2008-12-06 00:34:59.000000000 +0100 -+++ network-manager-0.7.0/libnm-util/Makefile.am 2008-12-06 00:35:23.000000000 +0100 -@@ -52,7 +52,8 @@ - - libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS) - --libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver -+libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver \ -+ -version-info "1:0:0" - - if WITH_GNUTLS - libnm_util_la_SOURCES += crypto_gnutls.c -Index: network-manager-0.7.0/libnm-util/Makefile.in -=================================================================== ---- network-manager-0.7.0.orig/libnm-util/Makefile.in 2008-12-06 00:35:02.000000000 +0100 -+++ network-manager-0.7.0/libnm-util/Makefile.in 2008-12-06 00:35:39.000000000 +0100 -@@ -367,7 +367,9 @@ - $(libnm_util_include_HEADERS) $(am__append_1) $(am__append_4) - libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS) \ - $(am__append_3) $(am__append_6) --libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver -+libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver \ -+ -version-info "1:0:0" -+ - libnm_util_includedir = $(includedir)/NetworkManager - test_crypto_SOURCES = test-crypto.c crypto.c $(am__append_7) \ - $(am__append_10) diff --git a/debian/patches/05-dhclient_lease_files.patch b/debian/patches/05-dhclient_lease_files.patch deleted file mode 100644 index 8f0597f3..00000000 --- a/debian/patches/05-dhclient_lease_files.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: network-manager-0.7.0/src/dhcp-manager/nm-dhcp-dhclient.c -=================================================================== ---- network-manager-0.7.0.orig/src/dhcp-manager/nm-dhcp-dhclient.c 2008-12-06 01:09:52.000000000 +0100 -+++ network-manager-0.7.0/src/dhcp-manager/nm-dhcp-dhclient.c 2008-12-06 01:10:29.000000000 +0100 -@@ -36,7 +36,11 @@ - #define NM_DHCP_MANAGER_PID_FILENAME "dhclient" - #define NM_DHCP_MANAGER_PID_FILE_EXT "pid" - -+#if defined (TARGET_DEBIAN) -+#define NM_DHCP_MANAGER_LEASE_DIR LOCALSTATEDIR "/lib/dhcp3" -+#else - #define NM_DHCP_MANAGER_LEASE_DIR LOCALSTATEDIR "/lib/dhclient" -+#endif - #define NM_DHCP_MANAGER_LEASE_FILENAME "dhclient" - #define NM_DHCP_MANAGER_LEASE_FILE_EXT "lease" - diff --git a/debian/patches/series b/debian/patches/series index c38d933a..3ad97cdd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ 02-dbus_access_network_manager.patch -03-F3507g.patch -04-ltversioning.patch -05-dhclient_lease_files.patch +#03-F3507g.patch +#20-manual_means_always_online.patch -- cgit 1.3.0-6-gf8a5 From 9b404b2db4af6ce29156d10a3ff6f0a436b94c8d Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Wed, 8 Apr 2009 05:06:14 +0000 Subject: * debian/patches/02-dbus_access_network_manager.patch - Remove haldaemon section, obsolete. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3040 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/02-dbus_access_network_manager.patch | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'debian/patches') diff --git a/debian/patches/02-dbus_access_network_manager.patch b/debian/patches/02-dbus_access_network_manager.patch index a96c6c0b..c96a0de1 100644 --- a/debian/patches/02-dbus_access_network_manager.patch +++ b/debian/patches/02-dbus_access_network_manager.patch @@ -2,14 +2,10 @@ Index: network-manager-0.7.0.97/src/NetworkManager.conf =================================================================== --- network-manager-0.7.0.97.orig/src/NetworkManager.conf 2009-02-17 16:45:44.000000000 +0100 +++ network-manager-0.7.0.97/src/NetworkManager.conf 2009-02-22 03:20:14.000000000 +0100 -@@ -9,6 +9,16 @@ +@@ -9,6 +9,12 @@ -+ -+ -+ -+ + + + -- cgit 1.3.0-6-gf8a5 From 8e53ede36fa39a43a4aa5ec7c980e5be877bb2ea Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Thu, 16 Apr 2009 23:54:55 +0000 Subject: * debian/patches/04-struct_termios.patch - Fix FTBFS on alpha by using the POSIX.1 struct termios interface instead of the obsolete struct termio ioctl interface. (Closes: #524161) git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3081 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/04-struct_termios.patch | 66 ++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 67 insertions(+) create mode 100644 debian/patches/04-struct_termios.patch (limited to 'debian/patches') diff --git a/debian/patches/04-struct_termios.patch b/debian/patches/04-struct_termios.patch new file mode 100644 index 00000000..9b38e0bf --- /dev/null +++ b/debian/patches/04-struct_termios.patch @@ -0,0 +1,66 @@ +# Fix FTBFS on alpha by using the POSIX.1 struct termios interface instead +# of the obsolete struct termio ioctl interface. (Closes: #524161) +diff --git a/src/nm-serial-device.c b/src/nm-serial-device.c +index 1cba1ca..afdc6a6 100644 +--- a/src/nm-serial-device.c ++++ b/src/nm-serial-device.c +@@ -21,13 +21,12 @@ + + #define _GNU_SOURCE /* for strcasestr() */ + +-#include ++#include + #include + #include + #include + #include + #include +-#include + #include + #include + #include +@@ -346,7 +345,7 @@ static gboolean + config_fd (NMSerialDevice *device, NMSettingSerial *setting) + { + NMSerialDevicePrivate *priv = NM_SERIAL_DEVICE_GET_PRIVATE (device); +- struct termio stbuf; ++ struct termios stbuf; + int speed; + int bits; + int parity; +@@ -357,7 +356,7 @@ config_fd (NMSerialDevice *device, NMSettingSerial *setting) + parity = parse_parity (nm_setting_serial_get_parity (setting)); + stopbits = parse_stopbits (nm_setting_serial_get_stopbits (setting)); + +- ioctl (priv->fd, TCGETA, &stbuf); ++ tcgetattr (priv->fd, &stbuf); + + stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY | IGNPAR ); + stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET); +@@ -370,7 +369,7 @@ config_fd (NMSerialDevice *device, NMSettingSerial *setting) + stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB); + stbuf.c_cflag |= (speed | bits | CREAD | 0 | parity | stopbits); + +- if (ioctl (priv->fd, TCSETA, &stbuf) < 0) { ++ if (tcgetattr (priv->fd, &stbuf) < 0) { + nm_warning ("(%s) cannot control device (errno %d)", + nm_device_get_iface (NM_DEVICE (device)), errno); + return FALSE; +@@ -404,7 +403,7 @@ nm_serial_device_open (NMSerialDevice *device, + return FALSE; + } + +- if (ioctl (priv->fd, TCGETA, &priv->old_t) < 0) { ++ if (tcgetattr (priv->fd, &priv->old_t) < 0) { + nm_warning ("(%s) cannot control device (errno %d)", iface, errno); + close (priv->fd); + return FALSE; +@@ -447,7 +446,7 @@ nm_serial_device_close (NMSerialDevice *device) + priv->channel = NULL; + } + +- ioctl (priv->fd, TCSETA, &priv->old_t); ++ tcsetattr (priv->fd, TCSANOW, &priv->old_t); + close (priv->fd); + priv->fd = 0; + } diff --git a/debian/patches/series b/debian/patches/series index 3ad97cdd..9f9fb610 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ 02-dbus_access_network_manager.patch #03-F3507g.patch #20-manual_means_always_online.patch +04-struct_termios.patch -- cgit 1.3.0-6-gf8a5 From 1d9798ef284edc4d614832296362cbe6462aa5ff Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Wed, 8 Jul 2009 20:15:19 +0000 Subject: debian/patches/05-response-buffer-filled.patch: new, from upstream git 0.7 branch. Fixes "response buffer filled before repsonse received" (sic) during communication with serial modems. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3151 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/05-response-buffer-filled.patch | 19 +++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 20 insertions(+) create mode 100644 debian/patches/05-response-buffer-filled.patch (limited to 'debian/patches') diff --git a/debian/patches/05-response-buffer-filled.patch b/debian/patches/05-response-buffer-filled.patch new file mode 100644 index 00000000..3a8a731a --- /dev/null +++ b/debian/patches/05-response-buffer-filled.patch @@ -0,0 +1,19 @@ +commit 793cc30b5d20d728719c568f5bfac98f3bca3dca +Author: Robert Piasek +Date: 2009-06-22 11:57:28 -0400 + + serial: fix serial port settings bug caused by 31a34fa7ffbceb79d5e6c16158e5dcce285dcff1 + +diff --git a/src/nm-serial-device.c b/src/nm-serial-device.c +index 54dd176..ad481d3 100644 +--- a/src/nm-serial-device.c ++++ b/src/nm-serial-device.c +@@ -368,7 +368,7 @@ config_fd (NMSerialDevice *device, NMSettingSerial *setting) + stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB); + stbuf.c_cflag |= (speed | bits | CREAD | 0 | parity | stopbits); + +- if (tcgetattr (priv->fd, &stbuf) < 0) { ++ if (tcsetattr (priv->fd, TCSANOW, &stbuf) < 0) { + nm_warning ("(%s) cannot control device (errno %d)", + nm_device_get_iface (NM_DEVICE (device)), errno); + return FALSE; diff --git a/debian/patches/series b/debian/patches/series index 9f9fb610..15d456d1 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -2,3 +2,4 @@ #03-F3507g.patch #20-manual_means_always_online.patch 04-struct_termios.patch +05-response-buffer-filled.patch -- cgit 1.3.0-6-gf8a5 From 58e3fe9fb934d4790a20cd911d95d80e36191d72 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Sun, 16 Aug 2009 00:54:57 +0000 Subject: * debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch - HAL 0.5.13 added support for the ssb bus type which is internally used on most Broadcom ethernet and wifi chipsets. Update NM to detect the driver for the changed device layout. (Closes: #540613) Patch pulled from upstream git. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3217 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- .../06-handle-new-ssb-bus-from-HAL-0.5.13.patch | 50 ++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 51 insertions(+) create mode 100644 debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch (limited to 'debian/patches') diff --git a/debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch b/debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch new file mode 100644 index 00000000..aa19d5d1 --- /dev/null +++ b/debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch @@ -0,0 +1,50 @@ +From d185695d80b248354dd7a95fd896daa5c45085e5 Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Fri, 14 Aug 2009 09:44:02 -0500 +Subject: [PATCH] core: handle new 'ssb' bus from HAL 0.5.13 (deb #540613) + +HAL added 'ssb' (Silicon Sonics Backplane, used internally on most +Broadcom ethernet and wifi chipsets) in 0.5.13, which changed the +device list layout and made NM unable to get the driver for the +wifi device. Fix that. +--- + src/nm-hal-manager.c | 16 +++++++++++----- + 1 files changed, 11 insertions(+), 5 deletions(-) + +diff --git a/src/nm-hal-manager.c b/src/nm-hal-manager.c +index 581d79e..a49e9e6 100644 +--- a/src/nm-hal-manager.c ++++ b/src/nm-hal-manager.c +@@ -146,9 +146,14 @@ nm_get_device_driver_name (LibHalContext *ctx, const char *origdev_udi) + + /* s390 driver name is on the grandparent of the net device */ + subsystem = hal_get_subsystem (ctx, origdev_udi); +- if (subsystem && !strcmp (subsystem, "ibmebus")) { +- od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); +- origdev_udi = (const char *) od_parent; ++ if (subsystem) { ++ if (!strcmp (subsystem, "ibmebus")) { ++ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); ++ origdev_udi = (const char *) od_parent; ++ } else if (!strcmp (subsystem, "ssb")) { ++ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); ++ origdev_udi = (const char *) od_parent; ++ } + } + + drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); +@@ -1214,8 +1219,9 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) + libhal_free_string (subsys); + libhal_free_string (parent); + +- /* For non-USB devices, and ss a fallback, just use the originating device +- * of the tty; though this might result in more than one modem being detected by NM. ++ /* For non-USB devices, and as a fallback, just use the originating device ++ * of the tty; though this might result in more than one modem being ++ * detected by NM. + */ + if (!od) + od = hal_get_originating_device (priv->hal_ctx, udi, creator->category); +-- +1.6.3.3 + diff --git a/debian/patches/series b/debian/patches/series index 15d456d1..f718a5d7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -3,3 +3,4 @@ #20-manual_means_always_online.patch 04-struct_termios.patch 05-response-buffer-filled.patch +06-handle-new-ssb-bus-from-HAL-0.5.13.patch -- cgit 1.3.0-6-gf8a5 From fba09b2ea9a3c4d861a06886d8f668b8e6a6d412 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 17 Aug 2009 21:34:38 +0000 Subject: Just fix our patch 04-struct_termios.patch instead of adding a new patch. git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3221 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/04-struct_termios.patch | 2 +- debian/patches/05-response-buffer-filled.patch | 19 ------------------- 2 files changed, 1 insertion(+), 20 deletions(-) delete mode 100644 debian/patches/05-response-buffer-filled.patch (limited to 'debian/patches') diff --git a/debian/patches/04-struct_termios.patch b/debian/patches/04-struct_termios.patch index 9b38e0bf..bddb0394 100644 --- a/debian/patches/04-struct_termios.patch +++ b/debian/patches/04-struct_termios.patch @@ -42,7 +42,7 @@ index 1cba1ca..afdc6a6 100644 stbuf.c_cflag |= (speed | bits | CREAD | 0 | parity | stopbits); - if (ioctl (priv->fd, TCSETA, &stbuf) < 0) { -+ if (tcgetattr (priv->fd, &stbuf) < 0) { ++ if (tcsetattr (priv->fd, TCSANOW, &stbuf) < 0) { nm_warning ("(%s) cannot control device (errno %d)", nm_device_get_iface (NM_DEVICE (device)), errno); return FALSE; diff --git a/debian/patches/05-response-buffer-filled.patch b/debian/patches/05-response-buffer-filled.patch deleted file mode 100644 index 3a8a731a..00000000 --- a/debian/patches/05-response-buffer-filled.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 793cc30b5d20d728719c568f5bfac98f3bca3dca -Author: Robert Piasek -Date: 2009-06-22 11:57:28 -0400 - - serial: fix serial port settings bug caused by 31a34fa7ffbceb79d5e6c16158e5dcce285dcff1 - -diff --git a/src/nm-serial-device.c b/src/nm-serial-device.c -index 54dd176..ad481d3 100644 ---- a/src/nm-serial-device.c -+++ b/src/nm-serial-device.c -@@ -368,7 +368,7 @@ config_fd (NMSerialDevice *device, NMSettingSerial *setting) - stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB); - stbuf.c_cflag |= (speed | bits | CREAD | 0 | parity | stopbits); - -- if (tcgetattr (priv->fd, &stbuf) < 0) { -+ if (tcsetattr (priv->fd, TCSANOW, &stbuf) < 0) { - nm_warning ("(%s) cannot control device (errno %d)", - nm_device_get_iface (NM_DEVICE (device)), errno); - return FALSE; -- cgit 1.3.0-6-gf8a5 From cd438d370a65c2e1354cad95b3596b2b52fbdbbf Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 17 Aug 2009 21:38:13 +0000 Subject: Squashed the following upstream commits d0cdbf3525b105de6dc0ca4ce02801bfe8fe2222 4c36f7c0b607813753072acf1bec14414494948c d185695d80b248354dd7a95fd896daa5c45085e5 to produce a working patch git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3223 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- .../05-handle-new-ssb-bus-from-HAL-0.5.13.patch | 253 +++++++++++++++++++++ .../06-handle-new-ssb-bus-from-HAL-0.5.13.patch | 50 ---- debian/patches/series | 3 +- 3 files changed, 254 insertions(+), 52 deletions(-) create mode 100644 debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch delete mode 100644 debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch (limited to 'debian/patches') diff --git a/debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch b/debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch new file mode 100644 index 00000000..25949e82 --- /dev/null +++ b/debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch @@ -0,0 +1,253 @@ +Squash the following commits into one patch + +d0cdbf3525b105de6dc0ca4ce02801bfe8fe2222 +4c36f7c0b607813753072acf1bec14414494948c +d185695d80b248354dd7a95fd896daa5c45085e5 + +modem: handle newer HAL versions where info.bus is no longer present + +hal: find driver for ibmebus-type 'ehea' devices + +core: handle new 'ssb' bus from HAL 0.5.13 (deb #540613) + +HAL added 'ssb' (Silicon Sonics Backplane, used internally on most +Broadcom ethernet and wifi chipsets) in 0.5.13, which changed the +device list layout and made NM unable to get the driver for the +wifi device. Fix that. +--- + src/nm-hal-manager.c | 133 +++++++++++++++++++++++++++++-------------------- + 1 files changed, 79 insertions(+), 54 deletions(-) + +diff --git a/src/nm-hal-manager.c b/src/nm-hal-manager.c +index 647fe21..a01b4e2 100644 +--- a/src/nm-hal-manager.c ++++ b/src/nm-hal-manager.c +@@ -124,19 +124,45 @@ get_creator (NMHalManager *self, const char *udi) + /* Common helpers for built-in device creators */ + + static char * ++hal_get_subsystem (LibHalContext *ctx, const char *udi) ++{ ++ char *subsys; ++ ++ subsys = libhal_device_get_property_string (ctx, udi, "info.subsystem", NULL); ++ if (!subsys) { ++ /* info.bus is deprecated */ ++ subsys = libhal_device_get_property_string (ctx, udi, "info.bus", NULL); ++ } ++ return subsys; ++} ++ ++static char * + nm_get_device_driver_name (LibHalContext *ctx, const char *origdev_udi) + { +- char *driver_name = NULL; ++ char *driver_name = NULL, *subsystem, *drv, *od_parent = NULL; + +- if (origdev_udi && libhal_device_property_exists (ctx, origdev_udi, "info.linux.driver", NULL)) { +- char *drv; ++ if (!origdev_udi) ++ return NULL; + +- drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); +- if (drv) { +- driver_name = g_strdup (drv); +- libhal_free_string (drv); ++ /* s390 driver name is on the grandparent of the net device */ ++ subsystem = hal_get_subsystem (ctx, origdev_udi); ++ if (subsystem) { ++ if (!strcmp (subsystem, "ibmebus")) { ++ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); ++ origdev_udi = (const char *) od_parent; ++ } else if (!strcmp (subsystem, "ssb")) { ++ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); ++ origdev_udi = (const char *) od_parent; + } + } ++ ++ drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); ++ if (drv) ++ driver_name = g_strdup (drv); ++ ++ libhal_free_string (drv); ++ libhal_free_string (od_parent); ++ libhal_free_string (subsystem); + return driver_name; + } + +@@ -292,18 +318,34 @@ is_modem_device (NMHalManager *self, const char *udi) + } + + static char * ++hal_get_originating_device (LibHalContext *ctx, const char *udi, const char *prefix) ++{ ++ char *od_key = g_strdup_printf ("%s.originating_device", prefix); ++ char *pd_key = g_strdup_printf ("%s.physical_device", prefix); ++ char *od; ++ ++ od = libhal_device_get_property_string (ctx, udi, od_key, NULL); ++ if (!od) { ++ /* physical_device is deprecated */ ++ od = libhal_device_get_property_string (ctx, udi, pd_key, NULL); ++ } ++ ++ g_free (od_key); ++ g_free (pd_key); ++ return od; ++} ++ ++static char * + get_hso_netdev (LibHalContext *ctx, const char *udi) + { +- char *serial_od = NULL, *serial_od_parent = NULL, *netdev = NULL, *bus; ++ char *serial_od = NULL, *serial_od_parent = NULL, *netdev = NULL, *subsys; + char **netdevs = NULL; + int num, i; + + /* Get the serial interface's originating device UDI, used to find the + * originating device's netdev. + */ +- serial_od = libhal_device_get_property_string (ctx, udi, "serial.originating_device", NULL); +- if (!serial_od) +- serial_od = libhal_device_get_property_string (ctx, udi, "serial.physical_device", NULL); ++ serial_od = hal_get_originating_device (ctx, udi, "serial"); + if (!serial_od) + goto out; + +@@ -312,21 +354,19 @@ get_hso_netdev (LibHalContext *ctx, const char *udi) + goto out; + + /* Check to ensure we've got the actual "USB Device" */ +- bus = libhal_device_get_property_string (ctx, serial_od_parent, "info.bus", NULL); +- if (!bus || strcmp (bus, "usb_device")) { +- libhal_free_string (bus); ++ subsys = hal_get_subsystem (ctx, serial_od_parent); ++ if (!subsys || strcmp (subsys, "usb_device")) { ++ libhal_free_string (subsys); + goto out; + } +- libhal_free_string (bus); ++ libhal_free_string (subsys); + + /* Look for the originating device's netdev */ + netdevs = libhal_find_device_by_capability (ctx, "net", &num, NULL); + for (i = 0; netdevs && !netdev && (i < num); i++) { + char *net_od = NULL, *net_od_parent = NULL, *tmp; + +- net_od = libhal_device_get_property_string (ctx, netdevs[i], "net.originating_device", NULL); +- if (!net_od) +- net_od = libhal_device_get_property_string (ctx, netdevs[i], "net.physical_device", NULL); ++ net_od = hal_get_originating_device (ctx, netdevs[i], "net"); + if (!net_od) + goto next; + +@@ -335,12 +375,12 @@ get_hso_netdev (LibHalContext *ctx, const char *udi) + goto next; + + /* Check to ensure we've got the actual "USB Device" */ +- bus = libhal_device_get_property_string (ctx, net_od_parent, "info.bus", NULL); +- if (!bus || strcmp (bus, "usb_device")) { +- libhal_free_string (bus); ++ subsys = hal_get_subsystem (ctx, net_od_parent); ++ if (!subsys || strcmp (subsys, "usb_device")) { ++ libhal_free_string (subsys); + goto next; + } +- libhal_free_string (bus); ++ libhal_free_string (subsys); + + if (!strcmp (net_od_parent, serial_od_parent)) { + /* We found it */ +@@ -851,22 +891,16 @@ new_modem_device (const char *udi, + static char * + nm_get_modem_device_driver_name (LibHalContext *ctx, const char *udi) + { +- char *driver_name = NULL; +- char *origdev_udi; ++ char *driver_name = NULL, *origdev_udi, *driver; + +- origdev_udi = libhal_device_get_property_string (ctx, udi, "serial.originating_device", NULL); +- /* Older HAL uses "physical_device" */ ++ origdev_udi = hal_get_originating_device (ctx, udi, "serial"); + if (!origdev_udi) +- origdev_udi = libhal_device_get_property_string (ctx, udi, "serial.physical_device", NULL); +- +- if (origdev_udi && libhal_device_property_exists (ctx, origdev_udi, "info.linux.driver", NULL)) { +- char *drv; ++ return NULL; + +- drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); +- if (drv) { +- driver_name = g_strdup (drv); +- libhal_free_string (drv); +- } ++ driver = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); ++ if (driver) { ++ driver_name = g_strdup (driver); ++ libhal_free_string (driver); + } + libhal_free_string (origdev_udi); + return driver_name; +@@ -1039,7 +1073,7 @@ static void + emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) + { + NMHalManagerPrivate *priv = NM_HAL_MANAGER_GET_PRIVATE (self); +- char *od = NULL, *tmp, *parent, *bus = NULL; ++ char *od = NULL, *tmp, *parent, *subsys = NULL; + + g_return_if_fail (self != NULL); + g_return_if_fail (udi != NULL); +@@ -1056,8 +1090,8 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) + */ + parent = libhal_device_get_property_string (priv->hal_ctx, udi, "info.parent", NULL); + if (parent) +- bus = libhal_device_get_property_string (priv->hal_ctx, parent, "info.bus", NULL); +- if (bus && !strcmp (bus, "usb")) { ++ subsys = hal_get_subsystem (priv->hal_ctx, parent); ++ if (subsys && !strcmp (subsys, "usb")) { + char *usb_intf_udi; + + usb_intf_udi = libhal_device_get_property_string (priv->hal_ctx, udi, "info.parent", NULL); +@@ -1066,7 +1100,7 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) + + /* Ensure the grandparent really is the "USB Device" */ + if (od) { +- tmp = libhal_device_get_property_string (priv->hal_ctx, od, "info.bus", NULL); ++ tmp = hal_get_subsystem (priv->hal_ctx, od); + if (!tmp || strcmp (tmp, "usb_device")) { + libhal_free_string (od); + od = NULL; +@@ -1077,24 +1111,15 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) + libhal_free_string (usb_intf_udi); + } + } +- libhal_free_string (bus); ++ libhal_free_string (subsys); + libhal_free_string (parent); + +- /* For non-USB devices, and ss a fallback, just use the originating device +- * of the tty; though this might result in more than one modem being detected by NM. ++ /* For non-USB devices, and as a fallback, just use the originating device ++ * of the tty; though this might result in more than one modem being ++ * detected by NM. + */ +- if (!od) { +- tmp = g_strdup_printf ("%s.originating_device", creator->category); +- od = libhal_device_get_property_string (priv->hal_ctx, udi, tmp, NULL); +- g_free (tmp); +- } +- +- if (!od) { +- /* Older HAL uses 'physical_device' */ +- tmp = g_strdup_printf ("%s.physical_device", creator->category); +- od = libhal_device_get_property_string (priv->hal_ctx, udi, tmp, NULL); +- g_free (tmp); +- } ++ if (!od) ++ od = hal_get_originating_device (priv->hal_ctx, udi, creator->category); + + g_signal_emit (self, signals[UDI_ADDED], 0, + udi, +-- +1.6.3.3 + diff --git a/debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch b/debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch deleted file mode 100644 index aa19d5d1..00000000 --- a/debian/patches/06-handle-new-ssb-bus-from-HAL-0.5.13.patch +++ /dev/null @@ -1,50 +0,0 @@ -From d185695d80b248354dd7a95fd896daa5c45085e5 Mon Sep 17 00:00:00 2001 -From: Dan Williams -Date: Fri, 14 Aug 2009 09:44:02 -0500 -Subject: [PATCH] core: handle new 'ssb' bus from HAL 0.5.13 (deb #540613) - -HAL added 'ssb' (Silicon Sonics Backplane, used internally on most -Broadcom ethernet and wifi chipsets) in 0.5.13, which changed the -device list layout and made NM unable to get the driver for the -wifi device. Fix that. ---- - src/nm-hal-manager.c | 16 +++++++++++----- - 1 files changed, 11 insertions(+), 5 deletions(-) - -diff --git a/src/nm-hal-manager.c b/src/nm-hal-manager.c -index 581d79e..a49e9e6 100644 ---- a/src/nm-hal-manager.c -+++ b/src/nm-hal-manager.c -@@ -146,9 +146,14 @@ nm_get_device_driver_name (LibHalContext *ctx, const char *origdev_udi) - - /* s390 driver name is on the grandparent of the net device */ - subsystem = hal_get_subsystem (ctx, origdev_udi); -- if (subsystem && !strcmp (subsystem, "ibmebus")) { -- od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); -- origdev_udi = (const char *) od_parent; -+ if (subsystem) { -+ if (!strcmp (subsystem, "ibmebus")) { -+ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); -+ origdev_udi = (const char *) od_parent; -+ } else if (!strcmp (subsystem, "ssb")) { -+ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); -+ origdev_udi = (const char *) od_parent; -+ } - } - - drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); -@@ -1214,8 +1219,9 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) - libhal_free_string (subsys); - libhal_free_string (parent); - -- /* For non-USB devices, and ss a fallback, just use the originating device -- * of the tty; though this might result in more than one modem being detected by NM. -+ /* For non-USB devices, and as a fallback, just use the originating device -+ * of the tty; though this might result in more than one modem being -+ * detected by NM. - */ - if (!od) - od = hal_get_originating_device (priv->hal_ctx, udi, creator->category); --- -1.6.3.3 - diff --git a/debian/patches/series b/debian/patches/series index f718a5d7..6a732b2f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -2,5 +2,4 @@ #03-F3507g.patch #20-manual_means_always_online.patch 04-struct_termios.patch -05-response-buffer-filled.patch -06-handle-new-ssb-bus-from-HAL-0.5.13.patch +05-handle-new-ssb-bus-from-HAL-0.5.13.patch -- cgit 1.3.0-6-gf8a5 From 2197e852526abc628a32322fad940897499664dd Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 23 Nov 2009 23:47:29 +0000 Subject: * debian/patches/02-dbus_access_network_manager.patch - Update group="netdev" policy based on the upstream changes for at_console. The updated D-Bus policy also fixes communication failures between pppd and NetworkManager. (Closes: #555624) git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3273 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- .../patches/02-dbus_access_network_manager.patch | 51 +++++++++++++++++++--- 1 file changed, 45 insertions(+), 6 deletions(-) (limited to 'debian/patches') diff --git a/debian/patches/02-dbus_access_network_manager.patch b/debian/patches/02-dbus_access_network_manager.patch index c96a0de1..8c90bfd7 100644 --- a/debian/patches/02-dbus_access_network_manager.patch +++ b/debian/patches/02-dbus_access_network_manager.patch @@ -1,16 +1,55 @@ -Index: network-manager-0.7.0.97/src/NetworkManager.conf +Index: NetworkManager-0.7.2/src/NetworkManager.conf =================================================================== ---- network-manager-0.7.0.97.orig/src/NetworkManager.conf 2009-02-17 16:45:44.000000000 +0100 -+++ network-manager-0.7.0.97/src/NetworkManager.conf 2009-02-22 03:20:14.000000000 +0100 -@@ -9,6 +9,12 @@ +--- NetworkManager-0.7.2.orig/src/NetworkManager.conf 2009-11-23 20:17:47.000000000 +0100 ++++ NetworkManager-0.7.2/src/NetworkManager.conf 2009-11-24 00:38:15.416687481 +0100 +@@ -9,6 +9,51 @@ + + + -+ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + -- cgit 1.3.0-6-gf8a5 From cfae2d2412095b104b158b90a6e5cdb3058b4b92 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 23 Nov 2009 23:49:03 +0000 Subject: * Drop patches that have been merged upstream - debian/patches/04-struct_termios.patch - debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch git-svn-id: svn+ssh://svn.debian.org/svn/pkg-utopia/packages/unstable/networkmanager@3274 ceb527fc-18e6-0310-9fe2-813c157c29e7 --- debian/patches/04-struct_termios.patch | 66 ------ .../05-handle-new-ssb-bus-from-HAL-0.5.13.patch | 253 --------------------- debian/patches/series | 2 - 3 files changed, 321 deletions(-) delete mode 100644 debian/patches/04-struct_termios.patch delete mode 100644 debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch (limited to 'debian/patches') diff --git a/debian/patches/04-struct_termios.patch b/debian/patches/04-struct_termios.patch deleted file mode 100644 index bddb0394..00000000 --- a/debian/patches/04-struct_termios.patch +++ /dev/null @@ -1,66 +0,0 @@ -# Fix FTBFS on alpha by using the POSIX.1 struct termios interface instead -# of the obsolete struct termio ioctl interface. (Closes: #524161) -diff --git a/src/nm-serial-device.c b/src/nm-serial-device.c -index 1cba1ca..afdc6a6 100644 ---- a/src/nm-serial-device.c -+++ b/src/nm-serial-device.c -@@ -21,13 +21,12 @@ - - #define _GNU_SOURCE /* for strcasestr() */ - --#include -+#include - #include - #include - #include - #include - #include --#include - #include - #include - #include -@@ -346,7 +345,7 @@ static gboolean - config_fd (NMSerialDevice *device, NMSettingSerial *setting) - { - NMSerialDevicePrivate *priv = NM_SERIAL_DEVICE_GET_PRIVATE (device); -- struct termio stbuf; -+ struct termios stbuf; - int speed; - int bits; - int parity; -@@ -357,7 +356,7 @@ config_fd (NMSerialDevice *device, NMSettingSerial *setting) - parity = parse_parity (nm_setting_serial_get_parity (setting)); - stopbits = parse_stopbits (nm_setting_serial_get_stopbits (setting)); - -- ioctl (priv->fd, TCGETA, &stbuf); -+ tcgetattr (priv->fd, &stbuf); - - stbuf.c_iflag &= ~(IGNCR | ICRNL | IUCLC | INPCK | IXON | IXANY | IGNPAR ); - stbuf.c_oflag &= ~(OPOST | OLCUC | OCRNL | ONLCR | ONLRET); -@@ -370,7 +369,7 @@ config_fd (NMSerialDevice *device, NMSettingSerial *setting) - stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB); - stbuf.c_cflag |= (speed | bits | CREAD | 0 | parity | stopbits); - -- if (ioctl (priv->fd, TCSETA, &stbuf) < 0) { -+ if (tcsetattr (priv->fd, TCSANOW, &stbuf) < 0) { - nm_warning ("(%s) cannot control device (errno %d)", - nm_device_get_iface (NM_DEVICE (device)), errno); - return FALSE; -@@ -404,7 +403,7 @@ nm_serial_device_open (NMSerialDevice *device, - return FALSE; - } - -- if (ioctl (priv->fd, TCGETA, &priv->old_t) < 0) { -+ if (tcgetattr (priv->fd, &priv->old_t) < 0) { - nm_warning ("(%s) cannot control device (errno %d)", iface, errno); - close (priv->fd); - return FALSE; -@@ -447,7 +446,7 @@ nm_serial_device_close (NMSerialDevice *device) - priv->channel = NULL; - } - -- ioctl (priv->fd, TCSETA, &priv->old_t); -+ tcsetattr (priv->fd, TCSANOW, &priv->old_t); - close (priv->fd); - priv->fd = 0; - } diff --git a/debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch b/debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch deleted file mode 100644 index 25949e82..00000000 --- a/debian/patches/05-handle-new-ssb-bus-from-HAL-0.5.13.patch +++ /dev/null @@ -1,253 +0,0 @@ -Squash the following commits into one patch - -d0cdbf3525b105de6dc0ca4ce02801bfe8fe2222 -4c36f7c0b607813753072acf1bec14414494948c -d185695d80b248354dd7a95fd896daa5c45085e5 - -modem: handle newer HAL versions where info.bus is no longer present - -hal: find driver for ibmebus-type 'ehea' devices - -core: handle new 'ssb' bus from HAL 0.5.13 (deb #540613) - -HAL added 'ssb' (Silicon Sonics Backplane, used internally on most -Broadcom ethernet and wifi chipsets) in 0.5.13, which changed the -device list layout and made NM unable to get the driver for the -wifi device. Fix that. ---- - src/nm-hal-manager.c | 133 +++++++++++++++++++++++++++++-------------------- - 1 files changed, 79 insertions(+), 54 deletions(-) - -diff --git a/src/nm-hal-manager.c b/src/nm-hal-manager.c -index 647fe21..a01b4e2 100644 ---- a/src/nm-hal-manager.c -+++ b/src/nm-hal-manager.c -@@ -124,19 +124,45 @@ get_creator (NMHalManager *self, const char *udi) - /* Common helpers for built-in device creators */ - - static char * -+hal_get_subsystem (LibHalContext *ctx, const char *udi) -+{ -+ char *subsys; -+ -+ subsys = libhal_device_get_property_string (ctx, udi, "info.subsystem", NULL); -+ if (!subsys) { -+ /* info.bus is deprecated */ -+ subsys = libhal_device_get_property_string (ctx, udi, "info.bus", NULL); -+ } -+ return subsys; -+} -+ -+static char * - nm_get_device_driver_name (LibHalContext *ctx, const char *origdev_udi) - { -- char *driver_name = NULL; -+ char *driver_name = NULL, *subsystem, *drv, *od_parent = NULL; - -- if (origdev_udi && libhal_device_property_exists (ctx, origdev_udi, "info.linux.driver", NULL)) { -- char *drv; -+ if (!origdev_udi) -+ return NULL; - -- drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); -- if (drv) { -- driver_name = g_strdup (drv); -- libhal_free_string (drv); -+ /* s390 driver name is on the grandparent of the net device */ -+ subsystem = hal_get_subsystem (ctx, origdev_udi); -+ if (subsystem) { -+ if (!strcmp (subsystem, "ibmebus")) { -+ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); -+ origdev_udi = (const char *) od_parent; -+ } else if (!strcmp (subsystem, "ssb")) { -+ od_parent = libhal_device_get_property_string (ctx, origdev_udi, "info.parent", NULL); -+ origdev_udi = (const char *) od_parent; - } - } -+ -+ drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); -+ if (drv) -+ driver_name = g_strdup (drv); -+ -+ libhal_free_string (drv); -+ libhal_free_string (od_parent); -+ libhal_free_string (subsystem); - return driver_name; - } - -@@ -292,18 +318,34 @@ is_modem_device (NMHalManager *self, const char *udi) - } - - static char * -+hal_get_originating_device (LibHalContext *ctx, const char *udi, const char *prefix) -+{ -+ char *od_key = g_strdup_printf ("%s.originating_device", prefix); -+ char *pd_key = g_strdup_printf ("%s.physical_device", prefix); -+ char *od; -+ -+ od = libhal_device_get_property_string (ctx, udi, od_key, NULL); -+ if (!od) { -+ /* physical_device is deprecated */ -+ od = libhal_device_get_property_string (ctx, udi, pd_key, NULL); -+ } -+ -+ g_free (od_key); -+ g_free (pd_key); -+ return od; -+} -+ -+static char * - get_hso_netdev (LibHalContext *ctx, const char *udi) - { -- char *serial_od = NULL, *serial_od_parent = NULL, *netdev = NULL, *bus; -+ char *serial_od = NULL, *serial_od_parent = NULL, *netdev = NULL, *subsys; - char **netdevs = NULL; - int num, i; - - /* Get the serial interface's originating device UDI, used to find the - * originating device's netdev. - */ -- serial_od = libhal_device_get_property_string (ctx, udi, "serial.originating_device", NULL); -- if (!serial_od) -- serial_od = libhal_device_get_property_string (ctx, udi, "serial.physical_device", NULL); -+ serial_od = hal_get_originating_device (ctx, udi, "serial"); - if (!serial_od) - goto out; - -@@ -312,21 +354,19 @@ get_hso_netdev (LibHalContext *ctx, const char *udi) - goto out; - - /* Check to ensure we've got the actual "USB Device" */ -- bus = libhal_device_get_property_string (ctx, serial_od_parent, "info.bus", NULL); -- if (!bus || strcmp (bus, "usb_device")) { -- libhal_free_string (bus); -+ subsys = hal_get_subsystem (ctx, serial_od_parent); -+ if (!subsys || strcmp (subsys, "usb_device")) { -+ libhal_free_string (subsys); - goto out; - } -- libhal_free_string (bus); -+ libhal_free_string (subsys); - - /* Look for the originating device's netdev */ - netdevs = libhal_find_device_by_capability (ctx, "net", &num, NULL); - for (i = 0; netdevs && !netdev && (i < num); i++) { - char *net_od = NULL, *net_od_parent = NULL, *tmp; - -- net_od = libhal_device_get_property_string (ctx, netdevs[i], "net.originating_device", NULL); -- if (!net_od) -- net_od = libhal_device_get_property_string (ctx, netdevs[i], "net.physical_device", NULL); -+ net_od = hal_get_originating_device (ctx, netdevs[i], "net"); - if (!net_od) - goto next; - -@@ -335,12 +375,12 @@ get_hso_netdev (LibHalContext *ctx, const char *udi) - goto next; - - /* Check to ensure we've got the actual "USB Device" */ -- bus = libhal_device_get_property_string (ctx, net_od_parent, "info.bus", NULL); -- if (!bus || strcmp (bus, "usb_device")) { -- libhal_free_string (bus); -+ subsys = hal_get_subsystem (ctx, net_od_parent); -+ if (!subsys || strcmp (subsys, "usb_device")) { -+ libhal_free_string (subsys); - goto next; - } -- libhal_free_string (bus); -+ libhal_free_string (subsys); - - if (!strcmp (net_od_parent, serial_od_parent)) { - /* We found it */ -@@ -851,22 +891,16 @@ new_modem_device (const char *udi, - static char * - nm_get_modem_device_driver_name (LibHalContext *ctx, const char *udi) - { -- char *driver_name = NULL; -- char *origdev_udi; -+ char *driver_name = NULL, *origdev_udi, *driver; - -- origdev_udi = libhal_device_get_property_string (ctx, udi, "serial.originating_device", NULL); -- /* Older HAL uses "physical_device" */ -+ origdev_udi = hal_get_originating_device (ctx, udi, "serial"); - if (!origdev_udi) -- origdev_udi = libhal_device_get_property_string (ctx, udi, "serial.physical_device", NULL); -- -- if (origdev_udi && libhal_device_property_exists (ctx, origdev_udi, "info.linux.driver", NULL)) { -- char *drv; -+ return NULL; - -- drv = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); -- if (drv) { -- driver_name = g_strdup (drv); -- libhal_free_string (drv); -- } -+ driver = libhal_device_get_property_string (ctx, origdev_udi, "info.linux.driver", NULL); -+ if (driver) { -+ driver_name = g_strdup (driver); -+ libhal_free_string (driver); - } - libhal_free_string (origdev_udi); - return driver_name; -@@ -1039,7 +1073,7 @@ static void - emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) - { - NMHalManagerPrivate *priv = NM_HAL_MANAGER_GET_PRIVATE (self); -- char *od = NULL, *tmp, *parent, *bus = NULL; -+ char *od = NULL, *tmp, *parent, *subsys = NULL; - - g_return_if_fail (self != NULL); - g_return_if_fail (udi != NULL); -@@ -1056,8 +1090,8 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) - */ - parent = libhal_device_get_property_string (priv->hal_ctx, udi, "info.parent", NULL); - if (parent) -- bus = libhal_device_get_property_string (priv->hal_ctx, parent, "info.bus", NULL); -- if (bus && !strcmp (bus, "usb")) { -+ subsys = hal_get_subsystem (priv->hal_ctx, parent); -+ if (subsys && !strcmp (subsys, "usb")) { - char *usb_intf_udi; - - usb_intf_udi = libhal_device_get_property_string (priv->hal_ctx, udi, "info.parent", NULL); -@@ -1066,7 +1100,7 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) - - /* Ensure the grandparent really is the "USB Device" */ - if (od) { -- tmp = libhal_device_get_property_string (priv->hal_ctx, od, "info.bus", NULL); -+ tmp = hal_get_subsystem (priv->hal_ctx, od); - if (!tmp || strcmp (tmp, "usb_device")) { - libhal_free_string (od); - od = NULL; -@@ -1077,24 +1111,15 @@ emit_udi_added (NMHalManager *self, const char *udi, DeviceCreator *creator) - libhal_free_string (usb_intf_udi); - } - } -- libhal_free_string (bus); -+ libhal_free_string (subsys); - libhal_free_string (parent); - -- /* For non-USB devices, and ss a fallback, just use the originating device -- * of the tty; though this might result in more than one modem being detected by NM. -+ /* For non-USB devices, and as a fallback, just use the originating device -+ * of the tty; though this might result in more than one modem being -+ * detected by NM. - */ -- if (!od) { -- tmp = g_strdup_printf ("%s.originating_device", creator->category); -- od = libhal_device_get_property_string (priv->hal_ctx, udi, tmp, NULL); -- g_free (tmp); -- } -- -- if (!od) { -- /* Older HAL uses 'physical_device' */ -- tmp = g_strdup_printf ("%s.physical_device", creator->category); -- od = libhal_device_get_property_string (priv->hal_ctx, udi, tmp, NULL); -- g_free (tmp); -- } -+ if (!od) -+ od = hal_get_originating_device (priv->hal_ctx, udi, creator->category); - - g_signal_emit (self, signals[UDI_ADDED], 0, - udi, --- -1.6.3.3 - diff --git a/debian/patches/series b/debian/patches/series index 6a732b2f..3ad97cdd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,5 +1,3 @@ 02-dbus_access_network_manager.patch #03-F3507g.patch #20-manual_means_always_online.patch -04-struct_termios.patch -05-handle-new-ssb-bus-from-HAL-0.5.13.patch -- cgit 1.3.0-6-gf8a5