Add configure option --enable-fixed-path.

* configure.ac: Add option --enable-fixed-path.
(FIXED_SEARCH_PATH): New ac_define.
* src/posix-util.c (walk_path): Make use of the option.  Remove
current directory from fallback PATH.
--

Note that using this option PATH is entirely ignored by GPGME and only
the given value is used instead to locate the GnuPG binaries.

On Android the use of PATH is not desirable.  Instead the GnuPG tools
are expected in a fixed directory.  By using

  ./configure --enable-fixed-path="/foo/bar"

gpg et al are expected to be installed as /foo/bar/gpg.  With

  ./configure --enable-fixed-path="/foo/bar:/bin"

gpg is expected as /foo/bar/gpg or /bin/gpg.
This commit is contained in:
Werner Koch 2014-03-13 14:24:14 +01:00
parent dd9c8c5671
commit 766355b5d4
2 changed files with 16 additions and 1 deletions

View File

@ -236,6 +236,17 @@ AM_CONDITIONAL(BUILD_W32_QT, test "$build_w32_qt" = yes)
AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
AC_ARG_ENABLE([fixed-path],
AC_HELP_STRING([--enable-fixed-path=PATH],
[locate binaries only via this PATH]),
[fixed_search_path="$enableval"],
[fixed_search_path=""])
if test x$fixed_search_path != x ; then
AC_DEFINE_UNQUOTED(FIXED_SEARCH_PATH, "$fixed_search_path",
[Locate binaries only via this PATH])
fi
#
# Provide information about the build.
#

View File

@ -78,9 +78,13 @@ walk_path (const char *pgm)
const char *orig_path, *path, *s;
char *fname, *p;
#ifdef FIXED_SEARCH_PATH
orig_path = FIXED_SEARCH_PATH;
#else
orig_path = getenv ("PATH");
if (!orig_path)
orig_path = "/bin:/usr/bin:.";
orig_path = "/bin:/usr/bin";
#endif
fname = malloc (strlen (orig_path) + 1 + strlen (pgm) + 1);
if (!fname)