about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2023-02-02 21:06:35 +0000
committerLaurent Bercot <ska@appnovation.com>2023-02-02 21:06:35 +0000
commitb51260a8f2f6a7570e51b8414a468111e023c04d (patch)
tree4f7b0c67eb48e5c18f8bb12d566f34133d934815
parent9d55d49dad0f4cb90e6ff2f9b1c3bc46a6fcf05f (diff)
downloadexecline-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--AUTHORS1
-rw-r--r--INSTALL24
-rw-r--r--NEWS6
-rw-r--r--doc/index.html4
-rw-r--r--doc/upgrade.html8
-rw-r--r--package/info2
-rw-r--r--package/modes1
-rw-r--r--package/targets.mak9
-rwxr-xr-xtools/gen-multicall.sh19
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