On 04.12.2010 17:26, Michael Biebl wrote: > Debdiff is attached. This time for real... -- Why is it that all of the instruments seeking intelligent life in the universe are pointed away from Earth?
diff --git a/debian/changelog b/debian/changelog
index 11dbc92..46daaec 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
+network-manager (0.8.1-6) unstable; urgency=low
+
+ * debian/patches/40-umanaged-interfaces.patch
+ - For devices to be marked unmanaged, do not require a valid connection
+ configuration. (Closes: #569215)
+ * debian/patches/50-bridge-interfaces.patch
+ - Parse bridge configurations in /etc/network/interfaces and add
+ interfaces defined via bridge_ports to well_known_interfaces. This
+ allows to mark those interfaces as unmanaged if managed=false.
+ The "all" keyword and regexes are not supported and simply skipped.
+ (Closes: #530335)
+
+ -- Michael Biebl <biebl@debian.org> Sat, 04 Dec 2010 17:11:13 +0100
+
network-manager (0.8.1-5) unstable; urgency=low
* Update Vcs-* fields: Move packaging from svn to git.
diff --git a/debian/patches/40-umanaged-interfaces.patch b/debian/patches/40-umanaged-interfaces.patch
new file mode 100644
index 0000000..b5509fc
--- /dev/null
+++ b/debian/patches/40-umanaged-interfaces.patch
@@ -0,0 +1,28 @@
+Index: network-manager/system-settings/plugins/ifupdown/plugin.c
+===================================================================
+--- network-manager.orig/system-settings/plugins/ifupdown/plugin.c 2010-12-03 20:47:40.656731988 +0100
++++ network-manager/system-settings/plugins/ifupdown/plugin.c 2010-12-04 16:41:38.258906974 +0100
+@@ -366,6 +366,7 @@
+ /* Remove any connection for this block that was previously found */
+ exported = g_hash_table_lookup (priv->iface_connections, block->name);
+ if (exported) {
++ PLUGIN_PRINT("SCPlugin-Ifupdown", "deleting %s from iface_connections", block->name);
+ nm_settings_connection_interface_delete (NM_SETTINGS_CONNECTION_INTERFACE (exported),
+ ignore_cb,
+ NULL);
+@@ -375,11 +376,14 @@
+ /* add the new connection */
+ exported = nm_ifupdown_connection_new (block);
+ if (exported) {
++ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding %s to iface_connections", block->name);
+ g_hash_table_insert (priv->iface_connections, block->name, exported);
+- g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
+ }
++ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding iface %s to well_known_interfaces", block->name);
++ g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
+ } else if (!strcmp ("mapping", block->type)) {
+ g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
++ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding mapping %s to well_known_interfaces", block->name);
+ }
+ block = block->next;
+ }
diff --git a/debian/patches/50-bridge-interfaces.patch b/debian/patches/50-bridge-interfaces.patch
new file mode 100644
index 0000000..f58ba5d
--- /dev/null
+++ b/debian/patches/50-bridge-interfaces.patch
@@ -0,0 +1,63 @@
+Index: network-manager/system-settings/plugins/ifupdown/plugin.c
+===================================================================
+--- network-manager.orig/system-settings/plugins/ifupdown/plugin.c 2010-12-04 16:41:38.000000000 +0100
++++ network-manager/system-settings/plugins/ifupdown/plugin.c 2010-12-04 16:51:51.810906877 +0100
+@@ -360,9 +360,49 @@
+ while (block) {
+ if(!strcmp ("auto", block->type) || !strcmp ("allow-hotplug", block->type))
+ g_hash_table_insert (auto_ifaces, block->name, GUINT_TO_POINTER (1));
+- else if (!strcmp ("iface", block->type) && strcmp ("lo", block->name)) {
++ else if (!strcmp ("iface", block->type)) {
+ NMIfupdownConnection *exported;
+
++ /* Bridge configuration */
++ if(!strncmp ("br", block->name, 2)) {
++ /* Try to find bridge ports */
++ const char *ports = ifparser_getkey (block, "bridge_ports");
++ if (ports) {
++ PLUGIN_PRINT("SCPlugin-Ifupdown", "found bridge ports %s for %s", ports, block->name);
++ char **port_ifaces = g_strsplit_set (ports, " \t", -1);
++
++ int i;
++ int state = 0;
++ for (i = 0; i < g_strv_length (port_ifaces); i++) {
++ char *token = port_ifaces[i];
++ /* Skip crazy stuff like regex or all */
++ if (!strcmp ("all", token)) {
++ continue;
++ }
++ /* Small SM to skip everything inside regex */
++ if (!strcmp ("regex", token)) {
++ state++;
++ continue;
++ }
++ if (!strcmp ("noregex", token)) {
++ state--;
++ continue;
++ }
++ if (state == 0 && strlen (token) > 0) {
++ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding bridge port %s to well_known_interfaces", token);
++ g_hash_table_insert (priv->well_known_interfaces, g_strdup (token), "known");
++ }
++ }
++ g_strfreev (port_ifaces);
++ }
++ goto next;
++ }
++
++ /* Skip loopback configuration */
++ if(!strcmp ("lo", block->name)) {
++ goto next;
++ }
++
+ /* Remove any connection for this block that was previously found */
+ exported = g_hash_table_lookup (priv->iface_connections, block->name);
+ if (exported) {
+@@ -385,6 +425,7 @@
+ g_hash_table_insert (priv->well_known_interfaces, block->name, "known");
+ PLUGIN_PRINT("SCPlugin-Ifupdown", "adding mapping %s to well_known_interfaces", block->name);
+ }
++ next:
+ block = block->next;
+ }
+
diff --git a/debian/patches/series b/debian/patches/series
index 365331c..012269a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,5 @@
02-dbus_access_network_manager.patch
10-dont_require_ifup_for_lo.patch
30-typo_fix.patch
+40-umanaged-interfaces.patch
+50-bridge-interfaces.patch
Attachment:
signature.asc
Description: OpenPGP digital signature