summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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