[notmuch] [patch] Trivial fix for non-root install

Carl Worth cworth at cworth.org
Tue Dec 1 10:18:46 PST 2009

On Mon, 23 Nov 2009 16:41:23 +0100, Ingmar Vanhassel <ingmar at exherbo.org> wrote:
> Excerpts from Brett Viren's message of Mon Nov 23 16:31:47 +0100 2009:
> > Installing as a normal user fails because the bash completion config
> > files try to install into /etc.  This trivial patch fixes this.
> Your patch breaks the more common case of installing as root user. It
> now installs into /usr/etc where bash completions most likely won't be
> found.

Here's a compromise, which is to move the installation of the bash
completion support from "make install" to a new "make install-bash".

So I think we'll end up with a bunch of install-<foo> targets
corresponding to each of the things in contrib. And it then shouldn't be
surprising that things in contrib aren't installed by "make install".

The only thing I think I'd really like beyond this is a better way to
advertise the existence of the various install-<foo> targets, (maybe a
message at the end of "make install" that greps and seds these out of


commit 7c2c26bc4ec5fdab5c6fa72ea325d846b46929e3
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Dec 1 10:14:00 2009 -0800

    Makefile: Add new "install-bash" target for bash completion support
    It was problematic to have this in "make install" since it would
    unconditionally try to install to /etc, (even if a non-privileged user
    was attempting an install to a prefix in the user's home directory,
    for example).

diff --git a/Makefile b/Makefile
index ae0f991..e42584b 100644
--- a/Makefile
+++ b/Makefile
@@ -19,6 +19,8 @@ ifeq ($(emacs_lispdir),)
        emacs_lispdir = $(prefix)/share/emacs/site-lisp
+bash_completion_dir = /etc/bash_completion.d
 all_deps = Makefile Makefile.local Makefile.config \
                   lib/Makefile lib/Makefile.local
diff --git a/Makefile.local b/Makefile.local
index 1744747..aff7d2c 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -29,15 +29,12 @@ notmuch.1.gz: notmuch.1
        $(call quiet,gzip) --stdout $^ > $@
 install: all notmuch.1.gz
-       for d in $(DESTDIR)$(prefix)/bin/ $(DESTDIR)$(prefix)/share/man/man1 \
-               $(DESTDIR)$(bash_completion_dir) ; \
+       for d in $(DESTDIR)$(prefix)/bin/ $(DESTDIR)$(prefix)/share/man/man1 ; \
        do \
                install -d $$d ; \
        done ;
        install notmuch $(DESTDIR)$(prefix)/bin/
        install -m0644 notmuch.1.gz $(DESTDIR)$(prefix)/share/man/man1/
-       install contrib/notmuch-completion.bash \
-               $(DESTDIR)$(bash_completion_dir)/notmuch
 install-emacs: install emacs
        for d in $(DESTDIR)/$(emacs_lispdir) ; \
@@ -47,5 +44,10 @@ install-emacs: install emacs
        install -m0644 notmuch.el $(DESTDIR)$(emacs_lispdir)
        install -m0644 notmuch.elc $(DESTDIR)$(emacs_lispdir)
+       install -d $(DESTDIR)$(bash_completion_dir)
+       install contrib/notmuch-completion.bash \
+               $(DESTDIR)$(bash_completion_dir)/notmuch
 SRCS  := $(SRCS) $(notmuch_client_srcs)
 CLEAN := $(CLEAN) notmuch $(notmuch_client_modules) notmuch.elc notmuch.1.gz
diff --git a/configure b/configure
index 64816e0..140711f 100755
--- a/configure
+++ b/configure
@@ -133,6 +133,5 @@ EOF
 # construct the Makefile.config
 cat > Makefile.config <<EOF
 prefix = /usr/local
-bash_completion_dir = /etc/bash_completion.d
 CFLAGS += ${have_valgrind}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20091201/3ebcc715/attachment-0001.pgp>

More information about the notmuch mailing list