diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2023-02-02 21:06:35 +0000 |
---|---|---|
committer | Laurent Bercot <ska@appnovation.com> | 2023-02-02 21:06:35 +0000 |
commit | b51260a8f2f6a7570e51b8414a468111e023c04d (patch) | |
tree | 4f7b0c67eb48e5c18f8bb12d566f34133d934815 | |
parent | 9d55d49dad0f4cb90e6ff2f9b1c3bc46a6fcf05f (diff) | |
download | execline-b51260a8f2f6a7570e51b8414a468111e023c04d.tar.gz execline-b51260a8f2f6a7570e51b8414a468111e023c04d.tar.xz execline-b51260a8f2f6a7570e51b8414a468111e023c04d.zip |
Prepare for 2.9.2.0, add install target for multicall
Signed-off-by: Laurent Bercot <ska@appnovation.com>
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | INSTALL | 24 | ||||
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | doc/index.html | 4 | ||||
-rw-r--r-- | doc/upgrade.html | 8 | ||||
-rw-r--r-- | package/info | 2 | ||||
-rw-r--r-- | package/modes | 1 | ||||
-rw-r--r-- | package/targets.mak | 9 | ||||
-rwxr-xr-x | 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 <colin@heliocat.net> Mira Ressel <aranea@aixah.de> Alexis <flexibeast@gmail.com> + Dominique Martinet <asmadeus@codewreck.org> Thanks to: Dan J. Bernstein <djb@cr.yp.to> 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. <li> A POSIX-compliant system with a standard C development environment </li> <li> GNU make, version 3.81 or later. </li> <li> <a href="//skarnet.org/software/skalibs/">skalibs</a> 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. </li> </ul> @@ -77,7 +77,7 @@ want nsswitch-like functionality: <h3> Download </h3> <ul> - <li> The current released version of execline is <a href="execline-2.9.1.0.tar.gz">2.9.1.0</a>. </li> + <li> The current released version of execline is <a href="execline-2.9.2.0.tar.gz">2.9.2.0</a>. </li> <li> Alternatively, you can checkout a copy of the <a href="//git.skarnet.org/cgi-bin/cgit.cgi/execline/">execline git repository</a>: 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 @@ <h1> What has changed in execline </h1> +<h2> in 2.9.2.0 </h2> + +<ul> + <li> <a href="//skarnet.org/software/skalibs/">skalibs</a> +dependency bumped to 2.13.1.0. </li> + <li> New experimental multicall feature. </li> +</ul> + <h2> in 2.9.1.0 </h2> <ul> 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 <<EOF static int execline_main (int, char **, char const *const *) ; +#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 + static execline_app const execline_apps[] = { EOF @@ -67,7 +66,7 @@ for i in `{ echo cd ; echo execline ; echo umask ; ls -1 src/execline/deps-exe ; elif test $i = umask ; then echo ' { .name = "umask", .mainf = (main_func_ref)&UMASK_FUNC },' else - echo " { .name=\"${i}\", .mainf = (main_func_ref)&${j}_main }," + echo " { .name = \"${i}\", .mainf = (main_func_ref)&${j}_main }," fi done |