From: Blake Jones Date: Mon, 5 Nov 2012 19:01:58 +0000 (+1600) Subject: [PATCH v2 05/10] install: check for non-SysV version (Solaris support) X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=ab83ce39f4149de701565e57bad5a088c643f3bc;p=notmuch-archives.git [PATCH v2 05/10] install: check for non-SysV version (Solaris support) --- diff --git a/42/e0a90fb812619f08e539baa41b3b2e1e97e124 b/42/e0a90fb812619f08e539baa41b3b2e1e97e124 new file mode 100644 index 000000000..d0aadc7c8 --- /dev/null +++ b/42/e0a90fb812619f08e539baa41b3b2e1e97e124 @@ -0,0 +1,223 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id A9B9E429E2F + for ; Mon, 5 Nov 2012 11:02:28 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id gxMQYNq-j+BZ for ; + Mon, 5 Nov 2012 11:02:26 -0800 (PST) +Received: from foo.net (70-36-235-136.dsl.static.sonic.net [70.36.235.136]) + (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 0A33B429E32 + for ; Mon, 5 Nov 2012 11:02:23 -0800 (PST) +Received: from foo.net (localhost [127.0.0.1]) + by foo.net (8.14.5+Sun/8.14.5) with ESMTP id qA5J2Mv1019113; + Mon, 5 Nov 2012 11:02:22 -0800 (PST) +Received: (from blakej@localhost) + by foo.net (8.14.5+Sun/8.14.5/Submit) id qA5J2McW019112; + Mon, 5 Nov 2012 11:02:22 -0800 (PST) +From: Blake Jones +To: notmuch@notmuchmail.org +Subject: [PATCH v2 05/10] install: check for non-SysV version (Solaris + support) +Date: Mon, 5 Nov 2012 11:01:58 -0800 +Message-Id: <1352142123-18286-6-git-send-email-blakej@foo.net> +X-Mailer: git-send-email 1.7.3.2 +In-Reply-To: <1352142123-18286-1-git-send-email-blakej@foo.net> +References: <1352142123-18286-1-git-send-email-blakej@foo.net> +X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0.2 + (foo.net [127.0.0.1]); Mon, 05 Nov 2012 11:02:22 -0800 (PST) +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Mon, 05 Nov 2012 19:02:29 -0000 + +Solaris ships a program called "install" in /usr/sbin, which performs a +task that's fairly similar to the GNU and BSD "install" programs but +which uses very different command line arguments. In particular, if it +is invoked without "-c", "-f", or "-n", it will search the target +directory for a file with the same name as the one being installed, and +it will only install the file if it finds a matching name. More +excitingly, if it doesn't find a match, it will look in /bin, /usr/bin, +/etc, /lib, and /usr/lib and try to do the same there. + +The standard workaround for this is to use GNU install. +It is available via the standard Solaris packaging system (in +"file/gnu-coreutils"), and installs itself as /usr/bin/ginstall. + +This patch adds a check to "configure" to see if "install" behaves in a +way that's compatible with GNU and BSD install, and if not, it uses a +program called "ginstall" instead. It also modifies "configure" to set +the $(INSTALL) variable, and changes various Makefiles to use it. +--- + Makefile.local | 2 +- + completion/Makefile.local | 4 ++-- + configure | 19 +++++++++++++++++++ + emacs/Makefile.local | 6 +++--- + lib/Makefile.local | 4 ++-- + man/Makefile.local | 6 +++--- + vim/Makefile | 6 ++---- + 7 files changed, 32 insertions(+), 15 deletions(-) + +diff --git a/Makefile.local b/Makefile.local +index 2b91946..7ccb1cd 100644 +--- a/Makefile.local ++++ b/Makefile.local +@@ -286,7 +286,7 @@ notmuch-shared: $(notmuch_client_modules) lib/$(LINKER_NAME) + .PHONY: install + install: all install-man + mkdir -p "$(DESTDIR)$(prefix)/bin/" +- install notmuch-shared "$(DESTDIR)$(prefix)/bin/notmuch" ++ $(INSTALL) notmuch-shared "$(DESTDIR)$(prefix)/bin/notmuch" + ifeq ($(MAKECMDGOALS), install) + @echo "" + @echo "Notmuch is now installed to $(DESTDIR)$(prefix)" +diff --git a/completion/Makefile.local b/completion/Makefile.local +index dfc1271..a648a78 100644 +--- a/completion/Makefile.local ++++ b/completion/Makefile.local +@@ -14,9 +14,9 @@ install-$(dir): + @echo $@ + ifeq ($(WITH_BASH),1) + mkdir -p "$(DESTDIR)$(bash_completion_dir)" +- install -m0644 $(bash_script) "$(DESTDIR)$(bash_completion_dir)/notmuch" ++ $(INSTALL) -m0644 $(bash_script) "$(DESTDIR)$(bash_completion_dir)/notmuch" + endif + ifeq ($(WITH_ZSH),1) + mkdir -p "$(DESTDIR)$(zsh_completion_dir)" +- install -m0644 $(zsh_script) "$(DESTDIR)$(zsh_completion_dir)/_notmuch" ++ $(INSTALL) -m0644 $(zsh_script) "$(DESTDIR)$(zsh_completion_dir)/_notmuch" + endif +diff --git a/configure b/configure +index c9da667..d9a101f 100755 +--- a/configure ++++ b/configure +@@ -591,6 +591,21 @@ for flag in -Wmissing-declarations; do + done + printf "\n\t${WARN_CFLAGS}\n" + ++INSTALL="install" ++printf "Checking for working \"install\" program... " ++mkdir _tmp_ ++cd _tmp_ ++echo 1 > 1 ++mkdir dest ++if install 1 dest > /dev/null 2>&1 ; then ++ printf "\"install\" works fine.\n" ++else ++ INSTALL="ginstall" ++ printf "using \"ginstall\".\n" ++fi ++cd .. ++rm -rf _tmp_ ++ + rm -f minimal minimal.c + + cat <