mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] libnl3: new package
Date: Mon, 21 Jan 2013 18:28:10 +0100	[thread overview]
Message-ID: <20130121172810.GD4597@pengutronix.de> (raw)
In-Reply-To: <1358702090-29597-1-git-send-email-alex.aring@gmail.com>

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.

> 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

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

  reply	other threads:[~2013-01-21 17:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-20 17:14 Alexander Aring
2013-01-21 17:28 ` Michael Olbrich [this message]
2013-01-22  9:39   ` Alexander Aring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130121172810.GD4597@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox