rpms/NetworkManager/OLPC-3 3307.patch, NONE, 1.1 NetworkManager-0.6.5-3206-edit.patch, NONE, 1.1 NetworkManager-0.6.5-glibc-open.patch, NONE, 1.1 NetworkManager.spec, 1.224, 1.225

Dennis Gilmore (ausil) fedora-extras-commits at redhat.com
Mon May 12 19:14:14 UTC 2008


Author: ausil

Update of /cvs/extras/rpms/NetworkManager/OLPC-3
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17392

Modified Files:
	NetworkManager.spec 
Added Files:
	3307.patch NetworkManager-0.6.5-3206-edit.patch 
	NetworkManager-0.6.5-glibc-open.patch 
Log Message:
add some patches to build on a F-9 base


3307.patch:

--- NEW FILE 3307.patch ---
Index: branches/NETWORKMANAGER_0_6_0_RELEASE/ChangeLog
===================================================================
--- branches/NETWORKMANAGER_0_6_0_RELEASE/ChangeLog	(revision 3306)
+++ branches/NETWORKMANAGER_0_6_0_RELEASE/ChangeLog	(revision 3307)
@@ -1,5 +1,32 @@
 2008-02-11  Dan Williams  <dcbw at redhat.com>
 
+	Fix gnome.org #399292
+
+	* utils/nm-utils.c
+	  utils/nm-utils.h
+		- (nm_dbus_escape_object_path -> nm_dbus_escape_object_path_item): don't
+			pass '/' through, escape it too; therefore the function is no
+			longer suitable for escaping entire object paths, but only elements
+			of an object path.  Helps fixing crashes due to libdbus assertions
+			when trying to push invalid object paths through.
+
+	* src/NetworkManagerDbus.c
+		- (nm_dbus_get_object_path_for_device,
+		   nm_dbus_get_object_path_for_network,
+		   nm_dbus_get_device_from_escaped_object_path,
+		   nm_dbus_devices_message_handler): escape individual elements of the
+			object path, not the whole path
+
+	* src/nm-dbus-nm.c
+		- (nm_dbus_nm_create_test_device): escape individual elements of the
+			object path, not the whole path
+
+	* src/nm-dbus-net.c
+		- (nm_dbus_get_ap_from_object_path): escape individual elements of the
+			object path, not the whole path
+
+2008-02-11  Dan Williams  <dcbw at redhat.com>
+
 	* src/nm-device-802-11-wireless.c
 	  src/nm-device-802-11-wireless.h
 		- (nm_device_802_11_wireless_ap_list_get_ap_by_obj_path): remove, unused
Index: branches/NETWORKMANAGER_0_6_0_RELEASE/src/NetworkManagerDbus.c
===================================================================
--- branches/NETWORKMANAGER_0_6_0_RELEASE/src/NetworkManagerDbus.c	(revision 3306)
+++ branches/NETWORKMANAGER_0_6_0_RELEASE/src/NetworkManagerDbus.c	(revision 3307)
@@ -82,15 +82,18 @@
  */
 char * nm_dbus_get_object_path_for_device (NMDevice *dev)
 {
-	char *object_path, *escaped_object_path;
+	char *object_path, *escaped_dev;
 
 	g_return_val_if_fail (dev != NULL, NULL);
 
-	object_path = g_strdup_printf ("%s/%s", NM_DBUS_PATH_DEVICES, nm_device_get_iface (dev));
-	escaped_object_path = nm_dbus_escape_object_path (object_path);
-	g_free (object_path);
+	escaped_dev = nm_dbus_escape_object_path_item (nm_device_get_iface (dev));
+	if (!escaped_dev)
+		return NULL;
 
-	return escaped_object_path;
+	object_path = g_strdup_printf ("%s/%s", NM_DBUS_PATH_DEVICES, escaped_dev);
+	g_free (escaped_dev);
+
+	return object_path;
 }
 
 
@@ -102,7 +105,7 @@
  */
 char * nm_dbus_get_object_path_for_network (NMDevice *dev, NMAccessPoint *ap)
 {
-	char *object_path, *escaped_object_path;
+	char *object_path = NULL, *escaped_ssid = NULL, *escaped_dev = NULL;
 
 	g_return_val_if_fail (dev != NULL, NULL);
 	g_return_val_if_fail (ap != NULL, NULL);
@@ -110,11 +113,15 @@
 	if (!nm_ap_get_essid (ap))
 		return NULL;
 
-	object_path = g_strdup_printf ("%s/%s/Networks/%s", NM_DBUS_PATH_DEVICES, nm_device_get_iface (dev), nm_ap_get_essid (ap));
-	escaped_object_path = nm_dbus_escape_object_path (object_path);
-	g_free (object_path);
+	escaped_ssid = nm_dbus_escape_object_path_item (nm_ap_get_essid (ap));
+	escaped_dev = nm_dbus_escape_object_path_item (nm_device_get_iface (dev));
+	if (escaped_dev && escaped_ssid)
+		object_path = g_strdup_printf ("%s/%s/Networks/%s", NM_DBUS_PATH_DEVICES, escaped_dev, escaped_ssid);
 
-	return escaped_object_path;
+	g_free (escaped_ssid);
+	g_free (escaped_dev);
+
+	return object_path;
 }
 
 
@@ -139,25 +146,29 @@
 	for (elt = data->dev_list; elt; elt = g_slist_next (elt))
 	{
 		char *compare_path;
-		char *escaped_compare_path;
+		char *escaped_dev;
 		int len;
 
 		if (!(dev = (NMDevice *)(elt->data)))
 			continue;
 
-		compare_path = g_strdup_printf ("%s/%s", NM_DBUS_PATH_DEVICES, nm_device_get_iface (dev));
-		escaped_compare_path = nm_dbus_escape_object_path (compare_path);
-		g_free (compare_path);
-		len = strlen (escaped_compare_path);
+		escaped_dev = nm_dbus_escape_object_path_item (nm_device_get_iface (dev));
+		if (!escaped_dev)
+			continue;
 
+		compare_path = g_strdup_printf ("%s/%s", NM_DBUS_PATH_DEVICES, escaped_dev);
+		g_free (escaped_dev);
+
+		len = strlen (compare_path);
+
 		/* Compare against our constructed path, but ignore any trailing elements */
-		if (    (strncmp (path, escaped_compare_path, len) == 0)
+		if (    (strncmp (path, compare_path, len) == 0)
 			&& ((path[len] == '\0' || path[len] == '/')))
 		{
-			g_free (escaped_compare_path);
+			g_free (compare_path);
 			break;
 		}
-		g_free (escaped_compare_path);
+		g_free (compare_path);
 		dev = NULL;
 	}
 	nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__);
@@ -639,21 +650,24 @@
 		reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, "DeviceNotFound", "The requested network device does not exist.");
 	else
 	{
-		char			*object_path, *escaped_object_path;
+		char			*object_path, *escaped_dev;
 		NMDbusCBData	 cb_data;
 
 		cb_data.data = data;
 		cb_data.dev = dev;
 
 		/* Test whether or not the _networks_ of a device were queried instead of the device itself */
-		object_path = g_strdup_printf ("%s/%s/Networks/", NM_DBUS_PATH_DEVICES, nm_device_get_iface (dev));
-		escaped_object_path = nm_dbus_escape_object_path (object_path);
-		g_free (object_path);
-		if (strncmp (path, escaped_object_path, strlen (escaped_object_path)) == 0)
-			handled = nm_dbus_method_dispatch (data->net_methods, connection, message, &cb_data, &reply);
-		else
-			handled = nm_dbus_method_dispatch (data->device_methods, connection, message, &cb_data, &reply);
-		g_free (escaped_object_path);
+		escaped_dev = nm_dbus_escape_object_path_item (nm_device_get_iface (dev));
+		if (escaped_dev) {
+			object_path = g_strdup_printf ("%s/%s/Networks/", NM_DBUS_PATH_DEVICES, escaped_dev);
+			g_free (escaped_dev);
+
+			if (strncmp (path, object_path, strlen (object_path)) == 0)
+				handled = nm_dbus_method_dispatch (data->net_methods, connection, message, &cb_data, &reply);
+			else
+				handled = nm_dbus_method_dispatch (data->device_methods, connection, message, &cb_data, &reply);
+			g_free (object_path);
+		}
 	}
 
 	if (reply)
Index: branches/NETWORKMANAGER_0_6_0_RELEASE/src/nm-dbus-nm.c
===================================================================
--- branches/NETWORKMANAGER_0_6_0_RELEASE/src/nm-dbus-nm.c	(revision 3306)
+++ branches/NETWORKMANAGER_0_6_0_RELEASE/src/nm-dbus-nm.c	(revision 3307)
@@ -434,12 +434,14 @@
 		test_dev_num++;
 		if ((reply = dbus_message_new_method_return (message)))
 		{
-			char		*dev_path, *escaped_dev_path;
-			dev_path = g_strdup_printf ("%s/%s", NM_DBUS_PATH_DEVICES, nm_device_get_iface (dev));
-			escaped_dev_path = nm_dbus_escape_object_path (dev_path);
+			char *dev_path, *escaped_dev;
+
+			escaped_dev = nm_dbus_escape_object_path_item (nm_device_get_iface (dev));
+			dev_path = g_strdup_printf ("%s/%s", NM_DBUS_PATH_DEVICES, escaped_dev);
+			g_free (escaped_dev);
+
 			dbus_message_append_args (reply, DBUS_TYPE_STRING, &dev_path, DBUS_TYPE_INVALID);
 			g_free (dev_path);
-			g_free (escaped_dev_path);
 		}
 		g_free (interface);
 		g_free (udi);
Index: branches/NETWORKMANAGER_0_6_0_RELEASE/src/nm-dbus-net.c
===================================================================
--- branches/NETWORKMANAGER_0_6_0_RELEASE/src/nm-dbus-net.c	(revision 3306)
+++ branches/NETWORKMANAGER_0_6_0_RELEASE/src/nm-dbus-net.c	(revision 3307)
@@ -39,7 +39,6 @@
 	NMAccessPoint		*ap = NULL;
 	NMAccessPointList	*ap_list;
 	NMAPListIter		*iter;
-	char			compare_path[100], *escaped_compare_path;
 
 	g_return_val_if_fail (path != NULL, NULL);
 	g_return_val_if_fail (dev != NULL, NULL);
@@ -51,29 +50,39 @@
 	if (!(iter = nm_ap_list_iter_new (ap_list)))
 		return (NULL);
 
-	while ((ap = nm_ap_list_iter_next (iter)))
-	{
+	while ((ap = nm_ap_list_iter_next (iter))) {
 		int len;
+		char *compare_path, *escaped_dev, *escaped_ssid;
 
-		snprintf (compare_path, 100, "%s/%s/Networks/%s", NM_DBUS_PATH_DEVICES,
-				nm_device_get_iface (dev), nm_ap_get_essid (ap));
-		escaped_compare_path = nm_dbus_escape_object_path (compare_path);
+		if (!nm_ap_get_essid (ap))
+			continue;
 
-		len = strlen(escaped_compare_path);
-		if (strncmp (path, escaped_compare_path, len) == 0)
-		{
+		escaped_dev = nm_dbus_escape_object_path_item (nm_device_get_iface (dev));
+		if (!escaped_dev)
+			continue;
+
+		escaped_ssid = nm_dbus_escape_object_path_item (nm_ap_get_essid (ap));
+		if (!escaped_ssid) {
+			g_free (escaped_dev);
+			continue;
+		}
+
+		compare_path = g_strdup_printf ("%s/%s/Networks/%s",
+		                                NM_DBUS_PATH_DEVICES, escaped_dev, escaped_ssid);
+
+		len = strlen (compare_path);
+		if (strncmp (path, compare_path, len) == 0) {
 			/* Differentiate between 'foo' and 'foo-a' */
-			if (path[len] == '\0' || path[len] == '/')
-			{
-				g_free (escaped_compare_path);
+			if (path[len] == '\0' || path[len] == '/') {
+				g_free (compare_path);
 				break;
 			}
 		}
-		g_free (escaped_compare_path);
+		g_free (compare_path);
 	}
 		
 	nm_ap_list_iter_free (iter);
-	return (ap);
+	return ap;
 }
 
 
Index: branches/NETWORKMANAGER_0_6_0_RELEASE/utils/nm-utils.c
===================================================================
--- branches/NETWORKMANAGER_0_6_0_RELEASE/utils/nm-utils.c	(revision 3306)
+++ branches/NETWORKMANAGER_0_6_0_RELEASE/utils/nm-utils.c	(revision 3307)
@@ -27,42 +27,27 @@
 #include <glib.h>
 #include "nm-utils.h"
 
-gchar *nm_dbus_escape_object_path (const gchar *utf8_string)
+gchar *nm_dbus_escape_object_path_item (const gchar *item)
 {
-	const gchar *p;
+	unsigned char *p;
 	gchar *object_path;
 	GString *string;
 
-	g_return_val_if_fail (utf8_string != NULL, NULL);	
-	g_return_val_if_fail (g_utf8_validate (utf8_string, -1, NULL), NULL);
+	g_return_val_if_fail (item != NULL, NULL);	
 
-	string = g_string_sized_new ((strlen (utf8_string) + 1) * 6);
+	string = g_string_sized_new ((strlen (item) + 1) * 6);
 
-	for (p = utf8_string; *p != '\0'; p = g_utf8_next_char (p))
-	{
-		gunichar character;
-
-		character = g_utf8_get_char (p);
-
-		if (((character >= ((gunichar) 'a')) && 
-		     (character <= ((gunichar) 'z'))) ||
-		    ((character >= ((gunichar) 'A')) && 
-		     (character <= ((gunichar) 'Z'))) ||
-		    ((character >= ((gunichar) '0')) && 
-		     (character <= ((gunichar) '9'))) ||
-		     (character == ((gunichar) '/')))
-		{
-			g_string_append_c (string, (gchar) character);
-			continue;
-		}
-
-		g_string_append_printf (string, "_%x_", character);
+	for (p = (unsigned char *) item; *p != '\0'; p++) {
+		if (((*p >= 'a') && (*p <= 'z')) ||
+		    ((*p >= 'A') && (*p <= 'Z')) ||
+		    ((*p >= '0') && (*p <= '9')))
+			g_string_append_c (string, *p);
+		else
+			g_string_append_printf (string, "_%02x_", (unsigned char) *p);
 	}
 
 	object_path = string->str;
-
 	g_string_free (string, FALSE);
-
 	return object_path;
 }
 
Index: branches/NETWORKMANAGER_0_6_0_RELEASE/utils/nm-utils.h
===================================================================
--- branches/NETWORKMANAGER_0_6_0_RELEASE/utils/nm-utils.h	(revision 3306)
+++ branches/NETWORKMANAGER_0_6_0_RELEASE/utils/nm-utils.h	(revision 3307)
@@ -125,7 +125,7 @@
 	G_BREAKPOINT ();						\
 } G_STMT_END
 
-gchar *nm_dbus_escape_object_path (const gchar *utf8_string);
+gchar *nm_dbus_escape_object_path_item (const gchar *item);
 gchar *nm_dbus_unescape_object_path (const gchar *object_path);
 
 char *nm_utils_essid_to_utf8 (const char *orig_essid);

NetworkManager-0.6.5-3206-edit.patch:

--- NEW FILE NetworkManager-0.6.5-3206-edit.patch ---
diff -ur NetworkManager-0.6.5-bad/configure.in NetworkManager-0.6.5/configure.in
--- NetworkManager-0.6.5-bad/configure.in	2007-06-28 13:12:23.000000000 -0500
+++ NetworkManager-0.6.5/configure.in	2008-05-12 13:38:56.000000000 -0500
@@ -154,7 +154,7 @@
 	PKG_CHECK_MODULES(GNOME_KEYRING, gnome-keyring-1)
 fi
 
-PKG_CHECK_MODULES(LIBNL, libnl-1)
+PKG_CHECK_MODULES(LIBNL, libnl-1 >= 1.0-pre8)
 
 AC_ARG_WITH(gcrypt, AC_HELP_STRING([--with-gcrypt], [Use gcrypt library]), ac_gcrypt=$withval, ac_gcrypt=auto)
 if test x"$ac_gcrypt" != xno; then
Only in NetworkManager-0.6.5/: configure.in.commit3206
diff -ur NetworkManager-0.6.5-bad/src/NetworkManagerSystem.c NetworkManager-0.6.5/src/NetworkManagerSystem.c
--- NetworkManager-0.6.5-bad/src/NetworkManagerSystem.c	2007-07-12 13:43:41.000000000 -0500
+++ NetworkManager-0.6.5/src/NetworkManagerSystem.c	2008-05-12 14:01:45.000000000 -0500
@@ -222,18 +222,35 @@
 }
 
 
-static struct nl_handle * new_nl_handle (void)
+static struct nl_handle * new_nl_handle (gboolean recursive)
 {
-	struct nl_handle *	nlh = NULL;
+       struct nl_handle *nlh = NULL;
+       struct nl_cb *cb;
 
-	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 connect to netlink: %s\n", __func__, nl_geterror());
-		nl_handle_destroy (nlh);
-		nlh = NULL;
-	}
+       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;
+       }
+
+       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;
+
+               nlh = new_nl_handle (TRUE);
+               if (!nlh) {
+                       nm_warning ("%s: couldn't connect to netlink: %s", __func__, nl_geterror ());
+                       return NULL;
+               }
+       }
 
 	return nlh;
 }
@@ -246,7 +263,7 @@
 	struct nl_cache *	cache = NULL;
 	int				i = RTNL_LINK_NOT_FOUND;
 
-	nlh = new_nl_handle ();
+	nlh = new_nl_handle (FALSE);
 	if (!nlh)
 		return RTNL_LINK_NOT_FOUND;
 
@@ -267,7 +284,7 @@
 	struct nl_cache *	cache = NULL;
 	char *			buf = NULL;
 
-	nlh = new_nl_handle ();
+	nlh = new_nl_handle (FALSE);
 	if (!nlh)
 		return NULL;
 
@@ -308,7 +325,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;
 
@@ -443,7 +460,7 @@
 
 	g_return_val_if_fail (config != NULL, FALSE);
 
-	nlh = new_nl_handle ();
+	nlh = new_nl_handle (FALSE);
 	if (!nlh)
 		return FALSE;
 
@@ -560,7 +577,7 @@
 
 	g_return_val_if_fail (iface != NULL, FALSE);
 
-	if (!(nlh = new_nl_handle ()))
+	if (!nlh)
 		return FALSE;
 
 	if (!(request = rtnl_link_alloc ()))
@@ -605,7 +622,7 @@
 	if (!mtu)
 		return;
 
-	nlh = new_nl_handle ();
+	nlh = new_nl_handle (FALSE);
 	if (!nlh)
 		return;
 
Only in NetworkManager-0.6.5/src: NetworkManagerSystem.c.commit3206
diff -ur NetworkManager-0.6.5-bad/src/nm-netlink-monitor.c NetworkManager-0.6.5/src/nm-netlink-monitor.c
--- NetworkManager-0.6.5-bad/src/nm-netlink-monitor.c	2007-06-28 09:58:29.000000000 -0500
+++ NetworkManager-0.6.5/src/nm-netlink-monitor.c	2008-05-12 13:38:56.000000000 -0500
@@ -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;
Only in NetworkManager-0.6.5/src: nm-netlink-monitor.c.commit3206

NetworkManager-0.6.5-glibc-open.patch:

--- NEW FILE NetworkManager-0.6.5-glibc-open.patch ---
--- NetworkManager-0.6.5/src/nm-device-802-11-mesh-olpc.c.bad	2008-05-09 19:11:38.000000000 -0500
+++ NetworkManager-0.6.5/src/nm-device-802-11-mesh-olpc.c	2008-05-09 19:23:07.000000000 -0500
@@ -1958,7 +1958,7 @@
 	          iface,
 	          MAC_ARG (mac));
 
-	fd = open (ETC_DHCLIENT_CONF_PATH, O_RDWR | O_CREAT | O_TRUNC);
+	fd = open (ETC_DHCLIENT_CONF_PATH, O_RDWR | O_CREAT | O_TRUNC, 0644);
 	if (fd < 0) {
 		nm_warning ("Couldn't open /etc/hosts: %s", strerror (errno));
 		goto out;
--- NetworkManager-0.6.5/src/NetworkManager.c.bad	2008-05-09 19:21:00.000000000 -0500
+++ NetworkManager-0.6.5/src/NetworkManager.c	2008-05-09 19:22:36.000000000 -0500
@@ -163,7 +163,7 @@
 
 write_hosts:
 	/* Add the new entry to the bottom */
-	fd = open (ETC_HOSTS_PATH_TMP, O_RDWR | O_CREAT | O_TRUNC);
+	fd = open (ETC_HOSTS_PATH_TMP, O_RDWR | O_CREAT | O_TRUNC, 0644);
 	if (fd < 0) {
 		nm_warning ("Couldn't open /etc/hosts: %s", strerror (errno));
 		goto out;


Index: NetworkManager.spec
===================================================================
RCS file: /cvs/extras/rpms/NetworkManager/OLPC-3/NetworkManager.spec,v
retrieving revision 1.224
retrieving revision 1.225
diff -u -r1.224 -r1.225
--- NetworkManager.spec	9 May 2008 20:33:42 -0000	1.224
+++ NetworkManager.spec	12 May 2008 19:13:32 -0000	1.225
@@ -14,13 +14,16 @@
 Summary: Network connection manager and user applications
 Epoch: 1
 Version: 0.6.5
-Release: 0.8.%{svn_revision}%{?dist}
+Release: 0.9.%{svn_revision}%{?dist}
 Group: System Environment/Base
 License: GPL
 URL: http://www.gnome.org/projects/NetworkManager/
 Source: %{name}-%{version}.%{svn_revision}.tar.gz
 Source1: mpp.py
 Patch0: wpas-wait-longer.patch
+patch1: NetworkManager-0.6.5-glibc-open.patch
+Patch2: NetworkManager-0.6.5-3206-edit.patch
+Patch3: 3307.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 PreReq:   chkconfig
@@ -73,6 +76,9 @@
 %prep
 %setup -q
 %patch0 -p1 -b .wpas-wait-longer
+%patch1 -p1 -b .open
+%patch2 -p1 -b .commit3206
+%patch3 -p2 -b .commit3307
 
 %build
 # Even though we don't require named, we still build with it
@@ -157,6 +163,9 @@
 
 
 %changelog
+* Mon May 12 2008 Dennis Gilmore <dennis at ausil.us> - 1:0.6.5-0.9.svn3248
+- pull some patches for new libnl from svn  patch some open calls for newer glibc
+
 * Fri Jan 18 2008 Dan Williams <dcbw at redhat.com> - 1:0.6.5-0.8.svn3248
 - Return success/fail from sleep(), wake(), and setWirelessEnabled() commands
 	so callers know when the operation is finished




More information about the fedora-extras-commits mailing list