From: Karel Zak Date: Tue, 3 Mar 2015 10:36:59 +0000 (+0100) Subject: build-sys: add --enable-usrdir-path X-Git-Tag: v2.27-rc1~417 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f71d1104df68e9ab7f06878c1c324566721acd66;p=thirdparty%2Futil-linux.git build-sys: add --enable-usrdir-path The directories /{sbin,bin} are symliks to /usr/{sbin,bin} on many systems. This patch add new ./configure option to remove the non-usr paths from the default $PATH environment variable. The default $PATH is hardcoded in login(1) and can be overwritten by /etc/login.defs. default: ./test_pathnames | grep DEFPATH _PATH_DEFPATH /usr/local/bin:/bin:/usr/bin _PATH_DEFPATH_ROOT /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin --enable-usrdir-path: ./test_pathnames | grep DEFPATH _PATH_DEFPATH /usr/local/bin:/usr/bin _PATH_DEFPATH_ROOT /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin This patch does not modify install paths, you still have to care about --{bin,lib}dir configure options. Signed-off-by: Karel Zak --- diff --git a/configure.ac b/configure.ac index f7c3f8e57a..5d2b685035 100644 --- a/configure.ac +++ b/configure.ac @@ -1846,6 +1846,16 @@ AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [ ]) +AC_ARG_ENABLE([usrdir-path], + AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]), + [], [enable_usrdir_path=no] +) + +AS_IF([test "x$enable_usrdir_path" == xyes], [ + AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable]) +]) + + AC_ARG_ENABLE([makeinstall-chown], AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]), [], [enable_makeinstall_chown=yes] diff --git a/include/pathnames.h b/include/pathnames.h index cc01589cda..37f010997b 100644 --- a/include/pathnames.h +++ b/include/pathnames.h @@ -20,10 +20,20 @@ /* DEFPATHs from don't include /usr/local */ #undef _PATH_DEFPATH -#define _PATH_DEFPATH "/usr/local/bin:/bin:/usr/bin" + +#ifdef USE_USRDIR_PATHS_ONLY +# define _PATH_DEFPATH "/usr/local/bin:/usr/bin" +#else +# define _PATH_DEFPATH "/usr/local/bin:/bin:/usr/bin" +#endif #undef _PATH_DEFPATH_ROOT -#define _PATH_DEFPATH_ROOT "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" + +#ifdef USE_USRDIR_PATHS_ONLY +# define _PATH_DEFPATH_ROOT "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" +#else +# define _PATH_DEFPATH_ROOT "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin" +#endif #define _PATH_SECURETTY "/etc/securetty" #define _PATH_WTMPLOCK "/etc/wtmplock"