From: Jani Nikula Date: Sun, 4 Nov 2012 21:31:02 +0000 (+0200) Subject: Re: [PATCH 05/10] install: check for non-SysV version (Solaris support) X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=2bf74e048a4f6b1d3495ad9f05fde9f39d217c75;p=notmuch-archives.git Re: [PATCH 05/10] install: check for non-SysV version (Solaris support) --- diff --git a/b1/017530663d242859f3f2fe3d684d8bbac4b7db b/b1/017530663d242859f3f2fe3d684d8bbac4b7db new file mode 100644 index 000000000..1c661ae11 --- /dev/null +++ b/b1/017530663d242859f3f2fe3d684d8bbac4b7db @@ -0,0 +1,254 @@ +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 B1FB4431FAF + for ; Sun, 4 Nov 2012 13:31:09 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: -0.7 +X-Spam-Level: +X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 + tests=[RCVD_IN_DNSWL_LOW=-0.7] 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 i6-M9UeVubuo for ; + Sun, 4 Nov 2012 13:31:08 -0800 (PST) +Received: from mail-la0-f53.google.com (mail-la0-f53.google.com + [209.85.215.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 30E51431FAE + for ; Sun, 4 Nov 2012 13:31:08 -0800 (PST) +Received: by mail-la0-f53.google.com with SMTP id l5so4032774lah.26 + for ; Sun, 04 Nov 2012 13:31:06 -0800 (PST) +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=google.com; s=20120113; + h=from:to:cc:subject:in-reply-to:references:user-agent:date + :message-id:mime-version:content-type:x-gm-message-state; + bh=bbpMIAwdgMs9SVkAwcb7H64G9NBC6+fAu+LsrFEvk80=; + b=bKs1V/duePndDdrOYG/o0umd5YaE2HKPM3d2qddaJrf8lXK2HsYnVT5yqvhAM5C20O + tx/bdTCw1ZdIg1mt2AHOetgEnHTZkLSmLTP4FO86/9bDyqQlyPCqT3rN+DesSLWXexDE + 8TrCtPZcGlayUsxfp4OYnkM45o4+ulzzjMSHdlgRTx8WEveNm5DgIbcbjV11byH4dgLt + f502PJQ2M5c+HB9q6Q9GbSDsl29ed307fvOaxQI5DxHTN/KjOFDBGzRgyLzDzEax8CAm + eq8CRz4VLI7b2mQegfVRCU8k8UNS+tjnFDu1PcPdlt6TAXHXKkWNXpflGeXAeYS42hKE + HYcA== +Received: by 10.112.102.132 with SMTP id fo4mr3142469lbb.111.1352064666604; + Sun, 04 Nov 2012 13:31:06 -0800 (PST) +Received: from localhost (dsl-hkibrasgw4-fe51df00-27.dhcp.inet.fi. + [80.223.81.27]) + by mx.google.com with ESMTPS id y10sm5099287lbg.4.2012.11.04.13.31.03 + (version=SSLv3 cipher=OTHER); Sun, 04 Nov 2012 13:31:04 -0800 (PST) +From: Jani Nikula +To: Blake Jones , notmuch@notmuchmail.org +Subject: Re: [PATCH 05/10] install: check for non-SysV version (Solaris + support) +In-Reply-To: <1351998962-25135-6-git-send-email-blakej@foo.net> +References: <1351998962-25135-1-git-send-email-blakej@foo.net> + <1351998962-25135-6-git-send-email-blakej@foo.net> +User-Agent: Notmuch/0.14+81~g1924356 (http://notmuchmail.org) Emacs/23.4.1 + (i686-pc-linux-gnu) +Date: Sun, 04 Nov 2012 23:31:02 +0200 +Message-ID: <87d2ztf42x.fsf@nikula.org> +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +X-Gm-Message-State: + ALoCoQlZMSfsSygBXJD1WiS5WDvBs8B/a4euhl4DJCnWrCgih12F7fobliZH66EnaDDdQGWKryVL +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: Sun, 04 Nov 2012 21:31:09 -0000 + +On Sun, 04 Nov 2012, Blake Jones wrote: +> 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 5c5139f..dae837e 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_ + +This doesn't feel like a hot idea. Don't tell me you'd need to create a +compatibility script for using mktemp --tmpdir too... + +Or how about just always using ginstall on Solaris? + +BR, +Jani. + +> +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 < @@ -777,4 +792,8 @@ CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS) \\ +> -DSTD_ASCTIME=\$(STD_ASCTIME) +> CONFIGURE_LDFLAGS = \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS) \\ +> \$(LIBNSL_LDFLAGS) +> + +> +# Which "install" program to use +> +INSTALL = ${INSTALL} +> + +> EOF +> diff --git a/emacs/Makefile.local b/emacs/Makefile.local +> index fb82247..ee778cb 100644 +> --- a/emacs/Makefile.local +> +++ b/emacs/Makefile.local +> @@ -36,11 +36,11 @@ endif +> .PHONY: install-emacs +> install-emacs: +> mkdir -p "$(DESTDIR)$(emacslispdir)" +> - install -m0644 $(emacs_sources) "$(DESTDIR)$(emacslispdir)" +> + $(INSTALL) -m0644 $(emacs_sources) "$(DESTDIR)$(emacslispdir)" +> ifeq ($(HAVE_EMACS),1) +> - install -m0644 $(emacs_bytecode) "$(DESTDIR)$(emacslispdir)" +> + $(INSTALL) -m0644 $(emacs_bytecode) "$(DESTDIR)$(emacslispdir)" +> endif +> mkdir -p "$(DESTDIR)$(emacsetcdir)" +> - install -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)" +> + $(INSTALL) -m0644 $(emacs_images) "$(DESTDIR)$(emacsetcdir)" +> +> CLEAN := $(CLEAN) $(emacs_bytecode) +> diff --git a/lib/Makefile.local b/lib/Makefile.local +> index 7785944..0c6b258 100644 +> --- a/lib/Makefile.local +> +++ b/lib/Makefile.local +> @@ -89,11 +89,11 @@ install: install-$(dir) +> +> install-$(dir): $(dir)/$(LIBNAME) +> mkdir -p "$(DESTDIR)$(libdir)/" +> - install -m0644 "$(lib)/$(LIBNAME)" "$(DESTDIR)$(libdir)/" +> + $(INSTALL) -m0644 "$(lib)/$(LIBNAME)" "$(DESTDIR)$(libdir)/" +> ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(SONAME)" +> ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(LINKER_NAME)" +> mkdir -p "$(DESTDIR)$(includedir)" +> - install -m0644 "$(srcdir)/$(lib)/notmuch.h" "$(DESTDIR)$(includedir)/" +> + $(INSTALL) -m0644 "$(srcdir)/$(lib)/notmuch.h" "$(DESTDIR)$(includedir)/" +> $(LIBRARY_INSTALL_POST_COMMAND) +> +> SRCS := $(SRCS) $(libnotmuch_c_srcs) $(libnotmuch_cxx_srcs) +> diff --git a/man/Makefile.local b/man/Makefile.local +> index 72e2a18..07dcf4c 100644 +> --- a/man/Makefile.local +> +++ b/man/Makefile.local +> @@ -38,9 +38,9 @@ install-man: $(COMPRESSED_MAN) +> mkdir -p "$(DESTDIR)$(mandir)/man1" +> mkdir -p "$(DESTDIR)$(mandir)/man5" +> mkdir -p "$(DESTDIR)$(mandir)/man7" +> - install -m0644 $(MAN1_GZ) $(DESTDIR)/$(mandir)/man1 +> - install -m0644 $(MAN5_GZ) $(DESTDIR)/$(mandir)/man5 +> - install -m0644 $(MAN7_GZ) $(DESTDIR)/$(mandir)/man7 +> + $(INSTALL) -m0644 $(MAN1_GZ) $(DESTDIR)/$(mandir)/man1 +> + $(INSTALL) -m0644 $(MAN5_GZ) $(DESTDIR)/$(mandir)/man5 +> + $(INSTALL) -m0644 $(MAN7_GZ) $(DESTDIR)/$(mandir)/man7 +> cd $(DESTDIR)/$(mandir)/man1 && ln -sf notmuch.1.gz notmuch-setup.1.gz +> +> update-man-versions: $(MAN_SOURCE) +> diff --git a/vim/Makefile b/vim/Makefile +> index f17bebf..7ceba7a 100644 +> --- a/vim/Makefile +> +++ b/vim/Makefile +> @@ -5,8 +5,6 @@ files = plugin/notmuch.vim \ +> prefix = $(HOME)/.vim +> destdir = $(prefix)/plugin +> +> -INSTALL = install -D -m644 +> - +> all: help +> +> help: +> @@ -17,7 +15,7 @@ help: +> @echo " make symlink - create symlinks in ~/.vim (useful for development)" +> +> install: +> - @for x in $(files); do $(INSTALL) $(CURDIR)/$$x $(prefix)/$$x; done +> + @for x in $(files); do $(INSTALL) -D -m644 $(CURDIR)/$$x $(prefix)/$$x; done +> +> -link symlink: INSTALL = ln -fs +> link symlink: install +> + @for x in $(files); do ln -fs $(CURDIR)/$$x $(prefix)/$$x; done +> -- +> 1.7.9.2 +> +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> http://notmuchmail.org/mailman/listinfo/notmuch