From 5e3bb534ae179be141a92eb1a4e2eb48094193b7 Mon Sep 17 00:00:00 2001 From: Andreas Henriksson Date: Fri, 22 Aug 2008 16:54:12 +0200 Subject: [PATCH] iproute: DESTDIR vs LIBDIR. Hello Rafael Almeida. I noticed your patch adding DESTDIR support in the latest iproute2 release. Much appreciated! Soon the debian packages might be able to move to actually using "make install" rather then it's own installation procedure when building packages. I've noticed something that will break though.... Debian packages usually sets DESTDIR=debian/tmp/ and packages the contents of that directory as if it where the root file system. This will break the /usr/lib/{tc,ip}/ module loading, because they DESTDIR (/usr) will be /whatever-the-build-path-was/debian/tmp/lib/{tc,ip}/. I beleive others usually call this the LIBDIR to make the separation between DISTDIR being the (possibly temporary) place things are put when build is done, and LIBDIR (and others) are used for actual runtime paths. I'm attaching a patch that I think fixes this, but would be really happy if you could have a look at to verify I'm not screwing something up. -- Regards, Andreas Henriksson Signed-off-by: Stephen Hemminger --- Makefile | 3 ++- ip/iplink.c | 6 +++--- tc/Makefile | 4 ++-- tc/tc_util.c | 6 +++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index cfb27f42..6096a991 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ DESTDIR=/usr/ +LIBDIR=/usr/lib/ SBINDIR=/sbin CONFDIR=/etc/iproute2 DOCDIR=/share/doc/iproute2 @@ -7,7 +8,7 @@ MANDIR=/share/man # Path to db_185.h include DBM_INCLUDE:=/usr/include -DEFINES= -DRESOLVE_HOSTNAMES -DDESTDIR=\"$(DESTDIR)\" +DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" #options if you have a bind>=4.9.4 libresolv (or, maybe, glibc) LDLIBS=-lresolv diff --git a/ip/iplink.c b/ip/iplink.c index 9a092630..f4cbeb3e 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -33,8 +33,8 @@ #include "ip_common.h" #define IPLINK_IOCTL_COMPAT 1 -#ifndef DESTDIR -#define DESTDIR "/usr/" +#ifndef LIBDIR +#define LIBDIR "/usr/lib/" #endif static void usage(void) __attribute__((noreturn)); @@ -81,7 +81,7 @@ struct link_util *get_link_kind(const char *id) if (strcmp(l->id, id) == 0) return l; - snprintf(buf, sizeof(buf), DESTDIR "/lib/ip/link_%s.so", id); + snprintf(buf, sizeof(buf), LIBDIR "/ip/link_%s.so", id); dlh = dlopen(buf, RTLD_LAZY); if (dlh == NULL) { /* look in current binary, only open once */ diff --git a/tc/Makefile b/tc/Makefile index 41aa59dd..a3005e92 100644 --- a/tc/Makefile +++ b/tc/Makefile @@ -73,10 +73,10 @@ libtc.a: $(TCLIB) $(AR) rcs $@ $(TCLIB) install: all - mkdir -p $(DESTDIR)/lib/tc + mkdir -p $(DESTDIR)$(LIBDIR)/tc install -m 0755 tc $(DESTDIR)$(SBINDIR) for i in $(TCSO); \ - do install -m 755 $$i $(DESTDIR)/lib/tc; \ + do install -m 755 $$i $(DESTDIR)$(LIBDIR)/tc; \ done clean: diff --git a/tc/tc_util.c b/tc/tc_util.c index ef14d8d9..fe2c7eb5 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -24,8 +24,8 @@ #include "utils.h" #include "tc_util.h" -#ifndef DESTDIR -#define DESTDIR "/usr/" +#ifndef LIBDIR +#define LIBDIR "/usr/lib/" #endif const char *get_tc_lib(void) @@ -34,7 +34,7 @@ const char *get_tc_lib(void) lib_dir = getenv("TC_LIB_DIR"); if (!lib_dir) - lib_dir = DESTDIR "/lib/tc"; + lib_dir = LIBDIR "/tc/"; return lib_dir; }