{"thread":{"id":"11330","subject":"[PATCH] Explain what 'ginstall' is","startedAt":"2007-12-17T21:46:09Z","lastAt":"2007-12-23T09:01:45Z","messageCount":12,"participants":["Andy Dougherty","Jakub Narebski","H.Merijn Brand","Jan Hudec"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"63503","messageId":"Pine.LNX.4.64.0712171641370.24957@fractal.phys.lafayette.edu","threadId":"11330","inReplyTo":null,"subject":"[PATCH] Explain what 'ginstall' is","fromName":"Andy Dougherty","fromEmail":"doughera@lafayette.edu","sentAt":"2007-12-17T21:46:09Z","receivedAt":"2007-12-17T21:46:09Z","isPatch":true,"sender":{"key":"doughera@lafayette.edu","avatar":null},"body":"While trying git out on Solaris 8, the 'make install' step failed because\nI don't have a 'ginstall' command.  After puzzling over it for a while,\nI finally figured out that\n    a)\tit's referring to the 'install' command that is now part of the\n\tGNU coreutils package, and\n    b)\tit's probably unnecessary, as using the Solaris install command\n\tgave me the same results.  (However, I didn't do anything fancy,\n\tso it may be that in some scenarios using 'ginstall' matters.\n\tI didn't do anything other than a very simple test.)\n\nAnyway, this patch documents it a tiny bit more.  Perhaps configure\nshould just go looking for a suitable install program instead of\nassuming everyone has one.\n\n--- git-1.5.4.rc0/Makefile\t2007-12-12 21:29:16.000000000 -0500\n+++ git-andy/Makefile\t2007-12-17 15:15:12.000000000 -0500\n@@ -416,6 +416,9 @@\n \tNO_STRLCPY = YesPlease\n \tNO_MEMMEM = YesPlease\n endif\n+# For SunOS, this assumes you have ginstall from the\n+# GNU coreutils package.  It's not clear whether that\n+# is actually necessary.\n ifeq ($(uname_S),SunOS)\n \tNEEDS_SOCKET = YesPlease\n \tNEEDS_NSL = YesPlease\n\n-- \n    Andy Dougherty\t\tdoughera@lafayette.edu\n"},{"id":"63542","messageId":"m3tzmgpzlu.fsf@roke.D-201","threadId":"11330","inReplyTo":"Pine.LNX.4.64.0712171641370.24957@fractal.phys.lafayette.edu","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-12-18T01:21:08Z","receivedAt":"2007-12-18T01:21:08Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Andy Dougherty <doughera@lafayette.edu> writes:\n\n> [...].  Perhaps configure\n> should just go looking for a suitable install program instead of\n> assuming everyone has one.\n\nFirst, configure is, and (I think) consensus is that it should remain\noptional.  This means that Makefile \"guess\" section should have good\ndefaults for your operating system.\n\nSecond, the default autoconf macro AC_PROG_INSTALL *requires* that\nthere is BSD-compatible `install' program (as 'install-sh' or\n'install.sh') in the sources.  Adding such script is (I think) not a\nproblem; finding minimal portable[*1*] script is.  So if you know\none...\n\n\nFootnotes:\n----------\n[*1*] By \"portable\" I mean here 'git portable', i.e. requiring only\nthose shell constructs/features that git require, not necessary\ninsanelt portable the way ./configure script is.\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"63566","messageId":"20071218083843.42d7a15e@pc09.procura.nl","threadId":"11330","inReplyTo":"m3tzmgpzlu.fsf@roke.D-201","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2007-12-18T07:38:43Z","receivedAt":"2007-12-18T07:38:43Z","isPatch":true,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski <jnareb@gmail.com>\nwrote:\n\n> Andy Dougherty <doughera@lafayette.edu> writes:\n> \n> > [...].  Perhaps configure\n> > should just go looking for a suitable install program instead of\n> > assuming everyone has one.\n> \n> First, configure is, and (I think) consensus is that it should remain\n> optional.  This means that Makefile \"guess\" section should have good\n> defaults for your operating system.\n\nAnd what if you OS *does* have an install, but one that is completely\nuseless^Wdifferent from the GNU install? Like the utterly useless\ninstall on HP-UX.\n\n> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n> there is BSD-compatible `install' program (as 'install-sh' or\n> 'install.sh') in the sources.  Adding such script is (I think) not a\n> problem;\n\nYeah!\n\n> finding minimal portable[*1*] script is.  So if you know one...\n> \n> Footnotes:\n> ----------\n> [*1*] By \"portable\" I mean here 'git portable', i.e. requiring only\n> those shell constructs/features that git require, not necessary\n> insanelt portable the way ./configure script is.\n\nSomething like this? (gui part still missing). This is what I now\nuse\n\n--8<--- make-install\n#!/bin/sh\n\nPREFIX=/pro/local\nBINDIR=$PREFIX/bin\nSHARED=$PREFIX/share\n\nfor p in git-fetch-pack git-hash-object git-index-pack git-fast-import \\\n\t git-daemon git-merge-index git-mktag git-mktree git-patch-id \\\n\t git-receive-pack git-send-pack git-shell git-show-index \\\n\t git-unpack-file git-update-server-info git-upload-pack \\\n\t git-pack-redundant git-var git-merge-tree git-imap-send \\\n\t git-merge-recursive  git-bisect git-checkout git-clone \\\n\t git-merge-one-file git-mergetool git-parse-remote git-pull \\\n\t git-rebase git-rebase--interactive git-repack git-request-pull \\\n\t git-sh-setup git-am git-merge git-merge-stupid git-merge-octopus \\\n\t git-merge-resolve git-lost-found git-quiltimport git-submodule \\\n\t git-filter-branch git-stash git-add--interactive git-archimport \\\n\t git-cvsimport git-relink git-cvsserver git-remote git-cvsexportcommit \\\n\t git-send-email git-svn git-instaweb git-merge-subtree ; do\n    rm -f $BINDIR/$p\n    cp $p $BINDIR\n    chmod 755 $BINDIR/$p\n    done\n\ncp git $BINDIR\ncd templates\nrm -rf $SHARED/git-core\nmkdir  $SHARED/git-core\nmkdir  $SHARED/git-core/templates\n(cd blt && tar cf - .) | (cd $SHARED/git-core/templates/ && tar xf -)\ncd ..\ncd perl\nmake\nmake install UNINST=1\ncd ..\n\nfor p in git-format-patch git-show git-whatchanged git-cherry \\\n\t git-get-tar-commit-id git-init git-repo-config git-fsck-objects \\\n\t git-cherry-pick git-peek-remote git-status git-add git-annotate \\\n\t git-apply git-archive git-blame git-branch git-bundle git-cat-file \\\n\t git-check-attr git-checkout-index git-check-ref-format git-clean \\\n\t git-commit git-commit-tree git-count-objects git-describe git-diff \\\n\t git-diff-files git-diff-index git-diff-tree git-fast-export \\\n\t git-fetch git-fetch-pack git-fetch--tool git-fmt-merge-msg \\\n\t git-for-each-ref git-fsck git-gc git-grep git-init-db git-log \\\n\t git-ls-files git-ls-tree git-ls-remote git-mailinfo git-mailsplit \\\n\t git-merge-base git-merge-file git-merge-ours git-mv git-name-rev \\\n\t git-pack-objects git-prune git-prune-packed git-push git-read-tree \\\n\t git-reflog git-send-pack git-config git-rerere git-reset \\\n\t git-rev-list git-rev-parse git-revert git-rm git-shortlog \\\n\t git-show-branch git-stripspace git-symbolic-ref git-tag git-tar-tree \\\n\t git-unpack-objects git-update-index git-update-ref \\\n\t git-upload-archive git-verify-pack git-verify-tag git-write-tree \\\n\t git-show-ref git-pack-refs ; do\n    rm -f $BINDIR/$p\n    ln $BINDIR/git $BINDIR/$p\n    done\n-->8---\n\n-- \nH.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/)\nusing & porting perl 5.6.2, 5.8.x, 5.10.x  on HP-UX 10.20, 11.00, 11.11,\n& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin.       http://qa.perl.org\nhttp://mirrors.develooper.com/hpux/            http://www.test-smoke.org\n                        http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"63568","messageId":"200712180920.39633.jnareb@gmail.com","threadId":"11330","inReplyTo":"20071218083843.42d7a15e@pc09.procura.nl","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-12-18T08:20:38Z","receivedAt":"2007-12-18T08:20:38Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:\n> \n>> Andy Dougherty <doughera@lafayette.edu> writes:\n>> \n>>> [...].  Perhaps configure\n>>> should just go looking for a suitable install program instead of\n>>> assuming everyone has one.\n>> \n>> First, configure is, and (I think) consensus is that it should remain\n>> optional.  This means that Makefile \"guess\" section should have good\n>> defaults for your operating system.\n> \n> And what if you OS *does* have an install, but one that is completely\n> useless^Wdifferent from the GNU install? Like the utterly useless\n> install on HP-UX.\n\nThen \"guess\" section should have INSTALL=ginstall, or something.\nOr just install with\n\n  INSTALL=/opt/bin/ginstall make install\n\nor something like that.\n\n>> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n>> there is BSD-compatible `install' program (as 'install-sh' or\n>> 'install.sh') in the sources.  Adding such script is (I think) not a\n>> problem;\n> \n> Yeah!\n> \n>> finding minimal portable[*1*] script is.  So if you know one...\n>> \n>> Footnotes:\n>> ----------\n>> [*1*] By \"portable\" I mean here 'git portable', i.e. requiring only\n>> those shell constructs/features that git require, not necessary\n>> insanelt portable the way ./configure script is.\n> \n> Something like this? (gui part still missing). This is what I now\n> use\n> \n> --8<--- make-install\n\nErrr... please read more carefully. There is need for BSD-compatibile\n`install` program as 'install-sh', not 'make-install' script. The idea\nis to use system-provided 'install' if it exists and is compatibile,\nbecause it should be faster than script version, and fallback to \nprovided install-sh only if system install is not found.\n\ninstall-sh has to understand '-d' and '-m <mode>' switches for git \ninstall purposes, and probably implement all three (src dest, src dir, \ndir) formats.\n-- \nJakub Narebski\nPoland\n"},{"id":"63569","messageId":"20071218093819.0b1caf16@pc09.procura.nl","threadId":"11330","inReplyTo":"200712180920.39633.jnareb@gmail.com","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2007-12-18T08:38:19Z","receivedAt":"2007-12-18T08:38:19Z","isPatch":true,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n\n> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> > On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:\n> > \n> >> Andy Dougherty <doughera@lafayette.edu> writes:\n> >> \n> >>> [...].  Perhaps configure\n> >>> should just go looking for a suitable install program instead of\n> >>> assuming everyone has one.\n> >> \n> >> First, configure is, and (I think) consensus is that it should remain\n> >> optional.  This means that Makefile \"guess\" section should have good\n> >> defaults for your operating system.\n> > \n> > And what if you OS *does* have an install, but one that is completely\n> > useless^Wdifferent from the GNU install? Like the utterly useless\n> > install on HP-UX.\n> \n> Then \"guess\" section should have INSTALL=ginstall, or something.\n> Or just install with\n> \n>   INSTALL=/opt/bin/ginstall make install\n\nChances are close to zero that HP-UX systems have installed any working\nor compliant version of install\n\n> or something like that.\n> \n> >> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n> >> there is BSD-compatible `install' program (as 'install-sh' or\n> >> 'install.sh') in the sources.  Adding such script is (I think) not a\n> >> problem;\n> > \n> > Yeah!\n> > \n> >> finding minimal portable[*1*] script is.  So if you know one...\n> >> \n> >> Footnotes:\n> >> ----------\n> >> [*1*] By \"portable\" I mean here 'git portable', i.e. requiring only\n> >> those shell constructs/features that git require, not necessary\n> >> insanelt portable the way ./configure script is.\n> > \n> > Something like this? (gui part still missing). This is what I now\n> > use\n> > \n> > --8<--- make-install\n> \n> Errr... please read more carefully. There is need for BSD-compatibile\n> `install` program as 'install-sh', not 'make-install' script. The idea\n> is to use system-provided 'install' if it exists and is compatibile,\n\nThere lies the problem. HP-UX does have an 'install', but it is not\ncompatible, and chances are (very) small that people have installed\nthe GNU or any other BSD compliant install.\n\n> because it should be faster than script version, and fallback to \n> provided install-sh only if system install is not found.\n\nThe problem again. It *does* find install, but it turns out to be\nunusable.\n\n> install-sh has to understand '-d' and '-m <mode>' switches for git \n> install purposes, and probably implement all three (src dest, src dir, \n> dir) formats.\n\nBTW the same, but worse exists for the 'patch' program. On HP-UX there\nis a program called 'patch' which is used for system upgrades, but it\nhas nothing to do with the patch util the rest of the world so happily\nuses.\n\nSo far that is used in a few places in the test suite, but I heared it\nwould not be too hard to eliminate the use of the hard-coded patch util\n\n-- \nH.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/)\nusing & porting perl 5.6.2, 5.8.x, 5.10.x  on HP-UX 10.20, 11.00, 11.11,\n& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin.       http://qa.perl.org\nhttp://mirrors.develooper.com/hpux/            http://www.test-smoke.org\n                        http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"63573","messageId":"200712181014.38986.jnareb@gmail.com","threadId":"11330","inReplyTo":"20071218093819.0b1caf16@pc09.procura.nl","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-12-18T09:14:38Z","receivedAt":"2007-12-18T09:14:38Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n>> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n>>> On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:\n>>>>\n>>>> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n>>>> there is BSD-compatible `install' program (as 'install-sh' or\n>>>> 'install.sh') in the sources.  Adding such script is (I think) not a\n>>>> problem; finding minimal portable[*1*] script is.  \n>>>> So if you know one... \n>> \n>> [...]. There is need for BSD-compatibile\n>> `install` program as 'install-sh', not 'make-install' script. The idea\n>> is to use system-provided 'install' if it exists and is compatibile,\n> \n> There lies the problem. HP-UX does have an 'install', but it is not\n> compatible, and chances are (very) small that people have installed\n> the GNU or any other BSD compliant install.\n> \n>> because it should be faster than script version, and fallback to \n>> provided install-sh only if system install is not found.\n> \n> The problem again. It *does* find install, but it turns out to be\n> unusable.\n\nCould you check if ./configure correctly uses install-sh in your case?\nCopy install-sh from for example autotools[*1*] (e.g. libtool has one)\nto the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,\ngenerate configure script using \"make configure\" and check what\n./configure chooses.\n\nIn my case it is:\n\n  $ cp /usr/share/libtool/install-sh .\n  $ make configure\n  GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty\n      GEN configure\n  $ ./configure\n  configure: CHECKS for programs\n  [...]\n  checking for a BSD-compatible install... /usr/bin/install -c\n\nWhat is ./configure output in your case?\n\nFootnotes:\n----------\n[*1*] Or for example http://svn.scheffers.net/zlib/tclconfig/install-sh\nwhich is smaller (2189 bytes vs. 9233 autotools one, or 10970 from\nkapptemplate (kdesdk 3.5.3)).\n\n-- \nJakub Narebski\nPoland\n"},{"id":"63589","messageId":"20071218121115.1c893dc4@pc09.procura.nl","threadId":"11330","inReplyTo":"200712181014.38986.jnareb@gmail.com","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2007-12-18T11:11:15Z","receivedAt":"2007-12-18T11:11:15Z","isPatch":true,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n\n> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> > On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n> >> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> >>> On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:\n> >>>>\n> >>>> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n> >>>> there is BSD-compatible `install' program (as 'install-sh' or\n> >>>> 'install.sh') in the sources.  Adding such script is (I think) not a\n> >>>> problem; finding minimal portable[*1*] script is.  \n> >>>> So if you know one... \n> >> \n> >> [...]. There is need for BSD-compatibile\n> >> `install` program as 'install-sh', not 'make-install' script. The idea\n> >> is to use system-provided 'install' if it exists and is compatibile,\n> > \n> > There lies the problem. HP-UX does have an 'install', but it is not\n> > compatible, and chances are (very) small that people have installed\n> > the GNU or any other BSD compliant install.\n> > \n> >> because it should be faster than script version, and fallback to \n> >> provided install-sh only if system install is not found.\n> > \n> > The problem again. It *does* find install, but it turns out to be\n> > unusable.\n> \n> Could you check if ./configure correctly uses install-sh in your case?\n> Copy install-sh from for example autotools[*1*] (e.g. libtool has one)\n> to the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,\n> generate configure script using \"make configure\" and check what\n> ./configure chooses.\n> \n> In my case it is:\n> \n>   $ cp /usr/share/libtool/install-sh .\n>   $ make configure\n>   GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty\n>       GEN configure\n>   $ ./configure\n>   configure: CHECKS for programs\n>   [...]\n>   checking for a BSD-compatible install... /usr/bin/install -c\n> \n> What is ./configure output in your case?\n\n/pro/3gl/LINUX/git-2007-12-17 112 > rm config.{log,status}\n/pro/3gl/LINUX/git-2007-12-17 113 > configure --prefix=/pro/local --disable-nls --without-iconv --with-perl=/pro/bin/perl >& config-log\n/pro/3gl/LINUX/git-2007-12-17 114 > grep -w install !$\ngrep -w install config-log\nExit 1\n/pro/3gl/LINUX/git-2007-12-17 115 >\n\nThe system could have used either one of these:\n\n/pro/3gl/LINUX/git-2007-12-17 116 > ll /pro/local/share/automa*/install-sh\n258090 -rwxr-xr-x 1 merijn softwr 9212 Sep  2  2004 /pro/local/share/automake-1.9/install-sh\n 77938 -rwxr-xr-x 1 merijn softwr 5598 Oct  4  2001 /pro/local/share/automake/install-sh\n\n/pro/3gl/LINUX/git-2007-12-17 119 > cp /pro/3gl/GNU/gcc/r3/gcc-4.2.2/install-sh install-sh\n/pro/3gl/LINUX/git-2007-12-17 120 > rm config.{log,status}\n/pro/3gl/LINUX/git-2007-12-17 121 > configure --prefix=/pro/local --disable-nls --without-iconv --with-perl=/pro/bin/perl > & config-log\n/pro/3gl/LINUX/git-2007-12-17 122 > grep -w install config-log\nExit 1\n/pro/3gl/LINUX/git-2007-12-17 123 > ll install-sh\n121737 -rwxrwxr-x 1 merijn softwr 9233 Dec 18 12:06 install-sh\n/pro/3gl/LINUX/git-2007-12-17 124 >\n\n-- uncommented the AC_PROG_INSTALL line ...\n\na5:/pro/3gl/LINUX/git-2007-12-17 125 > rm config.{log,status}\na5:/pro/3gl/LINUX/git-2007-12-17 126 > configure --prefix=/pro/local --disable-nls --without-iconv --with-perl=/pro/bin/perl > & config-log\na5:/pro/3gl/LINUX/git-2007-12-17 127 > grep -w install config-log\nExit 1\na5:/pro/3gl/LINUX/git-2007-12-17 128 > grep -w install config.log config.status\nExit 1\na5:/pro/3gl/LINUX/git-2007-12-17 129 >\n\nOK, rebuild configure ...\n\na5:/pro/3gl/LINUX/git-2007-12-17 129 > make configure\n    GEN configure\na5:/pro/3gl/LINUX/git-2007-12-17 130 > rm config.{log,status}\na5:/pro/3gl/LINUX/git-2007-12-17 131 > configure --prefix=/pro/local --disable-nls --without-iconv --with-perl=/pro/bin/perl > & config-log\na5:/pro/3gl/LINUX/git-2007-12-17 132 > grep -w install config-log config.log config.status\nconfig-log:checking for a BSD-compatible install... /opt/imake/bin/install -c\nconfig.log:configure:2218: checking for a BSD-compatible install\nconfig.log:configure:2273: result: /opt/imake/bin/install -c\nconfig.log:ac_cv_path_install='/opt/imake/bin/install -c'\nconfig.status:INSTALL=\"/opt/imake/bin/install -c\"\na5:/pro/3gl/LINUX/git-2007-12-17 133 >\n\n> Footnotes:\n> ----------\n> [*1*] Or for example http://svn.scheffers.net/zlib/tclconfig/install-sh\n> which is smaller (2189 bytes vs. 9233 autotools one, or 10970 from\n> kapptemplate (kdesdk 3.5.3)).\n\n\n-- \nH.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/)\nusing & porting perl 5.6.2, 5.8.x, 5.10.x  on HP-UX 10.20, 11.00, 11.11,\n& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin.       http://qa.perl.org\nhttp://mirrors.develooper.com/hpux/            http://www.test-smoke.org\n                        http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"63597","messageId":"200712181333.01051.jnareb@gmail.com","threadId":"11330","inReplyTo":"20071218121115.1c893dc4@pc09.procura.nl","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-12-18T12:32:59Z","receivedAt":"2007-12-18T12:32:59Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"H.Merijn Brand wrote:\n> On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n>> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n>>> On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n>>>> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n>>>>> On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:\n>>>>>>\n>>>>>> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n>>>>>> there is BSD-compatible `install' program (as 'install-sh' or\n>>>>>> 'install.sh') in the sources.  Adding such script is (I think) not a\n>>>>>> problem; finding minimal portable[*1*] script is.  \n>>>>>> So if you know one... \n>>>> \n>>>> [...]. There is need for BSD-compatibile\n>>>> `install` program as 'install-sh', not 'make-install' script. The idea\n>>>> is to use system-provided 'install' if it exists and is compatibile,\n>>> \n>>> There lies the problem. HP-UX does have an 'install', but it is not\n>>> compatible, and chances are (very) small that people have installed\n>>> the GNU or any other BSD compliant install.\n>>> \n>>>> because it should be faster than script version, and fallback to \n>>>> provided install-sh only if system install is not found.\n>>> \n>>> The problem again. It *does* find install, but it turns out to be\n>>> unusable.\n>> \n>> Could you check if ./configure correctly uses install-sh in your case?\n>> Copy install-sh from for example autotools[*1*] (e.g. libtool has one)\n>> to the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,\n>> generate configure script using \"make configure\" and check what\n>> ./configure chooses.\n>> \n>> In my case it is:\n>> \n>>   $ cp /usr/share/libtool/install-sh .\n>>   $ make configure\n>>   GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty\n>>       GEN configure\n>>   $ ./configure\n>>   configure: CHECKS for programs\n>>   [...]\n>>   checking for a BSD-compatible install... /usr/bin/install -c\n>> \n>> What is ./configure output in your case?\n\n \n> /pro/3gl/LINUX/git-2007-12-17 119> cp /pro/3gl/GNU/gcc/r3/gcc-4.2.2/install-sh install-sh\n\n> -- uncommented the AC_PROG_INSTALL line ...\n\n> OK, rebuild configure ...\n> \n> a5:/pro/3gl/LINUX/git-2007-12-17 129> make configure\n>     GEN configure\n> a5:/pro/3gl/LINUX/git-2007-12-17 130> rm config.{log,status}\n> a5:/pro/3gl/LINUX/git-2007-12-17 131> configure --prefix=/pro/local --disable-nls --without-iconv --with-perl=/pro/bin/perl> & config-log\n> a5:/pro/3gl/LINUX/git-2007-12-17 132> grep -w install config-log config.log config.status\n> config-log:checking for a BSD-compatible install... /opt/imake/bin/install -c\n> config.log:configure:2218: checking for a BSD-compatible install\n> config.log:configure:2273: result: /opt/imake/bin/install -c\n> config.log:ac_cv_path_install='/opt/imake/bin/install -c'\n> config.status:INSTALL=\"/opt/imake/bin/install -c\"\n\nDoes chosen by ./configure script 'install' binary, namely \n/opt/imake/bin/install works correctly, meaning does it install\ngit correctly?\n\n-- \nJakub Narebski\nPoland\n"},{"id":"63604","messageId":"20071218143246.2437bfaf@pc09.procura.nl","threadId":"11330","inReplyTo":"200712181333.01051.jnareb@gmail.com","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2007-12-18T13:32:46Z","receivedAt":"2007-12-18T13:32:46Z","isPatch":true,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Tue, 18 Dec 2007 13:32:59 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n\n> H.Merijn Brand wrote:\n> > On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n> >> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> >>> On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n> >>>> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> >>>>> On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:\n> >>>>>>\n> >>>>>> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n> >>>>>> there is BSD-compatible `install' program (as 'install-sh' or\n> >>>>>> 'install.sh') in the sources.  Adding such script is (I think) not a\n> >>>>>> problem; finding minimal portable[*1*] script is.  \n> >>>>>> So if you know one... \n> >>>> \n> >>>> [...]. There is need for BSD-compatibile\n> >>>> `install` program as 'install-sh', not 'make-install' script. The idea\n> >>>> is to use system-provided 'install' if it exists and is compatibile,\n> >>> \n> >>> There lies the problem. HP-UX does have an 'install', but it is not\n> >>> compatible, and chances are (very) small that people have installed\n> >>> the GNU or any other BSD compliant install.\n> >>> \n> >>>> because it should be faster than script version, and fallback to \n> >>>> provided install-sh only if system install is not found.\n> >>> \n> >>> The problem again. It *does* find install, but it turns out to be\n> >>> unusable.\n> >> \n> >> Could you check if ./configure correctly uses install-sh in your case?\n> >> Copy install-sh from for example autotools[*1*] (e.g. libtool has one)\n> >> to the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,\n> >> generate configure script using \"make configure\" and check what\n> >> ./configure chooses.\n> >> \n> >> In my case it is:\n> >> \n> >>   $ cp /usr/share/libtool/install-sh .\n> >>   $ make configure\n> >>   GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty\n> >>       GEN configure\n> >>   $ ./configure\n> >>   configure: CHECKS for programs\n> >>   [...]\n> >>   checking for a BSD-compatible install... /usr/bin/install -c\n> >> \n> >> What is ./configure output in your case?\n> \n>  \n> > /pro/3gl/LINUX/git-2007-12-17 119> cp /pro/3gl/GNU/gcc/r3/gcc-4.2.2/install-sh install-sh\n> \n> > -- uncommented the AC_PROG_INSTALL line ...\n> \n> > OK, rebuild configure ...\n> > \n> > a5:/pro/3gl/LINUX/git-2007-12-17 129> make configure\n> >     GEN configure\n> > a5:/pro/3gl/LINUX/git-2007-12-17 130> rm config.{log,status}\n> > a5:/pro/3gl/LINUX/git-2007-12-17 131> configure --prefix=/pro/local --disable-nls --without-iconv --with-perl=/pro/bin/perl> & config-log\n> > a5:/pro/3gl/LINUX/git-2007-12-17 132> grep -w install config-log config.log config.status\n> > config-log:checking for a BSD-compatible install... /opt/imake/bin/install -c\n> > config.log:configure:2218: checking for a BSD-compatible install\n> > config.log:configure:2273: result: /opt/imake/bin/install -c\n> > config.log:ac_cv_path_install='/opt/imake/bin/install -c'\n> > config.status:INSTALL=\"/opt/imake/bin/install -c\"\n> \n> Does chosen by ./configure script 'install' binary, namely \n> /opt/imake/bin/install works correctly, meaning does it install\n> git correctly?\n\nNo. I reported this before, but not to the list. This is why I created\nmy own make-install shell:\n\n/pro/3gl/LINUX/git-2007-12-17 113 > make install\n    SUBDIR git-gui\n    INDEX lib/\n    SUBDIR gitk-git\nmake[1]: Nothing to be done for `all'.\n    SUBDIR perl\n    SUBDIR templates\ninstall -d -m 755 '/pro/local/bin'\nrm: /pro/local/bin/ directory\nUsage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n       mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n       mv [-f] [-i] [-e warn|force|ignore] d1 d2\ninstall -d -m 755 '/pro/local/bin'\nrm: /pro/local/bin/ directory\nUsage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n       mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n       mv [-f] [-i] [-e warn|force|ignore] d1 d2\ninstall git-fetch-pack git-hash-object git-index-pack git-fast-import git-daemon git-merge-index git-mktag git-mktree git-patch-id git-receive-pack git-send-pack git-shell git-show-index git-unpack-file git-update-server-info git-upload-pack git-pack-redundant git-var git-merge-tree git-imap-send git-merge-recursive  git-bisect git-checkout git-clone git-merge-one-file git-mergetool git-parse-remote git-pull git-rebase git-rebase--interactive git-repack git-request-pull git-sh-setup git-am git-merge git-merge-stupid git-merge-octopus git-merge-resolve git-lost-found git-quiltimport git-submodule git-filter-branch git-stash git-help--browse git-add--interactive git-archimport git-cvsimport git-relink git-cvsserver git-remote git-cvsexportcommit git-send-email git-svn git-instaweb git-merge-\n subtree '/pro/local/bin'\ninstall git '/pro/local/bin'\nmake -C templates DESTDIR='' install\nmake[1]: Entering directory `/pro/3gl/LINUX/git-2007-12-17/templates'\ninstall -d -m 755 '/pro/local/share/git-core/templates/'\nrm: /pro/local/share/git-core/templates// directory\nUsage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n       mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n       mv [-f] [-i] [-e warn|force|ignore] d1 d2\n(cd blt && tar cf - .) | \\\n(cd '/pro/local/share/git-core/templates/' && tar xf -)\nmake[1]: Leaving directory `/pro/3gl/LINUX/git-2007-12-17/templates'\nmake -C perl prefix='/pro/local' DESTDIR='' install\nmake[1]: Entering directory `/pro/3gl/LINUX/git-2007-12-17/perl'\nmake[2]: Entering directory `/pro/3gl/LINUX/git-2007-12-17/perl'\nWriting /pro/local/lib/perl5/site_perl/5.8.8/PA-RISC2.0/auto/Git/.packlist\nAppending installation info to /pro/local/lib/perl5/5.8.8/PA-RISC2.0/perllocal.pod\nmake[2]: Leaving directory `/pro/3gl/LINUX/git-2007-12-17/perl'\nmake[1]: Leaving directory `/pro/3gl/LINUX/git-2007-12-17/perl'\nmake -C gitk-git install\nmake[1]: Entering directory `/pro/3gl/LINUX/git-2007-12-17/gitk-git'\ninstall gitk-wish '/pro/local/bin'/gitk\nmake[1]: Leaving directory `/pro/3gl/LINUX/git-2007-12-17/gitk-git'\nmake -C git-gui install\nmake[1]: Entering directory `/pro/3gl/LINUX/git-2007-12-17/git-gui'\n    INDEX lib/\n  DEST /pro/local/bin\nrm: /pro/local/bin/ directory\nUsage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n       mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n       mv [-f] [-i] [-e warn|force|ignore] d1 d2\n    INSTALL 755 git-gui\n    LINK        git-citool -> git-gui\n  DEST /pro/local/share/git-gui/lib\nrm: /pro/local/share/git-gui/lib/ directory\nUsage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n       mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n       mv [-f] [-i] [-e warn|force|ignore] d1 d2\n    INSTALL 644 tclIndex\nmv: lib/tclIndex: cannot access: No such file or directory\nchmod: can't access /pro/local/share/git-gui/lib/tclIndex\n    INSTALL 644 git-gui.ico\nmv: lib/git-gui.ico: cannot access: No such file or directory\nchmod: can't access /pro/local/share/git-gui/lib/git-gui.ico\n  DEST /pro/local/share/git-gui/lib/msgs\nrm: /pro/local/share/git-gui/lib/msgs/ directory\nUsage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n       mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n       mv [-f] [-i] [-e warn|force|ignore] d1 d2\n    INSTALL 644 de.msg\n    INSTALL 644 hu.msg\n    INSTALL 644 it.msg\n    INSTALL 644 ja.msg\n    INSTALL 644 ru.msg\n    INSTALL 644 zh_cn.msg\nmake[1]: Leaving directory `/pro/3gl/LINUX/git-2007-12-17/git-gui'\nif test 'z/pro/local/bin' != 'z/pro/local/bin'; \\\nthen \\\n        ln -f '/pro/local/bin/git' \\\n                '/pro/local/bin/git' || \\\n        cp '/pro/local/bin/git' \\\n                '/pro/local/bin/git'; \\\nfi\nrm -f '/pro/local/bin/git-format-patch' && ln '/pro/local/bin/git' '/pro/local/bin/git-format-patch' ;  rm -f '/pro/local/bin/git-show' && ln '/pro/local/bin/git' '/pro/local/bin/git-show' ;  rm -f '/pro/local/bin/git-whatchanged' && ln '/pro/local/bin/git' '/pro/local/bin/git-whatchanged' ;  rm -f '/pro/local/bin/git-cherry' && ln '/pro/local/bin/git' '/pro/local/bin/git-cherry' ;  rm -f '/pro/local/bin/git-get-tar-commit-id' && ln '/pro/local/bin/git' '/pro/local/bin/git-get-tar-commit-id' ;  rm -f '/pro/local/bin/git-init' && ln '/pro/local/bin/git' '/pro/local/bin/git-init' ;  rm -f '/pro/local/bin/git-repo-config' && ln '/pro/local/bin/git' '/pro/local/bin/git-repo-config' ;  rm -f '/pro/local/bin/git-fsck-objects' && ln '/pro/local/bin/git' '/pro/local/bin/git-fsck-objects' ;  rm -f \n '/pro/local/bin/git-cherry-pick' && ln '/pro/local/bin/git' '/pro/local/bin/git-cherry-pick' ;  rm -f '/pro/local/bin/git-peek-remote' && ln '/pro/local/bin/git' '/pro/local/bin/git-peek-re!\n mote' ;  rm -f '/pro/local/bin/git-status' && ln '/pro/local/bin/git' '/pro/local/bin/git-status' ;  rm -f '/pro/local/bin/git-add' && ln '/pro/local/bin/git' '/pro/local/bin/git-add' ;  rm -f '/pro/local/bin/git-annotate' && ln '/pro/local/bin/git' '/pro/local/bin/git-annotate' ;  rm -f '/pro/local/bin/git-apply' && ln '/pro/local/bin/git' '/pro/local/bin/git-apply' ;  rm -f '/pro/local/bin/git-archive' && ln '/pro/local/bin/git' '/pro/local/bin/git-archive' ;  rm -f '/pro/local/bin/git-blame' && ln '/pro/local/bin/git' '/pro/local/bin/git-blame' ;  rm -f '/pro/local/bin/git-branch' && ln '/pro/local/bin/git' '/pro/local/bin/git-branch' ;  rm -f '/pro/local/bin/git-bundle' && ln '/pro/local/bin/git' '/pro/local/bin/git-bundle' ;  rm -f '/pro/local/bin/git-cat-file' && ln '/pro/local/bin/\n git' '/pro/local/bin/git-cat-file' ;  rm -f '/pro/local/bin/git-check-attr' && ln '/pro/local/bin/git' '/pro/local/bin/git-check-attr' ;  rm -f '/pro/local/bin/git-checkout-index' && ln '/p!\n ro/local/bin/git' '/pro/local/bin/git-checkout-index' ;  rm -f '/pro/l\nocal/bin/git-check-ref-format' && ln '/pro/local/bin/git' '/pro/local/bin/git-check-ref-format' ;  rm -f '/pro/local/bin/git-clean' && ln '/pro/local/bin/git' '/pro/local/bin/git-clean' ;  rm -f '/pro/local/bin/git-commit' && ln '/pro/local/bin/git' '/pro/local/bin/git-commit' ;  rm -f '/pro/local/bin/git-commit-tree' && ln '/pro/local/bin/git' '/pro/local/bin/git-commit-tree' ;  rm -f '/pro/local/bin/git-count-objects' && ln '/pro/local/bin/git' '/pro/local/bin/git-count-objects' ;  rm -f '/pro/local/bin/git-describe' && ln '/pro/local/bin/git' '/pro/local/bin/git-describe' ;  rm -f '/pro/local/bin/git-diff' && ln '/pro/local/bin/git' '/pro/local/bin/git-diff' ;  rm -f '/pro/local/bin/git-diff-files' && ln '/pro/local/bin/git' '/pro/local/bin/git-diff-files' ;  rm -f '/pro/local/bin/git-d\n iff-index' && ln '/pro/local/bin/git' '/pro/local/bin/git-diff-index' ;  rm -f '/pro/local/bin/git-diff-tree' && ln '/pro/local/bin/git' '/pro/local/bin/git-diff-tree' ;  rm -f '/pro/local/!\n bin/git-fast-export' && ln '/pro/local/bin/git' '/pro/local/bin/git-fast-export' ;  rm -f '/pro/local/bin/git-fetch' && ln '/pro/local/bin/git' '/pro/local/bin/git-fetch' ;  rm -f '/pro/local/bin/git-fetch-pack' && ln '/pro/local/bin/git' '/pro/local/bin/git-fetch-pack' ;  rm -f '/pro/local/bin/git-fetch--tool' && ln '/pro/local/bin/git' '/pro/local/bin/git-fetch--tool' ;  rm -f '/pro/local/bin/git-fmt-merge-msg' && ln '/pro/local/bin/git' '/pro/local/bin/git-fmt-merge-msg' ;  rm -f '/pro/local/bin/git-for-each-ref' && ln '/pro/local/bin/git' '/pro/local/bin/git-for-each-ref' ;  rm -f '/pro/local/bin/git-fsck' && ln '/pro/local/bin/git' '/pro/local/bin/git-fsck' ;  rm -f '/pro/local/bin/git-gc' && ln '/pro/local/bin/git' '/pro/local/bin/git-gc' ;  rm -f '/pro/local/bin/git-grep' && ln '/p\n ro/local/bin/git' '/pro/local/bin/git-grep' ;  rm -f '/pro/local/bin/git-init-db' && ln '/pro/local/bin/git' '/pro/local/bin/git-init-db' ;  rm -f '/pro/local/bin/git-log' && ln '/pro/local!\n /bin/git' '/pro/local/bin/git-log' ;  rm -f '/pro/local/bin/git-ls-fil\nes' && ln '/pro/local/bin/git' '/pro/local/bin/git-ls-files' ;  rm -f '/pro/local/bin/git-ls-tree' && ln '/pro/local/bin/git' '/pro/local/bin/git-ls-tree' ;  rm -f '/pro/local/bin/git-ls-remote' && ln '/pro/local/bin/git' '/pro/local/bin/git-ls-remote' ;  rm -f '/pro/local/bin/git-mailinfo' && ln '/pro/local/bin/git' '/pro/local/bin/git-mailinfo' ;  rm -f '/pro/local/bin/git-mailsplit' && ln '/pro/local/bin/git' '/pro/local/bin/git-mailsplit' ;  rm -f '/pro/local/bin/git-merge-base' && ln '/pro/local/bin/git' '/pro/local/bin/git-merge-base' ;  rm -f '/pro/local/bin/git-merge-file' && ln '/pro/local/bin/git' '/pro/local/bin/git-merge-file' ;  rm -f '/pro/local/bin/git-merge-ours' && ln '/pro/local/bin/git' '/pro/local/bin/git-merge-ours' ;  rm -f '/pro/local/bin/git-mv' && ln '/pro/local/bi\n n/git' '/pro/local/bin/git-mv' ;  rm -f '/pro/local/bin/git-name-rev' && ln '/pro/local/bin/git' '/pro/local/bin/git-name-rev' ;  rm -f '/pro/local/bin/git-pack-objects' && ln '/pro/local/b!\n in/git' '/pro/local/bin/git-pack-objects' ;  rm -f '/pro/local/bin/git-prune' && ln '/pro/local/bin/git' '/pro/local/bin/git-prune' ;  rm -f '/pro/local/bin/git-prune-packed' && ln '/pro/local/bin/git' '/pro/local/bin/git-prune-packed' ;  rm -f '/pro/local/bin/git-push' && ln '/pro/local/bin/git' '/pro/local/bin/git-push' ;  rm -f '/pro/local/bin/git-read-tree' && ln '/pro/local/bin/git' '/pro/local/bin/git-read-tree' ;  rm -f '/pro/local/bin/git-reflog' && ln '/pro/local/bin/git' '/pro/local/bin/git-reflog' ;  rm -f '/pro/local/bin/git-send-pack' && ln '/pro/local/bin/git' '/pro/local/bin/git-send-pack' ;  rm -f '/pro/local/bin/git-config' && ln '/pro/local/bin/git' '/pro/local/bin/git-config' ;  rm -f '/pro/local/bin/git-rerere' && ln '/pro/local/bin/git' '/pro/local/bin/git-rerere' ;  \n rm -f '/pro/local/bin/git-reset' && ln '/pro/local/bin/git' '/pro/local/bin/git-reset' ;  rm -f '/pro/local/bin/git-rev-list' && ln '/pro/local/bin/git' '/pro/local/bin/git-rev-list' ;  rm !\n -f '/pro/local/bin/git-rev-parse' && ln '/pro/local/bin/git' '/pro/loc\nal/bin/git-rev-parse' ;  rm -f '/pro/local/bin/git-revert' && ln '/pro/local/bin/git' '/pro/local/bin/git-revert' ;  rm -f '/pro/local/bin/git-rm' && ln '/pro/local/bin/git' '/pro/local/bin/git-rm' ;  rm -f '/pro/local/bin/git-shortlog' && ln '/pro/local/bin/git' '/pro/local/bin/git-shortlog' ;  rm -f '/pro/local/bin/git-show-branch' && ln '/pro/local/bin/git' '/pro/local/bin/git-show-branch' ;  rm -f '/pro/local/bin/git-stripspace' && ln '/pro/local/bin/git' '/pro/local/bin/git-stripspace' ;  rm -f '/pro/local/bin/git-symbolic-ref' && ln '/pro/local/bin/git' '/pro/local/bin/git-symbolic-ref' ;  rm -f '/pro/local/bin/git-tag' && ln '/pro/local/bin/git' '/pro/local/bin/git-tag' ;  rm -f '/pro/local/bin/git-tar-tree' && ln '/pro/local/bin/git' '/pro/local/bin/git-tar-tree' ;  rm -f '/pro/loc\n al/bin/git-unpack-objects' && ln '/pro/local/bin/git' '/pro/local/bin/git-unpack-objects' ;  rm -f '/pro/local/bin/git-update-index' && ln '/pro/local/bin/git' '/pro/local/bin/git-update-in!\n dex' ;  rm -f '/pro/local/bin/git-update-ref' && ln '/pro/local/bin/git' '/pro/local/bin/git-update-ref' ;  rm -f '/pro/local/bin/git-upload-archive' && ln '/pro/local/bin/git' '/pro/local/bin/git-upload-archive' ;  rm -f '/pro/local/bin/git-verify-pack' && ln '/pro/local/bin/git' '/pro/local/bin/git-verify-pack' ;  rm -f '/pro/local/bin/git-verify-tag' && ln '/pro/local/bin/git' '/pro/local/bin/git-verify-tag' ;  rm -f '/pro/local/bin/git-write-tree' && ln '/pro/local/bin/git' '/pro/local/bin/git-write-tree' ;  rm -f '/pro/local/bin/git-show-ref' && ln '/pro/local/bin/git' '/pro/local/bin/git-show-ref' ;  rm -f '/pro/local/bin/git-pack-refs' && ln '/pro/local/bin/git' '/pro/local/bin/git-pack-refs' ;\n\n\n-- \nH.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/)\nusing & porting perl 5.6.2, 5.8.x, 5.10.x  on HP-UX 10.20, 11.00, 11.11,\n& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin.       http://qa.perl.org\nhttp://mirrors.develooper.com/hpux/            http://www.test-smoke.org\n                        http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"63609","messageId":"200712181503.10614.jnareb@gmail.com","threadId":"11330","inReplyTo":"20071218143246.2437bfaf@pc09.procura.nl","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2007-12-18T14:03:09Z","receivedAt":"2007-12-18T14:03:09Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> On Tue, 18 Dec 2007 13:32:59 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n>> H.Merijn Brand wrote:\n>>> On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n>>>> \n>>>> What is ./configure output in your case?\n>>  \n>>> /pro/3gl/LINUX/git-2007-12-17 119> cp /pro/3gl/GNU/gcc/r3/gcc-4.2.2/install-sh install-sh\n>> \n>>> -- uncommented the AC_PROG_INSTALL line ...\n>> \n>>> OK, rebuild configure ...\n>>> \n>>> a5:/pro/3gl/LINUX/git-2007-12-17 129> make configure\n>>>     GEN configure\n>>> a5:/pro/3gl/LINUX/git-2007-12-17 130> rm config.{log,status}\n>>> a5:/pro/3gl/LINUX/git-2007-12-17 131> configure --prefix=/pro/local \\\n>>>    --disable-nls --without-iconv --with-perl=/pro/bin/perl >& config-log \n>>> a5:/pro/3gl/LINUX/git-2007-12-17 132> grep -w install config-log config.log config.status\n>>> config-log:checking for a BSD-compatible install... /opt/imake/bin/install -c\n>>> config.log:configure:2218: checking for a BSD-compatible install\n>>> config.log:configure:2273: result: /opt/imake/bin/install -c\n>>> config.log:ac_cv_path_install='/opt/imake/bin/install -c'\n>>> config.status:INSTALL=\"/opt/imake/bin/install -c\"\n>> \n>> Does chosen by ./configure script 'install' binary, namely \n>> /opt/imake/bin/install works correctly, meaning does it install\n>> git correctly?\n> \n> No. I reported this before, but not to the list. This is why I created\n> my own make-install shell:\n\nI though that you were talking about _default_ 'install' program\n(first in PATH). Is /opt/imake/bin/install used below?\n\nI have forgot to tell that beside uncommenting AC_PROG_INSTALL line\nin configure.ac (and doing \"make configure\") you have to also uncomment\nthe \"INSTALL = @INSTALL@\" in config.mak.in for \"make install\" to use\ninstall program found by ./configure script.\n\n> /pro/3gl/LINUX/git-2007-12-17 113> make install\n>     SUBDIR git-gui\n>     INDEX lib/\n>     SUBDIR gitk-git\n> make[1]: Nothing to be done for `all'.\n>     SUBDIR perl\n>     SUBDIR templates\n> install -d -m 755 '/pro/local/bin'\n> rm: /pro/local/bin/ directory\n> Usage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n>        mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n>        mv [-f] [-i] [-e warn|force|ignore] d1 d2\n\nStrange...\n\nBy the way, I have took a look at hos ./configure script chooses which\n'install' to use, and at least for GNU Autoconf 2.59 it does not talk\nabout HP-UX at all, and checks binaries to reject by grepping for\na string, instead of checking if it install files correctly using some\nscript (at least checking if it install files and creates directories,\nand accepts install options used, without checking for correct permissions\nand group, etc.).\n\nRelevant fragment of generated ./configure script\n\n-- >8 -- configure\n\n# Find a good install program.  We prefer a C program (faster),\n# so one script is as good as another.  But avoid the broken or\n# incompatible versions:\n# SysV /etc/install, /usr/sbin/install\n# SunOS /usr/etc/install\n# IRIX /sbin/install\n# AIX /bin/install\n# AmigaOS /C/install, which installs bootblocks on floppy discs\n# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag\n# AFS /usr/afsws/bin/install, which mishandles nonexistent args\n# SVR4 /usr/ucb/install, which tries to use the nonexistent group \"staff\"\n# OS/2's system install, which has a completely different semantic\n# ./install, which can be erroneously created by make from ./install.sh.\necho \"$as_me:$LINENO: checking for a BSD-compatible install\" >&5\necho $ECHO_N \"checking for a BSD-compatible install... $ECHO_C\" >&6\nif test -z \"$INSTALL\"; then\nif test \"${ac_cv_path_install+set}\" = set; then\n  echo $ECHO_N \"(cached) $ECHO_C\" >&6\nelse\n  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\nfor as_dir in $PATH\ndo\n  IFS=$as_save_IFS\n  test -z \"$as_dir\" && as_dir=.\n  # Account for people who put trailing slashes in PATH elements.\ncase $as_dir/ in\n  ./ | .// | /cC/* | \\\n  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \\\n  ?:\\\\/os2\\\\/install\\\\/* | ?:\\\\/OS2\\\\/INSTALL\\\\/* | \\\n  /usr/ucb/* ) ;;\n  *)\n    # OSF1 and SCO ODT 3.0 have their own names for install.\n    # Don't use installbsd from OSF since it installs stuff as root\n    # by default.\n    for ac_prog in ginstall scoinst install; do\n      for ac_exec_ext in '' $ac_executable_extensions; do\n\tif $as_executable_p \"$as_dir/$ac_prog$ac_exec_ext\"; then\n\t  if test $ac_prog = install &&\n\t    grep dspmsg \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n\t    # AIX install.  It has an incompatible calling convention.\n\t    :\n\t  elif test $ac_prog = install &&\n\t    grep pwplus \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n\t    # program-specific install script used by HP pwplus--don't use.\n\t    :\n\t  else\n\t    ac_cv_path_install=\"$as_dir/$ac_prog$ac_exec_ext -c\"\n\t    break 3\n\t  fi\n\tfi\n      done\n    done\n    ;;\nesac\ndone\n\n\nfi\n  if test \"${ac_cv_path_install+set}\" = set; then\n    INSTALL=$ac_cv_path_install\n  else\n    # As a last resort, use the slow shell script.  We don't cache a\n    # path for INSTALL within a source directory, because that will\n    # break other packages using the cache if that directory is\n    # removed, or if the path is relative.\n    INSTALL=$ac_install_sh\n  fi\nfi\necho \"$as_me:$LINENO: result: $INSTALL\" >&5\necho \"${ECHO_T}$INSTALL\" >&6\n\n-- \nJakub Narebski\nPoland\n"},{"id":"63614","messageId":"20071218152739.060af760@pc09.procura.nl","threadId":"11330","inReplyTo":"200712181503.10614.jnareb@gmail.com","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"H.Merijn Brand","fromEmail":"h.m.brand@xs4all.nl","sentAt":"2007-12-18T14:27:39Z","receivedAt":"2007-12-18T14:27:39Z","isPatch":true,"sender":{"key":"h.m.brand@xs4all.nl","avatar":"https://gravatar.com/avatar/5b8f83ee35c427a646cbea3b104346e00ab3663b99bbf435cddeb75cd4b3857b?d=mp&s=160"},"body":"On Tue, 18 Dec 2007 15:03:09 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n\n> On Tue, 18 Dec 2007, H.Merijn Brand wrote:\n> > On Tue, 18 Dec 2007 13:32:59 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n> >> H.Merijn Brand wrote:\n> >>> On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski <jnareb@gmail.com> wrote:\n> >>>> \n> >>>> What is ./configure output in your case?\n> >>  \n> >>> /pro/3gl/LINUX/git-2007-12-17 119> cp /pro/3gl/GNU/gcc/r3/gcc-4.2.2/install-sh install-sh\n> >> \n> >>> -- uncommented the AC_PROG_INSTALL line ...\n> >> \n> >>> OK, rebuild configure ...\n> >>> \n> >>> a5:/pro/3gl/LINUX/git-2007-12-17 129> make configure\n> >>>     GEN configure\n> >>> a5:/pro/3gl/LINUX/git-2007-12-17 130> rm config.{log,status}\n> >>> a5:/pro/3gl/LINUX/git-2007-12-17 131> configure --prefix=/pro/local \\\n> >>>    --disable-nls --without-iconv --with-perl=/pro/bin/perl >& config-log \n> >>> a5:/pro/3gl/LINUX/git-2007-12-17 132> grep -w install config-log config.log config.status\n> >>> config-log:checking for a BSD-compatible install... /opt/imake/bin/install -c\n> >>> config.log:configure:2218: checking for a BSD-compatible install\n> >>> config.log:configure:2273: result: /opt/imake/bin/install -c\n> >>> config.log:ac_cv_path_install='/opt/imake/bin/install -c'\n> >>> config.status:INSTALL=\"/opt/imake/bin/install -c\"\n> >> \n> >> Does chosen by ./configure script 'install' binary, namely \n> >> /opt/imake/bin/install works correctly, meaning does it install\n> >> git correctly?\n> > \n> > No. I reported this before, but not to the list. This is why I created\n> > my own make-install shell:\n> \n> I though that you were talking about _default_ 'install' program\n> (first in PATH). Is /opt/imake/bin/install used below?\n\nYes. There is only ONE install program\n(that is a small lie, there is also /usr/sbin/install, but that is not\n accessible for mortal users)\n\n> I have forgot to tell that beside uncommenting AC_PROG_INSTALL line\n> in configure.ac (and doing \"make configure\") you have to also uncomment\n> the \"INSTALL = @INSTALL@\" in config.mak.in for \"make install\" to use\n> install program found by ./configure script.\n\nBut I don't think it found install-sh.\n\n/pro/3gl/LINUX/git-2007-12-17 103 > grep -w install config-log\nchecking for a BSD-compatible install... /opt/imake/bin/install -c\n\n> > /pro/3gl/LINUX/git-2007-12-17 113> make install\n> >     SUBDIR git-gui\n> >     INDEX lib/\n> >     SUBDIR gitk-git\n> > make[1]: Nothing to be done for `all'.\n> >     SUBDIR perl\n> >     SUBDIR templates\n> > install -d -m 755 '/pro/local/bin'\n> > rm: /pro/local/bin/ directory\n> > Usage: mv [-f] [-i] [-e warn|force|ignore] f1 f2\n> >        mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1\n> >        mv [-f] [-i] [-e warn|force|ignore] d1 d2\n> \n> Strange...\n> \n> By the way, I have took a look at hos ./configure script chooses which\n> 'install' to use, and at least for GNU Autoconf 2.59 it does not talk\n> about HP-UX at all, and checks binaries to reject by grepping for\n> a string, instead of checking if it install files correctly using some\n> script (at least checking if it install files and creates directories,\n> and accepts install options used, without checking for correct permissions\n> and group, etc.).\n> \n> Relevant fragment of generated ./configure script\n\nhttp://www.xs4all.nl/~procura/configure\n\nadded a 'set -x' there:\n\nconfigure: CHECKS for programs\nchecking for C compiler default output file name... a.out\nchecking whether the C compiler works... yes\nchecking whether we are cross compiling... no\nchecking for suffix of executables...\nchecking for suffix of object files... o\nchecking whether we are using the GNU C compiler... yes\nchecking whether gcc accepts -g... yes\nchecking for gcc option to accept ANSI C... none needed\n+ echo configure:2219: checking for a BSD-compatible install\n+ 1>& 5\n+ echo checking for a BSD-compatible install... \\c\n+ 1>& 6\nchecking for a BSD-compatible install... + test -z\n+ test  = set\n+ as_save_IFS=\n\n+ IFS=:\n+ IFS=\n\n+ test -z .\n+ IFS=\n\n+ test -z /u/usr/merijn/bin/private\n+ test -f /u/usr/merijn/bin/private/ginstall\n+ test -f /u/usr/merijn/bin/private/scoinst\n+ test -f /u/usr/merijn/bin/private/install\n+ IFS=\n\netc etc for the rest of the $PATH ...\n\n+ test -z /opt/imake/bin\n+ test -f /opt/imake/bin/ginstall\n+ test -f /opt/imake/bin/scoinst\n+ test -f /opt/imake/bin/install\n+ test install = install\n+ grep dspmsg /opt/imake/bin/install\n+ 1> /dev/null 2>& 1\n+ test install = install\n+ grep pwplus /opt/imake/bin/install\n+ 1> /dev/null 2>& 1\n+ ac_cv_path_install=/opt/imake/bin/install -c\n+ break 3\n+ test set = set\n+ INSTALL=/opt/imake/bin/install -c\n+ echo configure:2274: result: /opt/imake/bin/install -c\n+ 1>& 5\n+ echo /opt/imake/bin/install -c\n+ 1>& 6\n/opt/imake/bin/install -c\n+ exit\n+ exit_status=0\n+ 1>& 5\n+ echo\n+ cat\n+ 0< /var/tmp/sh8180.20\n+ echo\n+ 2>& 1\n+ 2>& 1\n+ sed -n s/'/'\\\\''/g;\n          s/^\\([_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*_cv_[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*\\)=\\(.*\\)/\\1='\\2'/p\n+ echo\n+ cat\n+ 0< /var/tmp/sh8180.21\n+ echo\n+ sort\n+ echo SHELL\n+ eval ac_val=$SHELL\n:\n:\n+ ac_val=o\n+ echo OBJEXT='o'\n+ echo INSTALL_PROGRAM\n+ eval ac_val=$INSTALL_PROGRAM\n+ ac_val=\n+ echo INSTALL_PROGRAM=''\n+ echo INSTALL_SCRIPT\n+ eval ac_val=$INSTALL_SCRIPT\n+ ac_val=\n+ echo INSTALL_SCRIPT=''\n+ echo INSTALL_DATA\n+ eval ac_val=$INSTALL_DATA\n+ ac_val=\n+ echo INSTALL_DATA=''\n+ echo AR\n+ eval ac_val=$AR\n:\n:\n+ echo\n+ test -n\n+ test -s confdefs.h\n+ cat\n+ 0< /var/tmp/sh8180.23\n+ echo\n+ sed /^$/d confdefs.h\n+ sort\n+ echo\n+ test 0 != 0\n+ echo configure: exit 0\n+ rm -f core *.core\n+ rm -rf conftest* confdefs.h conf8180*\n\n\n> -- >8 -- configure\n> \n> # Find a good install program.  We prefer a C program (faster),\n> # so one script is as good as another.  But avoid the broken or\n> # incompatible versions:\n> # SysV /etc/install, /usr/sbin/install\n> # SunOS /usr/etc/install\n> # IRIX /sbin/install\n> # AIX /bin/install\n> # AmigaOS /C/install, which installs bootblocks on floppy discs\n> # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag\n> # AFS /usr/afsws/bin/install, which mishandles nonexistent args\n> # SVR4 /usr/ucb/install, which tries to use the nonexistent group \"staff\"\n> # OS/2's system install, which has a completely different semantic\n> # ./install, which can be erroneously created by make from ./install.sh.\n> echo \"$as_me:$LINENO: checking for a BSD-compatible install\" >&5\n> echo $ECHO_N \"checking for a BSD-compatible install... $ECHO_C\" >&6\n> if test -z \"$INSTALL\"; then\n> if test \"${ac_cv_path_install+set}\" = set; then\n>   echo $ECHO_N \"(cached) $ECHO_C\" >&6\n> else\n>   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR\n> for as_dir in $PATH\n> do\n>   IFS=$as_save_IFS\n>   test -z \"$as_dir\" && as_dir=.\n>   # Account for people who put trailing slashes in PATH elements.\n> case $as_dir/ in\n>   ./ | .// | /cC/* | \\\n>   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \\\n>   ?:\\\\/os2\\\\/install\\\\/* | ?:\\\\/OS2\\\\/INSTALL\\\\/* | \\\n>   /usr/ucb/* ) ;;\n>   *)\n>     # OSF1 and SCO ODT 3.0 have their own names for install.\n>     # Don't use installbsd from OSF since it installs stuff as root\n>     # by default.\n>     for ac_prog in ginstall scoinst install; do\n>       for ac_exec_ext in '' $ac_executable_extensions; do\n> \tif $as_executable_p \"$as_dir/$ac_prog$ac_exec_ext\"; then\n> \t  if test $ac_prog = install &&\n> \t    grep dspmsg \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n> \t    # AIX install.  It has an incompatible calling convention.\n> \t    :\n> \t  elif test $ac_prog = install &&\n> \t    grep pwplus \"$as_dir/$ac_prog$ac_exec_ext\" >/dev/null 2>&1; then\n> \t    # program-specific install script used by HP pwplus--don't use.\n> \t    :\n> \t  else\n> \t    ac_cv_path_install=\"$as_dir/$ac_prog$ac_exec_ext -c\"\n> \t    break 3\n> \t  fi\n> \tfi\n>       done\n>     done\n>     ;;\n> esac\n> done\n> \n> \n> fi\n>   if test \"${ac_cv_path_install+set}\" = set; then\n>     INSTALL=$ac_cv_path_install\n>   else\n>     # As a last resort, use the slow shell script.  We don't cache a\n>     # path for INSTALL within a source directory, because that will\n>     # break other packages using the cache if that directory is\n>     # removed, or if the path is relative.\n>     INSTALL=$ac_install_sh\n>   fi\n> fi\n> echo \"$as_me:$LINENO: result: $INSTALL\" >&5\n> echo \"${ECHO_T}$INSTALL\" >&6\n> \n\n\n-- \nH.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/)\nusing & porting perl 5.6.2, 5.8.x, 5.10.x  on HP-UX 10.20, 11.00, 11.11,\n& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin.       http://qa.perl.org\nhttp://mirrors.develooper.com/hpux/            http://www.test-smoke.org\n                        http://www.goldmark.org/jeff/stupid-disclaimers/\n"},{"id":"64031","messageId":"20071223090145.GB3563@efreet.light.src","threadId":"11330","inReplyTo":"m3tzmgpzlu.fsf@roke.D-201","subject":"Re: [PATCH] Explain what 'ginstall' is","fromName":"Jan Hudec","fromEmail":"bulb@ucw.cz","sentAt":"2007-12-23T09:01:45Z","receivedAt":"2007-12-23T09:01:45Z","isPatch":true,"sender":{"key":"bulb@ucw.cz","avatar":null},"body":"On Mon, Dec 17, 2007 at 17:21:08 -0800, Jakub Narebski wrote:\n> [...]\n> Second, the default autoconf macro AC_PROG_INSTALL *requires* that\n> there is BSD-compatible `install' program (as 'install-sh' or\n> 'install.sh') in the sources.  Adding such script is (I think) not a\n> problem; finding minimal portable[*1*] script is.  So if you know\n> one...\n\nWhat's wrong with the one that comes with automake? It should be portable\nthe insane way ./configure script is -- which should be at least as much as\ngit -- and the license is compatible (MIT/X).\n\n> Footnotes:\n> ----------\n> [*1*] By \"portable\" I mean here 'git portable', i.e. requiring only\n> those shell constructs/features that git require, not necessary\n> insanelt portable the way ./configure script is.\n\n-- \n\t\t\t\t\t\t Jan 'Bulb' Hudec <bulb@ucw.cz>\n"}]}