On Sun, Jan 20, 2013 at 06:14:50PM +0100, Alexander Aring wrote:We'll need to do something about networkmanager. It will use libnl3 before
> New package for libnl3 version 3.2.19.
>
> There is already a libnl package version 1.1.
> Some applications have a dependency to libnl3. Others
> applications like 'networkmanager' can uses libnl or libnl3.
>
> Eventually we should update packages like 'networkmanager' to use
> libnl3 instead of libnl.
>
> It is possible to install both libraries libnl and libnl3.
> Libnl3 has an another library name and another header
> file location.
> The configure part of applications like 'networkmanager'
> will determine which library will be used.
checking for libnl2. But thats for a separate patch.
make sure the tabs align correctly with ts=8
> The new libnl3 has a option to enable or disable install
> cli support.
>
> Others possible optional features, which are currently not
> available to configure, are:
> - Disable pthread support.
> - Python bindings(experimental).
>
> This package will install a default configuration of libnl3 to
> '/etc/libnl/...'.
>
> Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> ---
> rules/libnl3.in | 38 ++++++++++++++++++++++
> rules/libnl3.make | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 133 insertions(+)
> create mode 100644 rules/libnl3.in
> create mode 100644 rules/libnl3.make
>
> diff --git a/rules/libnl3.in b/rules/libnl3.in
> new file mode 100644
> index 0000000..4cdd2ac
> --- /dev/null
> +++ b/rules/libnl3.in
> @@ -0,0 +1,38 @@
> +## SECTION=system_libraries
> +
> +menuconfig LIBNL3
> + tristate
> + prompt "libnl3 "
> + select LIBC_M
> + select LIBC_PTHREAD
> + select GCCLIBS_GCC_S
> + select HOST_FLEX
> + help
> + libnl3 is a library for applications dealing with netlink
> + sockets. The library provides an interface for raw
> + netlink messaging and various netlink family specific
> + interfaces.
> +
> +if LIBNL3
> +
> +config LIBNL3_ENABLE_CLI
> + bool
> + default y
> + prompt "Enable command line tools"
> + help
> + Do build the following command line interface utils:
> + genl-ctrl-list
> + nl-class-add
> + nl-class-delete
> + nl-classid-lookup
> + nl-class-list
> + nl-cls-add
> + nl-cls-delete
> + nl-cls-list
> + nl-link-list
> + nl-pktloc-lookup
> + nl-qdisc-add
> + nl-qdisc-delete
> + nl-qdisc-list
> +
> +endif
> diff --git a/rules/libnl3.make b/rules/libnl3.make
> new file mode 100644
> index 0000000..6620000
> --- /dev/null
> +++ b/rules/libnl3.make
> @@ -0,0 +1,95 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2012 by Alexander Aring <aar@pengutronix.de>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_LIBNL3) += libnl3
> +
> +#
> +# Paths and names
> +#
> +LIBNL3_VERSION := 3.2.19
> +LIBNL3_MD5 := 1795c43bde05f650a43b085438e5da21
> +LIBNL3 := libnl-$(LIBNL3_VERSION)
> +LIBNL3_SUFFIX := tar.gz
> +LIBNL3_URL := http://www.infradead.org/~tgr/libnl/files/$(LIBNL3).$(LIBNL3_SUFFIX)
> +LIBNL3_SOURCE := $(SRCDIR)/$(LIBNL3).$(LIBNL3_SUFFIX)
> +LIBNL3_DIR := $(BUILDDIR)/$(LIBNL3)
> +LIBNL3_LICENSE := GPLv2
sort as listed in --help. That makes updating easier.
> +
> +#
> +# autoconf
> +#
> +LIBNL3_CONF_TOOL := autoconf
> +LIBNL3_CONF_OPT := \
> + $(CROSS_AUTOCONF_USR) \
> + --$(call ptx/endis, PTXCONF_LIBNL3_ENABLE_CLI)-cli \
> + --disable-manpages \
> + --enable-shared \
> + --disable-static
Add --enable-pthreads. Upstream authors sometimes change the default...
LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) +=genl-ctrl-list
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +LIBNL3_INSTALL_FILES-y =
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/genl-ctrl-list
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-class-add
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-class-delete
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-classid-lookup
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-class-list
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-cls-add
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-cls-delete
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-cls-list
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-link-list
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-pktloc-lookup
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-qdisc-add
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-qdisc-delete
> +LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI) += /usr/sbin/nl-qdisc-list
(Note the tab position, and no /usr/sbin/ here).
@$(foreach tool,$(LIBNL3_INSTALL_FILES-y), \
> +
> +$(STATEDIR)/libnl3.targetinstall:
> + @$(call targetinfo)
> +
> + @$(call install_init, libnl3)
> + @$(call install_fixup, libnl3,PRIORITY,optional)
> + @$(call install_fixup, libnl3,SECTION,base)
> + @$(call install_fixup, libnl3,AUTHOR,"Alexander Aring <aar@pengutronix.de>")
> + @$(call install_fixup, libnl3,DESCRIPTION,missing)
> +
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl-3)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl-genl-3)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl-nf-3)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl-route-3)
> +
> +ifdef PTXCONF_LIBNL3_ENABLE_CLI
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl-cli-3)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl/cli/cls/basic)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl/cli/cls/cgroup)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl/cli/qdisc/bfifo)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl/cli/qdisc/blackhole)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl/cli/qdisc/htb)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl/cli/qdisc/pfifo)
> + @$(call install_lib, libnl3, 0, 0, 0644, libnl/cli/qdisc/plug)
> +endif
> +
> + @for i in $(LIBNL3_INSTALL_FILES-y); do \
> + $(call install_copy, libnl3, 0, 0, 0755, -, $$i) \
> + done
$(call install_copy, libnl3, 0, 0, 0755, -, /usr/sbin/$(tool));)
this is not needed. All files also install their path. Something like this
> +
> + @$(call install_copy, libnl3, 0, 0, 0755, /etc/libnl)
only makes sense if you need special permissions.
Michael
> --
> + @$(call install_alternative, libnl3, 0, 0, 0644, /etc/libnl/classid)
> + @$(call install_alternative, libnl3, 0, 0, 0644, /etc/libnl/pktloc)
> +
> + @$(call install_finish, libnl3)
> +
> + @$(call touch)
> +
> +# vim: syntax=make
> --
> 1.8.1.1
>
>
> ptxdist mailing list
> ptxdist@pengutronix.de
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
--
ptxdist mailing list
ptxdist@pengutronix.de