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 <stephen.hemminger@vyatta.com>
This commit is contained in:
Andreas Henriksson 2008-08-22 16:54:12 +02:00 committed by Stephen Hemminger
parent 839c8456fb
commit 5e3bb534ae
4 changed files with 10 additions and 9 deletions

View File

@ -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

View File

@ -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 */

View File

@ -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:

View File

@ -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;
}