mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2026-01-06 23:18:50 +00:00
Fixed installation when changing DESTDIR
After changing the DESTDIR the installated binaries have some issues due to hard coded paths. For example, using distributions on NetEm would segfault. I've changed iplink.c and tc_util.c so they are now aware of DESTDIR. Along with that change I needed to change the main Makefile so it defines the DESTDIR macro when calling gcc. I also changed the paths so that during the installation sbin, etc, share and lib directories are created directly inside of the DESTDIR, instead of creating a usr directory inside that. That's the behaviour of most packages out there, so I think most users will be expecting that to happen.
This commit is contained in:
parent
6579feeac4
commit
b514b3587e
10
Makefile
10
Makefile
@ -1,13 +1,13 @@
|
||||
DESTDIR=
|
||||
SBINDIR=/usr/sbin
|
||||
DESTDIR=/usr/
|
||||
SBINDIR=/sbin
|
||||
CONFDIR=/etc/iproute2
|
||||
DOCDIR=/usr/share/doc/iproute2
|
||||
MANDIR=/usr/share/man
|
||||
DOCDIR=/share/doc/iproute2
|
||||
MANDIR=/share/man
|
||||
|
||||
# Path to db_185.h include
|
||||
DBM_INCLUDE:=/usr/include
|
||||
|
||||
DEFINES= -DRESOLVE_HOSTNAMES
|
||||
DEFINES= -DRESOLVE_HOSTNAMES -DDESTDIR=\"$(DESTDIR)\"
|
||||
|
||||
#options if you have a bind>=4.9.4 libresolv (or, maybe, glibc)
|
||||
LDLIBS=-lresolv
|
||||
|
||||
@ -33,6 +33,9 @@
|
||||
#include "ip_common.h"
|
||||
|
||||
#define IPLINK_IOCTL_COMPAT 1
|
||||
#ifndef DESTDIR
|
||||
#define DESTDIR "/usr/"
|
||||
#endif
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
|
||||
@ -78,7 +81,7 @@ struct link_util *get_link_kind(const char *id)
|
||||
if (strcmp(l->id, id) == 0)
|
||||
return l;
|
||||
|
||||
snprintf(buf, sizeof(buf), "/usr/lib/ip/link_%s.so", id);
|
||||
snprintf(buf, sizeof(buf), DESTDIR "/lib/ip/link_%s.so", id);
|
||||
dlh = dlopen(buf, RTLD_LAZY);
|
||||
if (dlh == NULL) {
|
||||
/* look in current binary, only open once */
|
||||
|
||||
@ -20,9 +20,9 @@ stats: stats.c
|
||||
$(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm
|
||||
|
||||
install: all
|
||||
mkdir -p $(DESTDIR)/usr/lib/tc
|
||||
mkdir -p $(DESTDIR)/lib/tc
|
||||
for i in $(DISTDATA); \
|
||||
do install -m 755 $$i $(DESTDIR)/usr/lib/tc; \
|
||||
do install -m 755 $$i $(DESTDIR)/lib/tc; \
|
||||
done
|
||||
|
||||
clean:
|
||||
|
||||
@ -72,10 +72,10 @@ libtc.a: $(TCLIB)
|
||||
$(AR) rcs $@ $(TCLIB)
|
||||
|
||||
install: all
|
||||
mkdir -p $(DESTDIR)/usr/lib/tc
|
||||
mkdir -p $(DESTDIR)/lib/tc
|
||||
install -m 0755 tc $(DESTDIR)$(SBINDIR)
|
||||
for i in $(TCSO); \
|
||||
do install -m 755 $$i $(DESTDIR)/usr/lib/tc; \
|
||||
do install -m 755 $$i $(DESTDIR)/lib/tc; \
|
||||
done
|
||||
|
||||
clean:
|
||||
|
||||
@ -24,13 +24,17 @@
|
||||
#include "utils.h"
|
||||
#include "tc_util.h"
|
||||
|
||||
#ifndef DESTDIR
|
||||
#define DESTDIR "/usr/"
|
||||
#endif
|
||||
|
||||
const char *get_tc_lib(void)
|
||||
{
|
||||
const char *lib_dir;
|
||||
|
||||
lib_dir = getenv("TC_LIB_DIR");
|
||||
if (!lib_dir)
|
||||
lib_dir = "/usr/lib/tc";
|
||||
lib_dir = DESTDIR "/lib/tc";
|
||||
|
||||
return lib_dir;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user