From 766355b5d4f63261c428531fdbdafb8b67de9369 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 13 Mar 2014 14:24:14 +0100 Subject: [PATCH] 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. --- configure.ac | 11 +++++++++++ src/posix-util.c | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 21951fe6..11118492 100644 --- a/configure.ac +++ b/configure.ac @@ -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. # diff --git a/src/posix-util.c b/src/posix-util.c index 1b92ec17..e78cd771 100644 --- a/src/posix-util.c +++ b/src/posix-util.c @@ -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)