[PATCH] configure: Use $prefix for emacs, even when pkg-config is available.

Andrew Burgess andrew.burgess at embecosm.com
Wed Nov 25 09:32:05 PST 2015


Hi,

I like to maintain multiple copies of notmuch installed in parallel,
and so make use of the --prefix=$PREFIX argument to configure.

I recently tried to configure and install from master, and ran into an
issue that the location selected for installing the emacs components
did not respect my chosen prefix.

It turns out that if pkg-config is available (it is here) then the
supplied prefix is ignored, in favour of the path returned by pkg-config.

To reproduce this issue, then as a non-root user, using current master:

  ./configure --prefix=$HOME/notmuch-prefix
  make
  make install

Assumming that you have pkg-config installed, emacs installed, and the
command 'pkg-config emacs --variable sitepkglispdir' returns a
directory that only root can write to, then the make install above
should fail.

The solution I propose in the patch below is to still apply the
prefix, even when pkg-config is available; pkg-config is used to
select the path within the prefix directory.

Would you consider this for inclusion?

Thanks,
Andrew

---
When using pkg-config to select the path for the various emacs
installation directories (the lisp and etc directories), still apply
the $prefix variable.
---
 configure | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 440d678..4f1db82 100755
--- a/configure
+++ b/configure
@@ -473,7 +473,7 @@ fi
 
 if [ -z "${EMACSLISPDIR}" ]; then
     if pkg-config --exists emacs; then
-	EMACSLISPDIR=$(pkg-config emacs --variable sitepkglispdir)
+	EMACSLISPDIR='$(prefix)'$(pkg-config emacs --variable sitepkglispdir)
     else
 	EMACSLISPDIR='$(prefix)/share/emacs/site-lisp'
     fi
@@ -481,7 +481,7 @@ fi
 
 if [ -z "${EMACSETCDIR}" ]; then
     if pkg-config --exists emacs; then
-	EMACSETCDIR=$(pkg-config emacs --variable sitepkglispdir)
+	EMACSETCDIR='$(prefix)'$(pkg-config emacs --variable sitepkglispdir)
     else
 	EMACSETCDIR='$(prefix)/share/emacs/site-lisp'
     fi
-- 
2.5.1



More information about the notmuch mailing list