From b5043dd6c3e2a9da637dfefbbd2b6a89cda600f0 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sat, 24 Mar 2012 00:08:24 +1000 Subject: Make selecting scriptlet shell work The initial patch to implement this achieved nothing apart from adding a configure option. This patch makes that configure option do what it advertises. Note that specifing any shell apart from /bin/sh causes testsuite failures as /bin/sh is the only shell in the testing environment. Bug-found-by: Dave Reisner Signed-off-by: Allan McRae Signed-off-by: Dan McGee --- configure.ac | 6 +++--- lib/libalpm/trans.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 84ba5a60..1bded39a 100644 --- a/configure.ac +++ b/configure.ac @@ -92,8 +92,8 @@ AC_ARG_WITH(buildscript, # Help line for changing shell used to run install scriptlets AC_ARG_WITH(scriptlet-shell, AS_HELP_STRING([--with-scriptlet-shell=shell], - [set the shell used to run install scriptlets]), - [SCRIPTLET_SHELL=$withval], [SCRIPTLET_SHELL=sh]) + [set the full path to the shell used to run install scriptlets]), + [SCRIPTLET_SHELL=$withval], [SCRIPTLET_SHELL=/bin/sh]) # Help line for using OpenSSL AC_ARG_WITH(openssl, @@ -377,7 +377,7 @@ AC_SUBST(BUILDSCRIPT) AC_DEFINE_UNQUOTED([BUILDSCRIPT], "$BUILDSCRIPT", [The build script name used by makepkg]) # Set shell used by install scriptlets AC_SUBST(SCRIPTLET_SHELL) -AC_DEFINE_UNQUOTED([SCRIPTLET_SHELL], "$SCRIPTLET_SHELL", [The shell used to run install scriptlets]) +AC_DEFINE_UNQUOTED([SCRIPTLET_SHELL], "$SCRIPTLET_SHELL", [The full path of the shell used to run install scriptlets]) # Configuration files AC_CONFIG_FILES([ diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index fe89e407..4309c07e 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -343,7 +343,7 @@ int _alpm_runscriptlet(alpm_handle_t *handle, const char *filepath, _alpm_log(handle, ALPM_LOG_DEBUG, "executing \"%s\"\n", cmdline); - retval = _alpm_run_chroot(handle, "/bin/sh", argv); + retval = _alpm_run_chroot(handle, SCRIPTLET_SHELL, argv); cleanup: if(scriptfn && unlink(scriptfn)) { -- cgit v1.2.3-70-g09d2