Add configure option --enable-fixed-path.
authorWerner Koch <wk@gnupg.org>
Thu, 13 Mar 2014 13:24:14 +0000 (14:24 +0100)
committerWerner Koch <wk@gnupg.org>
Thu, 13 Mar 2014 13:24:14 +0000 (14:24 +0100)
* 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
src/posix-util.c

index 21951fe..1111849 100644 (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.
 #
index 1b92ec1..e78cd77 100644 (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)