s6

Mirror/fork of https://skarnet.org/software/s6/
git clone https://ccx.te2000.cz/git/s6
Log | Files | Refs | README | LICENSE

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:
MMakefile | 11+++++------
Mconfigure | 25+++++++++++++------------
Mpackage/targets.mak | 4+---
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