From 2fc42cddaf853318e76613fa17500ab412ef8f19 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Wed, 12 Aug 2015 13:06:54 +0000 Subject: xyzzy fix (fixes https://bugs.gentoo.org/show_bug.cgi?id=541092) --- INSTALL | 15 ++++++++++----- Makefile | 40 +++++++++++++++++++++++++++------------- configure | 7 ++++--- doc/index.html | 10 +++++----- doc/upgrade.html | 7 +++++++ package/info | 2 +- tools/gen-deps.sh | 4 ++-- 7 files changed, 56 insertions(+), 29 deletions(-) diff --git a/INSTALL b/INSTALL index a7f05d2..bc11077 100644 --- a/INSTALL +++ b/INSTALL @@ -6,11 +6,11 @@ Build Instructions - A Linux-based system with a standard C development environment - GNU make version 4.0 or later - - skalibs version 2.3.5.1 or later: http://skarnet.org/software/skalibs/ - - execline version 2.1.2.2 or later: http://skarnet.org/software/execline/ - - s6-portable-utils version 2.0.5.0 or later: http://skarnet.org/software/s6-portable-utils/ - - s6-linux-utils version 2.0.2.1 or later: http://skarnet.org/software/s6-linux-utils/ - - s6 version 2.1.6.0 or later: http://skarnet.org/software/s6/ + - skalibs version 2.3.6.1 or later: http://skarnet.org/software/skalibs/ + - execline version 2.1.3.1 or later: http://skarnet.org/software/execline/ + - s6-portable-utils version 2.0.5.1 or later: http://skarnet.org/software/s6-portable-utils/ + - s6-linux-utils version 2.0.2.2 or later: http://skarnet.org/software/s6-linux-utils/ + - s6 version 2.2.0.1 or later: http://skarnet.org/software/s6/ Note that all those are build-time dependencies, and they are *also* run-time dependencies when you use the init binary created @@ -20,6 +20,11 @@ by s6-linux-init-maker. version 2.6.32 or later. However, it should not be too hard to port to other Unix-like operating systems. + The s6-linux-init-maker binary will actually build *and run* on +another operating system; however, the scripts it produces depend on +s6-linux-utils binaries, which are really Linux-specific - so those +scripts will not run properly on another OS. + * Standard usage -------------- diff --git a/Makefile b/Makefile index 7ff52e7..29a1875 100644 --- a/Makefile +++ b/Makefile @@ -18,9 +18,24 @@ STATIC_LIBS := SHARED_LIBS := INTERNAL_LIBS := EXTRA_TARGETS := +LIB_DEFS := -include config.mak + +define library_definition = +LIB$(firstword $(subst =, ,$(1))) := lib$(lastword $(subst =, ,$(1))).$(if $(DO_ALLSTATIC),a,so).xyzzy +ifdef DO_SHARED +SHARED_LIBS += lib$(lastword $(subst =, ,$(1))).so.xyzzy +endif +ifdef DO_STATIC +STATIC_LIBS += lib$(lastword $(subst =, ,$(1))).a.xyzzy +endif +endef + include package/targets.mak + +$(foreach var,$(LIB_DEFS),$(eval $(call library_definition,$(var)))) + include package/deps.mak version_m := $(basename $(version)) @@ -67,11 +82,11 @@ ifneq ($(strip $(ALL_BINS)),) endif install: install-dynlib install-libexec install-bin install-sbin install-lib install-include -install-dynlib: $(SHARED_LIBS:lib%.so=$(DESTDIR)$(dynlibdir)/lib%.so) +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=$(DESTDIR)$(libdir)/lib%.a) +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)/%) @@ -80,7 +95,7 @@ ifneq ($(exthome),) update: exec $(INSTALL) -l $(notdir $(home)) $(DESTDIR)$(exthome) -global-links: $(DESTDIR)$(exthome) $(SHARED_LIBS:lib%.so=$(DESTDIR)$(sproot)/library.so/lib%.so) $(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) $(BIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%) $(SBIN_TARGETS:%=$(DESTDIR)$(sproot)/command/%) $(DESTDIR)$(sproot)/command/%: $(DESTDIR)$(home)/command/% exec $(INSTALL) -D -l ..$(subst $(sproot),,$(exthome))/command/$( A Linux-based system with a standard C development environment
  • GNU make, version 4.0 or later
  • skalibs version -2.3.5.1 or later
  • +2.3.6.1 or later
  • execline version -2.1.2.2 or later
  • +2.1.3.1 or later
  • s6-portable-utils version -2.0.5.0 or later
  • +2.0.5.1 or later
  • s6-linux-utils version -2.0.2.1 or later
  • +2.0.2.2 or later
  • s6 version -2.1.6.0 or later
  • +2.2.0.1 or later

    diff --git a/doc/upgrade.html b/doc/upgrade.html index b50899a..a39b7b4 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -18,6 +18,13 @@

    What has changed in s6-linux-init

    +

    in 0.0.1.3

    + + +

    in 0.0.1.2