From b51260a8f2f6a7570e51b8414a468111e023c04d Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Thu, 2 Feb 2023 21:06:35 +0000 Subject: Prepare for 2.9.2.0, add install target for multicall Signed-off-by: Laurent Bercot --- AUTHORS | 1 + INSTALL | 24 +++++++++++++++++++++++- NEWS | 6 ++++++ doc/index.html | 4 ++-- doc/upgrade.html | 8 ++++++++ package/info | 2 +- package/modes | 1 + package/targets.mak | 9 ++++++++- tools/gen-multicall.sh | 19 +++++++++---------- 9 files changed, 59 insertions(+), 15 deletions(-) diff --git a/AUTHORS b/AUTHORS index 7dbc700..1a9e07f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,6 +9,7 @@ Contributors: Colin Booth Mira Ressel Alexis + Dominique Martinet Thanks to: Dan J. Bernstein diff --git a/INSTALL b/INSTALL index fded1c8..e5a22cd 100644 --- a/INSTALL +++ b/INSTALL @@ -6,7 +6,7 @@ Build Instructions - A POSIX-compliant C development environment - GNU make version 3.81 or later - - skalibs version 2.13.0.0 or later: https://skarnet.org/software/skalibs/ + - skalibs version 2.13.1.0 or later: https://skarnet.org/software/skalibs/ - Optional: nsss version 0.2.0.2 or later: https://skarnet.org/software/nsss/ This software will run on any operating system that implements @@ -175,3 +175,25 @@ without relying on a PATH search. skarnet.org packages do not support out-of-tree builds. They are small, so it does not cost much to duplicate the entire source tree if parallel builds are needed. + + +* Multicall binary - THIS IS EXPERIMENTAL. + ---------------- + + Starting with version 2.9.2.0, the execline package comes with an +alternative build in the form of a multicall binary, simply called +"execline", that includes the functionality of *all* the other +binaries; it switches functionalities depending on the name it is +called with, or the subcommand it is given: "execline cd / true" +will chdir to / before exiting, same as "cd / true" if cd is a link +to the execline program. + + To use this, after invoking configure, type: make multicall + You can strip the binary with: make multicall-strip + You can install it with: make multicall-install + Be aware that it will overwrite a previous installation. + + The multicall setup saves a lot of disk space, at the price of +am unnoticeable amount of CPU usage. RAM usage is about equivalent +and difficult to assess. The setup is meant for embedded devices +or small distributions with a focus on saving disk space. diff --git a/NEWS b/NEWS index fc230c9..bbbf11c 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,11 @@ Changelog for execline. +In 2.9.2.0 +---------- + + - Experimental multicall feature. + + In 2.9.1.0 ---------- diff --git a/doc/index.html b/doc/index.html index 5d2f402..d8a4753 100644 --- a/doc/index.html +++ b/doc/index.html @@ -51,7 +51,7 @@ shell's syntax, and has no security issues.
  • A POSIX-compliant system with a standard C development environment
  • GNU make, version 3.81 or later.
  • skalibs version -2.13.0.0 or later. It's a build-time requirement. It's also a run-time +2.13.1.0 or later. It's a build-time requirement. It's also a run-time requirement if you link against the shared version of the skalibs library.
  • @@ -77,7 +77,7 @@ want nsswitch-like functionality:

    Download

      -
    • The current released version of execline is 2.9.1.0.
    • +
    • The current released version of execline is 2.9.2.0.
    • Alternatively, you can checkout a copy of the execline git repository: diff --git a/doc/upgrade.html b/doc/upgrade.html index 493c6e1..21edcfc 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -18,6 +18,14 @@

      What has changed in execline

      +

      in 2.9.2.0

      + +
        +
      • skalibs +dependency bumped to 2.13.1.0.
      • +
      • New experimental multicall feature.
      • +
      +

      in 2.9.1.0

        diff --git a/package/info b/package/info index 5a2157b..f92d178 100644 --- a/package/info +++ b/package/info @@ -1,4 +1,4 @@ package=execline -version=2.9.1.0 +version=2.9.2.0 category=admin package_macro_name=EXECLINE diff --git a/package/modes b/package/modes index 78671a7..0f04782 100644 --- a/package/modes +++ b/package/modes @@ -48,3 +48,4 @@ tryexec 0755 unexport 0755 wait 0755 withstdinas 0755 +execline 0755 diff --git a/package/targets.mak b/package/targets.mak index 258ed41..1b84161 100644 --- a/package/targets.mak +++ b/package/targets.mak @@ -73,7 +73,14 @@ EXTRA_BINS := execline EXTRA_TEMP := src/multicall/execline.c multicall: execline -.PHONY: multicall + +multicall-strip: execline + exec $(STRIP) -R .note -R .comment execline + +multicall-install: $(DESTDIR)$(bindir)/execline + for i in $(BIN_TARGETS) $(EXTRA_TARGETS) ; do ./tools/install.sh -l execline $(DESTDIR)$(bindir)/$$i ; done + +.PHONY: multicall multicall-strip multicall-install src/multicall/execline.c: tools/gen-multicall.sh src/execline/deps-exe src/include/execline/config.h src/include/execline/execline.h ./tools/gen-multicall.sh > src/multicall/execline.c diff --git a/tools/gen-multicall.sh b/tools/gen-multicall.sh index 6ef6322..070af4e 100755 --- a/tools/gen-multicall.sh +++ b/tools/gen-multicall.sh @@ -31,15 +31,6 @@ static int execline_app_cmp (void const *a, void const *b) execline_app const *p = b ; return strcmp(name, p->name) ; } - -#ifdef EXECLINE_PEDANTIC_POSIX -# define CD_FUNC posix_cd_main -# define UMASK_FUNC posix_umask_main -#else -# define CD_FUNC execline_cd_main -# define UMASK_FUNC execline_umask_main -#endif - EOF for i in `ls -1 src/execline/deps-exe` ; do @@ -56,6 +47,14 @@ cat <