From: Andrea Claudi <aclaudi@redhat.com>
To: Luca Boccassi <bluca@debian.org>
Cc: netdev@vger.kernel.org, stephen@networkplumber.org, dsahern@gmail.com
Subject: Re: [PATCH 2/2 iproute2] configure: add the --libdir param
Date: Mon, 4 Oct 2021 14:45:39 +0200 [thread overview]
Message-ID: <YVr3c4wFRpxd4HCP@renaissance-vector> (raw)
In-Reply-To: <6363502d3ce806acdbc7ba194ddc98d3fac064de.camel@debian.org>
On Mon, Oct 04, 2021 at 12:52:35PM +0100, Luca Boccassi wrote:
> On Sat, 2021-10-02 at 18:41 +0200, Andrea Claudi wrote:
> > This commit allows users/packagers to choose a lib directory to store
> > iproute2 lib files.
> >
> > At the moment iproute2 ship lib files in /usr/lib and offers no way to
> > modify this setting. However, according to the FHS, distros may choose
> > "one or more variants of the /lib directory on systems which support
> > more than one binary format" (e.g. /usr/lib64 on Fedora).
> >
> > As Luca states in commit a3272b93725a ("configure: restore backward
> > compatibility"), packaging systems may assume that 'configure' is from
> > autotools, and try to pass it some parameters.
> >
> > Allowing the '--libdir=/path/to/libdir' syntax, we can use this to our
> > advantage, and let the lib directory to be chosen by the distro
> > packaging system.
> >
> > Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
> > ---
> > Makefile | 7 ++++---
> > configure | 21 +++++++++++++++++++++
> > 2 files changed, 25 insertions(+), 3 deletions(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 5bc11477..45655ca4 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1,6 +1,8 @@
> > # SPDX-License-Identifier: GPL-2.0
> > # Top level Makefile for iproute2
> >
> >
> > +-include config.mk
> > +
> > ifeq ("$(origin V)", "command line")
> > VERBOSE = $(V)
> > endif
> > @@ -13,7 +15,6 @@ MAKEFLAGS += --no-print-directory
> > endif
> >
> >
> > PREFIX?=/usr
> > -LIBDIR?=$(PREFIX)/lib
> > SBINDIR?=/sbin
> > CONFDIR?=/etc/iproute2
> > NETNS_RUN_DIR?=/var/run/netns
> > @@ -60,7 +61,7 @@ SUBDIRS=lib ip tc bridge misc netem genl tipc devlink rdma dcb man vdpa
> > LIBNETLINK=../lib/libutil.a ../lib/libnetlink.a
> > LDLIBS += $(LIBNETLINK)
> >
> >
> > -all: config
> > +all: config.mk
> > @set -e; \
> > for i in $(SUBDIRS); \
> > do echo; echo $$i; $(MAKE) -C $$i; done
> > @@ -80,7 +81,7 @@ help:
> > @echo "Make Arguments:"
> > @echo " V=[0|1] - set build verbosity level"
> >
> >
> > -config:
> > +config.mk:
> > @if [ ! -f config.mk -o configure -nt config.mk ]; then \
> > sh configure $(KERNEL_INCLUDE); \
> > fi
> > diff --git a/configure b/configure
> > index f0c81ee1..a1b0261a 100755
> > --- a/configure
> > +++ b/configure
> > @@ -148,6 +148,19 @@ EOF
> > rm -f $TMPDIR/ipttest.c $TMPDIR/ipttest
> > }
> >
> >
> > +check_lib_dir()
> > +{
> > + echo -n "lib directory: "
> > + if [ -n "$LIB_DIR" ]; then
> > + echo "$LIB_DIR"
> > + echo "LIBDIR:=$LIB_DIR" >> $CONFIG
> > + return
> > + fi
> > +
> > + echo "/usr/lib"
> > + echo "LIBDIR:=/usr/lib" >> $CONFIG
> > +}
> > +
> > check_ipt()
> > {
> > if ! grep TC_CONFIG_XT $CONFIG > /dev/null; then
> > @@ -486,6 +499,7 @@ usage()
> > cat <<EOF
> > Usage: $0 [OPTIONS]
> > --include_dir Path to iproute2 include dir
> > + --libdir Path to iproute2 lib dir
> > --libbpf_dir Path to libbpf DESTDIR
> > --libbpf_force Enable/disable libbpf by force. Available options:
> > on: require link against libbpf, quit config if no libbpf support
> > @@ -507,6 +521,12 @@ else
> > --include_dir=*)
> > INCLUDE="${1#*=}"
> > shift ;;
> > + --libdir)
> > + LIB_DIR="$2"
> > + shift 2 ;;
> > + --libdir=*)
> > + LIB_DIR="${1#*=}"
> > + shift ;;
> > --libbpf_dir)
> > LIBBPF_DIR="$2"
> > shift 2 ;;
> > @@ -559,6 +579,7 @@ if ! grep -q TC_CONFIG_NO_XT $CONFIG; then
> > fi
> >
> >
> > echo
> > +check_lib_dir
> > if ! grep -q TC_CONFIG_NO_XT $CONFIG; then
> > echo -n "iptables modules directory: "
> > check_ipt_lib_dir
>
> ./configure --build=x86_64-linux-gnu --prefix=/usr --
> includedir=\${prefix}/include --mandir=\${prefix}/share/man --
> infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --
> disable-option-checking --disable-silent-rules --
> libdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run --disable-
> maintainer-mode --disable-dependency-tracking
> TC schedulers
> ATM yes
> IPT using xtables
> IPSET yes
>
> lib directory: ${prefix}/lib/x86_64-linux-gnu
>
>
> But you end up with:
>
> /lib/x86_64-linux-gnu/tc
>
> /usr disappears somewhere?
>
Hi Luca,
and thanks for your review.
This is probably because my patch does not manage the --prefix option I
see in your command line. I'll fix this in v2.
Regards,
Andrea
prev parent reply other threads:[~2021-10-04 12:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-02 16:41 [PATCH 0/2 iproute2] configure: add support for libdir param Andrea Claudi
2021-10-02 16:41 ` [PATCH 1/2 iproute2] configure: support --param=value style Andrea Claudi
2021-10-04 1:28 ` David Ahern
2021-10-02 16:41 ` [PATCH 2/2 iproute2] configure: add the --libdir param Andrea Claudi
2021-10-04 11:52 ` Luca Boccassi
2021-10-04 12:45 ` Andrea Claudi [this message]
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=YVr3c4wFRpxd4HCP@renaissance-vector \
--to=aclaudi@redhat.com \
--cc=bluca@debian.org \
--cc=dsahern@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.