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