[Buildroot] [PATCH] Add package for Gnome NetworkManager
Daniel Mack
zonque at gmail.com
Fri Dec 2 11:18:43 UTC 2011
On 12/02/2011 12:14 PM, Daniel Mack wrote:
> 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.
Also note that this patch depends on the libnm-3 series I posted the
other day.
Daniel
>
> 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..9fe6759
> --- /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
> + test -z "`ls -A $(TARGET_DIR)/etc/rc.d`" && rmdir $(TARGET_DIR)/etc/rc.d || echo ""
> +endef
> +
> +NETWORK_MANAGER_POST_INSTALL_TARGET_HOOKS += NETWORK_MANAGER_INSTALL_INITSCRIPT
> +
> +$(eval $(call AUTOTARGETS,package,network-manager))
More information about the buildroot
mailing list