Hi,

thank you for reviewing this.


2013/1/21 Michael Olbrich <m.olbrich@pengutronix.de>
On Sun, Jan 20, 2013 at 06:14:50PM +0100, Alexander Aring wrote:
> 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.

We'll need to do something about networkmanager. It will use libnl3 before
checking for libnl2. But thats for a separate patch.
That's a hint that networkmanager prefers libnl3 instead of libnl2 instead
 of libnl(1).
But there are a lot of another application which used libnl.


> 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

make sure the tabs align correctly with ts=8
Thank you so much for this information!


> +
> +#
> +# 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

sort as listed in --help. That makes updating easier.
Add --enable-pthreads. Upstream authors sometimes change the default... 

> +
> +# ----------------------------------------------------------------------------
> +# 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

LIBNL3_INSTALL_FILES-$(PTXCONF_LIBNL3_ENABLE_CLI)       +=genl-ctrl-list

(Note the tab position, and no /usr/sbin/ here).

> +
> +$(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

        @$(foreach tool,$(LIBNL3_INSTALL_FILES-y), \
                $(call install_copy, libnl3, 0, 0, 0755, -, /usr/sbin/$(tool));)

> +
> +     @$(call install_copy, libnl3, 0, 0, 0755, /etc/libnl)

this is not needed. All files also install their path. Something like this
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