commit 8c6a3eceb52447d97ceeb198156c08c2cf83ffdc
parent 85d3f29ce384dea6cfbaa80215ce86d2d0358eba
Author: Laurent Bercot <ska-skaware@skarnet.org>
Date: Sun, 16 Oct 2016 21:16:36 +0000
Implement --enable-absolute-paths
Diffstat:
3 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/Makefile b/Makefile
@@ -50,7 +50,7 @@ RANLIB := $(CROSS_COMPILE)ranlib
STRIP := $(CROSS_COMPILE)strip
INSTALL := ./tools/install.sh
-ALL_BINS := $(LIBEXEC_TARGETS) $(BIN_TARGETS) $(SBIN_TARGETS)
+ALL_BINS := $(LIBEXEC_TARGETS) $(BIN_TARGETS)
ALL_LIBS := $(SHARED_LIBS) $(STATIC_LIBS) $(INTERNAL_LIBS)
ALL_INCLUDES := $(wildcard src/include/$(package)/*.h)
@@ -78,11 +78,10 @@ ifneq ($(strip $(ALL_BINS)$(SHARED_LIBS)),)
exec $(STRIP) -R .note -R .comment -R .note.GNU-stack $(ALL_BINS) $(SHARED_LIBS)
endif
-install: install-dynlib install-libexec install-bin install-sbin install-lib install-include
+install: install-dynlib install-libexec install-bin install-lib install-include
install-dynlib: $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(dynlibdir)/lib%.so)
install-libexec: $(LIBEXEC_TARGETS:%=$(DESTDIR)$(libexecdir)/%)
install-bin: $(BIN_TARGETS:%=$(DESTDIR)$(bindir)/%)
-install-sbin: $(SBIN_TARGETS:%=$(DESTDIR)$(sbindir)/%)
install-lib: $(STATIC_LIBS:lib%.a.xyzzy=$(DESTDIR)$(libdir)/lib%.a)
install-include: $(ALL_INCLUDES:src/include/$(package)/%.h=$(DESTDIR)$(includedir)/$(package)/%.h)
install-data: $(ALL_DATA:src/etc/%=$(DESTDIR)$(datadir)/%)
@@ -94,7 +93,7 @@ $(DESTDIR)$(exthome): $(DESTDIR)$(home)
update: $(DESTDIR)$(exthome)
-global-links: $(DESTDIR)$(exthome) $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(sproot)/library.so/lib%.so.$(version_M)) $(BIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%) $(SBIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%)
+global-links: $(DESTDIR)$(exthome) $(SHARED_LIBS:lib%.so.xyzzy=$(DESTDIR)$(sproot)/library.so/lib%.so.$(version_M)) $(BIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%)
$(DESTDIR)$(sproot)/command/%: $(DESTDIR)$(home)/command/%
exec $(INSTALL) -D -l ..$(subst $(sproot),,$(exthome))/command/$(<F) $@
@@ -115,7 +114,7 @@ $(DESTDIR)$(dynlibdir)/lib%.so: lib%.so.xyzzy
$(INSTALL) -l $(@F).$(version_m) $@.$(version_M) && \
exec $(INSTALL) -l $(@F).$(version_M) $@
-$(DESTDIR)$(libexecdir)/% $(DESTDIR)$(bindir)/% $(DESTDIR)$(sbindir)/%: % package/modes
+$(DESTDIR)$(libexecdir)/% $(DESTDIR)$(bindir)/%: % package/modes
exec $(INSTALL) -D -m 600 $< $@
grep -- ^$(@F) < package/modes | { read name mode owner && \
if [ x$$owner != x ] ; then chown -- $$owner $@ ; fi && \
@@ -143,6 +142,6 @@ lib%.a.xyzzy:
lib%.so.xyzzy:
exec $(REALCC) -o $@ $(CFLAGS_ALL) $(CFLAGS_SHARED) $(LDFLAGS_ALL) $(LDFLAGS_SHARED) -Wl,-soname,$(patsubst lib%.so.xyzzy,lib%.so.$(version_M),$@) $^ $(EXTRA_LIBS) $(LDLIBS)
-.PHONY: it all clean distclean tgz strip install install-dynlib install-bin install-sbin install-lib install-include install-data
+.PHONY: it all clean distclean tgz strip install install-dynlib install-bin install-lib install-include install-data
.DELETE_ON_ERROR:
diff --git a/configure b/configure
@@ -19,7 +19,6 @@ Installation directories:
Fine tuning of the installation directories:
--dynlibdir=DIR shared library files [PREFIX/lib]
--bindir=BINDIR user executables [EPREFIX/bin]
- --sbindir=DIR admin executables [EPREFIX/sbin]
--libexecdir=DIR package-scoped executables [EPREFIX/libexec]
--libdir=DIR static library files [PREFIX/lib/$package]
--includedir=DIR C header files [PREFIX/include]
@@ -42,6 +41,8 @@ Optional features:
--disable-allstatic do not prefer linking against static libraries [enabled]
--enable-static-libc make entirely static binaries [disabled]
--enable-slashpackage[=ROOT] assume /package installation at ROOT [disabled]
+ --enable-absolute-paths do not rely on PATH to access this package's binaries,
+ hardcode absolute BINDIR/foobar paths instead [disabled]
EOF
exit 0
@@ -129,7 +130,6 @@ exec_prefix='$prefix'
dynlibdir='$prefix/lib'
libexecdir='$exec_prefix/libexec'
bindir='$exec_prefix/bin'
-sbindir='$exec_prefix/sbin'
libdir='$prefix/lib/$package'
includedir='$prefix/include'
sysdeps='$prefix/lib/skalibs/sysdeps'
@@ -137,6 +137,7 @@ manualsysdeps=false
shared=false
static=true
slashpackage=false
+abspath=false
sproot=
home=
exthome=
@@ -157,7 +158,6 @@ for arg ; do
--dynlibdir=*) dynlibdir=${arg#*=} ;;
--libexecdir=*) libexecdir=${arg#*=} ;;
--bindir=*) bindir=${arg#*=} ;;
- --sbindir=*) sbindir=${arg#*=} ;;
--libdir=*) libdir=${arg#*=} ;;
--includedir=*) includedir=${arg#*=} ;;
--with-sysdeps=*) sysdeps=${arg#*=} manualsysdeps=true ;;
@@ -175,6 +175,8 @@ for arg ; do
--enable-slashpackage=*) sproot=${arg#*=} ; slashpackage=true ; ;;
--enable-slashpackage) sproot= ; slashpackage=true ;;
--disable-slashpackage) sproot= ; slashpackage=false ;;
+ --enable-absolute-paths|--enable-absolute-paths=yes) abspath=true ;;
+ --disable-absolute-paths|--enable-absolute-paths=no) abspath=false ;;
--enable-*|--disable-*|--with-*|--without-*|--*dir=*) ;;
--host=*|--target=*) target=${arg#*=} ;;
--build=*) build=${arg#*=} ;;
@@ -199,7 +201,7 @@ fi
# Expand installation directories
stripdir prefix
-for i in exec_prefix dynlibdir libexecdir bindir sbindir libdir includedir sysdeps sproot ; do
+for i in exec_prefix dynlibdir libexecdir bindir libdir includedir sysdeps sproot ; do
eval tmp=\${$i}
eval $i=$tmp
stripdir $i
@@ -228,13 +230,11 @@ if $slashpackage ; then
else
sysdeps=${sproot}/package/prog/skalibs/sysdeps
fi
- binprefix=${home}/command
extbinprefix=${exthome}/command
dynlibdir=${home}/library.so
- libexecdir=$binprefix
- bindir=$binprefix
- sbindir=$binprefix
+ bindir=${home}/command
libdir=${home}/library
+ libexecdir=$bindir
includedir=${home}/include
while read dep ; do
addincpath="$addincpath -I${sproot}${dep}/include"
@@ -352,7 +352,6 @@ exec_prefix := $exec_prefix
dynlibdir := $dynlibdir
libexecdir := $libexecdir
bindir := $bindir
-sbindir := $sbindir
libdir := $libdir
includedir := $includedir
sysdeps := $sysdeps
@@ -412,14 +411,16 @@ cat <<EOF
#define ${package_macro_name}_VERSION "$version"
EOF
if $slashpackage ; then
- echo "#define ${package_macro_name}_BINPREFIX \"$binprefix/\""
+ echo "#define ${package_macro_name}_BINPREFIX \"$bindir/\""
echo "#define ${package_macro_name}_EXTBINPREFIX \"$extbinprefix/\""
- echo "#define ${package_macro_name}_LIBEXECPREFIX \"$binprefix/\""
+elif $abspath ; then
+ echo "#define ${package_macro_name}_BINPREFIX \"$bindir/\""
+ echo "#define ${package_macro_name}_EXTBINPREFIX \"$bindir/\""
else
echo "#define ${package_macro_name}_BINPREFIX \"\""
echo "#define ${package_macro_name}_EXTBINPREFIX \"\""
- echo "#define ${package_macro_name}_LIBEXECPREFIX \"$libexecdir/\""
fi
+echo "#define ${package_macro_name}_LIBEXECPREFIX \"$libexecdir/\""
echo
echo "#endif"
exec 1>&3 3>&-
diff --git a/package/targets.mak b/package/targets.mak
@@ -53,9 +53,7 @@ s6-fdholder-getdumpc \
s6-fdholder-setdump \
s6-fdholder-setdumpc \
s6-fdholder-transferdump \
-s6-fdholder-transferdumpc
-
-SBIN_TARGETS := \
+s6-fdholder-transferdumpc \
s6-applyuidgid \
s6-setuidgid