[Buildroot] [PATCH] Add package for Gnome NetworkManager

Daniel Mack zonque at gmail.com
Fri Dec 2 11:59:41 UTC 2011


Even though it's most commonly used on Desktops, this piece of software
also works well on embedded devices.

The package file only resolved mandatory dependencies. Things like
iptables and dnsmasq are only required if 'shared' connections are used,
and have hence not been made hard prerequisites.

There are probably too many i18n related files installed to the target.
That might need some more tweaking.

Signed-off-by: Daniel Mack <zonque at gmail.com>
---
 package/Config.in                          |    1 +
 package/network-manager/Config.in          |   22 +++++++++++++
 package/network-manager/S45network-manager |   46 ++++++++++++++++++++++++++++
 package/network-manager/network-manager.mk |   42 +++++++++++++++++++++++++
 4 files changed, 111 insertions(+), 0 deletions(-)
 create mode 100644 package/network-manager/Config.in
 create mode 100755 package/network-manager/S45network-manager
 create mode 100644 package/network-manager/network-manager.mk

diff --git a/package/Config.in b/package/Config.in
index 4b5e5d8..a781870 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -442,6 +442,7 @@ endif
 source "package/netplug/Config.in"
 source "package/netsnmp/Config.in"
 source "package/netstat-nat/Config.in"
+source "package/network-manager/Config.in"
 source "package/noip/Config.in"
 source "package/nfs-utils/Config.in"
 source "package/ngircd/Config.in"
diff --git a/package/network-manager/Config.in b/package/network-manager/Config.in
new file mode 100644
index 0000000..c08d417
--- /dev/null
+++ b/package/network-manager/Config.in
@@ -0,0 +1,22 @@
+config BR2_PACKAGE_NETWORK_MANAGER
+	bool "NetworkManager"
+	depends on BR2_PACKAGE_DBUS && BR2_PACKAGE_UDEV_ALL_EXTRAS && BR2_PACKAGE_WIRELESS_TOOLS_LIB
+	select BR2_PACKAGE_DBUS_GLIB
+	select BR2_PACKAGE_LIBNL
+	select BR2_PACKAGE_GNUTLS
+	select BR2_PACKAGE_LIBNL
+	select BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	help
+	  NetworkManager is a set of co-operative tools that make networking
+	  simple and straightforward. Whether WiFi, wired, 3G, or Bluetooth,
+	  NetworkManager allows you to quickly move from one network to
+	  another: once a network has been configured and joined once, it
+	  can be detected and re-joined automatically the next time it's
+	  available.
+
+	  http://projects.gnome.org/NetworkManager/
+
+comment "NetworkManager not available (need DBus, UDEV_ALL_EXTRAS and WIRELESS_TOOLS_LIB)"
+	depends on !BR2_PACKAGE_DBUS || !BR2_PACKAGE_UDEV_ALL_EXTRAS || !BR2_PACKAGE_WIRELESS_TOOLS_LIB
+
diff --git a/package/network-manager/S45network-manager b/package/network-manager/S45network-manager
new file mode 100755
index 0000000..112aa66
--- /dev/null
+++ b/package/network-manager/S45network-manager
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+prefix=/usr
+exec_prefix=/usr
+sbindir=${exec_prefix}/sbin
+
+NETWORKMANAGER_BIN=${sbindir}/NetworkManager
+
+[ -x $NETWORKMANAGER_BIN ] || exit 0
+
+PID=`pidof -o %PPID NetworkManager`
+case "$1" in
+	start)
+		echo -n "Starting NetworkManager ... "
+		[ ! -d /var/run/NetworkManager ] && install -d /var/run/NetworkManager
+		if [ -z "$PID" ]; then
+			$NETWORKMANAGER_BIN
+		fi
+		if [ ! -z "$PID" -o $? -gt 0 ]; then
+			echo "failed!"
+		else
+			echo "done."
+		fi
+		;;
+	stop)
+		echo -n "Stopping NetworkManager ... "
+			[ ! -z "$PID" ] && kill $PID &> /dev/null
+		if [ $? -gt 0 ]; then
+			echo "failed!"
+		else
+			echo "done."
+		fi
+		;;
+	restart)
+		$0 stop
+		sleep 1
+		$0 start
+		;;
+	*)
+		echo "usage: $0 {start|stop|restart|sleep|wake}"
+		;;
+esac
+exit 0
+
+
+
diff --git a/package/network-manager/network-manager.mk b/package/network-manager/network-manager.mk
new file mode 100644
index 0000000..930c152
--- /dev/null
+++ b/package/network-manager/network-manager.mk
@@ -0,0 +1,42 @@
+#############################################################
+#
+# NetworkManager
+#
+#############################################################
+NETWORK_MANAGER_VERSION = 0.9.2.0
+NETWORK_MANAGER_SOURCE = NetworkManager-$(NETWORK_MANAGER_VERSION).tar.bz2
+NETWORK_MANAGER_SITE = http://ftp.gnome.org/pub/GNOME/sources/NetworkManager/0.9/
+NETWORK_MANAGER_INSTALL_STAGING = YES
+NETWORK_MANAGER_DEPENDENCIES = host-pkg-config udev dbus-glib libnl wireless_tools gnutls util-linux
+
+NETWORK_MANAGER_CONF_OPT = --program-prefix="" \
+		--mandir=$(STAGING_DIR)/usr/man/ \
+		--with-dbus-user=dbus \
+		--disable-tests \
+		--disable-more-warnings \
+		--without-docs \
+		--disable-gtk-doc \
+		--disable-asserts \
+		--enable-abstract-sockets \
+		--disable-selinux \
+		--disable-xml-docs \
+		--disable-doxygen-docs \
+		--disable-static \
+		--enable-dnotify \
+		--localstatedir=/var \
+		--with-crypto=gnutls \
+		--with-distro=arch \
+		--disable-ppp \
+		--with-iptables=/usr/sbin/iptables
+
+# The target was built for the archlinux distribution, so we need
+# to move around things after installation
+define NETWORK_MANAGER_INSTALL_INITSCRIPT
+	$(INSTALL) -m 0755 -D package/network-manager/S45network-manager $(TARGET_DIR)/etc/init.d/S45network-manager
+	rm -f $(TARGET_DIR)/etc/rc.d/networkmanager
+	rmdir $(TARGET_DIR)/etc/rc.d || echo ""
+endef
+
+NETWORK_MANAGER_POST_INSTALL_TARGET_HOOKS += NETWORK_MANAGER_INSTALL_INITSCRIPT
+
+$(eval $(call AUTOTARGETS))
-- 
1.7.7.3




More information about the buildroot mailing list