From: Andy Dougherty <hidden> Date: 2016-06-15 22:44:00
While trying git out on Solaris 8, the 'make install' step failed because
I don't have a 'ginstall' command. After puzzling over it for a while,
I finally figured out that
a) it's referring to the 'install' command that is now part of the
GNU coreutils package, and
b) it's probably unnecessary, as using the Solaris install command
gave me the same results. (However, I didn't do anything fancy,
so it may be that in some scenarios using 'ginstall' matters.
I didn't do anything other than a very simple test.)
Anyway, this patch documents it a tiny bit more. Perhaps configure
should just go looking for a suitable install program instead of
assuming everyone has one.
@@ -416,6 +416,9 @@NO_STRLCPY=YesPleaseNO_MEMMEM=YesPleaseendif+# For SunOS, this assumes you have ginstall from the+# GNU coreutils package. It's not clear whether that+# is actually necessary.ifeq ($(uname_S),SunOS)NEEDS_SOCKET=YesPleaseNEEDS_NSL=YesPlease
From: Jakub Narebski <hidden> Date: 2016-06-15 22:44:00
Andy Dougherty [off-list ref] writes:
[...]. Perhaps configure
should just go looking for a suitable install program instead of
assuming everyone has one.
First, configure is, and (I think) consensus is that it should remain
optional. This means that Makefile "guess" section should have good
defaults for your operating system.
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem; finding minimal portable[*1*] script is. So if you know
one...
Footnotes:
----------
[*1*] By "portable" I mean here 'git portable', i.e. requiring only
those shell constructs/features that git require, not necessary
insanelt portable the way ./configure script is.
--
Jakub Narebski
Poland
ShadeHawk on #git
On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski [off-list ref]
wrote:
Andy Dougherty [off-list ref] writes:
quoted
[...]. Perhaps configure
should just go looking for a suitable install program instead of
assuming everyone has one.
First, configure is, and (I think) consensus is that it should remain
optional. This means that Makefile "guess" section should have good
defaults for your operating system.
And what if you OS *does* have an install, but one that is completely
useless^Wdifferent from the GNU install? Like the utterly useless
install on HP-UX.
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem;
Yeah!
finding minimal portable[*1*] script is. So if you know one...
Footnotes:
----------
[*1*] By "portable" I mean here 'git portable', i.e. requiring only
those shell constructs/features that git require, not necessary
insanelt portable the way ./configure script is.
Something like this? (gui part still missing). This is what I now
use
--8<--- make-install
#!/bin/sh
PREFIX=/pro/local
BINDIR=$PREFIX/bin
SHARED=$PREFIX/share
for p in 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-add--interactive git-archimport \
git-cvsimport git-relink git-cvsserver git-remote git-cvsexportcommit \
git-send-email git-svn git-instaweb git-merge-subtree ; do
rm -f $BINDIR/$p
cp $p $BINDIR
chmod 755 $BINDIR/$p
done
cp git $BINDIR
cd templates
rm -rf $SHARED/git-core
mkdir $SHARED/git-core
mkdir $SHARED/git-core/templates
(cd blt && tar cf - .) | (cd $SHARED/git-core/templates/ && tar xf -)
cd ..
cd perl
make
make install UNINST=1
cd ..
for p in git-format-patch git-show git-whatchanged git-cherry \
git-get-tar-commit-id git-init git-repo-config git-fsck-objects \
git-cherry-pick git-peek-remote git-status git-add git-annotate \
git-apply git-archive git-blame git-branch git-bundle git-cat-file \
git-check-attr git-checkout-index git-check-ref-format git-clean \
git-commit git-commit-tree git-count-objects git-describe git-diff \
git-diff-files git-diff-index git-diff-tree git-fast-export \
git-fetch git-fetch-pack git-fetch--tool git-fmt-merge-msg \
git-for-each-ref git-fsck git-gc git-grep git-init-db git-log \
git-ls-files git-ls-tree git-ls-remote git-mailinfo git-mailsplit \
git-merge-base git-merge-file git-merge-ours git-mv git-name-rev \
git-pack-objects git-prune git-prune-packed git-push git-read-tree \
git-reflog git-send-pack git-config git-rerere git-reset \
git-rev-list git-rev-parse git-revert git-rm git-shortlog \
git-show-branch git-stripspace git-symbolic-ref git-tag git-tar-tree \
git-unpack-objects git-update-index git-update-ref \
git-upload-archive git-verify-pack git-verify-tag git-write-tree \
git-show-ref git-pack-refs ; do
rm -f $BINDIR/$p
ln $BINDIR/git $BINDIR/$p
done
-->8---
--
H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.10.x on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin. http://qa.perl.orghttp://mirrors.develooper.com/hpux/http://www.test-smoke.orghttp://www.goldmark.org/jeff/stupid-disclaimers/
From: Jakub Narebski <hidden> Date: 2016-06-15 22:44:00
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:
quoted
Andy Dougherty [off-list ref] writes:
quoted
[...]. Perhaps configure
should just go looking for a suitable install program instead of
assuming everyone has one.
First, configure is, and (I think) consensus is that it should remain
optional. This means that Makefile "guess" section should have good
defaults for your operating system.
And what if you OS *does* have an install, but one that is completely
useless^Wdifferent from the GNU install? Like the utterly useless
install on HP-UX.
Then "guess" section should have INSTALL=ginstall, or something.
Or just install with
INSTALL=/opt/bin/ginstall make install
or something like that.
quoted
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem;
Yeah!
quoted
finding minimal portable[*1*] script is. So if you know one...
Footnotes:
----------
[*1*] By "portable" I mean here 'git portable', i.e. requiring only
those shell constructs/features that git require, not necessary
insanelt portable the way ./configure script is.
Something like this? (gui part still missing). This is what I now
use
--8<--- make-install
Errr... please read more carefully. There is need for BSD-compatibile
`install` program as 'install-sh', not 'make-install' script. The idea
is to use system-provided 'install' if it exists and is compatibile,
because it should be faster than script version, and fallback to
provided install-sh only if system install is not found.
install-sh has to understand '-d' and '-m <mode>' switches for git
install purposes, and probably implement all three (src dest, src dir,
dir) formats.
--
Jakub Narebski
Poland
On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski [off-list ref] wrote:
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:
quoted
Andy Dougherty [off-list ref] writes:
quoted
[...]. Perhaps configure
should just go looking for a suitable install program instead of
assuming everyone has one.
First, configure is, and (I think) consensus is that it should remain
optional. This means that Makefile "guess" section should have good
defaults for your operating system.
And what if you OS *does* have an install, but one that is completely
useless^Wdifferent from the GNU install? Like the utterly useless
install on HP-UX.
Then "guess" section should have INSTALL=ginstall, or something.
Or just install with
INSTALL=/opt/bin/ginstall make install
Chances are close to zero that HP-UX systems have installed any working
or compliant version of install
or something like that.
quoted
quoted
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem;
Yeah!
quoted
finding minimal portable[*1*] script is. So if you know one...
Footnotes:
----------
[*1*] By "portable" I mean here 'git portable', i.e. requiring only
those shell constructs/features that git require, not necessary
insanelt portable the way ./configure script is.
Something like this? (gui part still missing). This is what I now
use
--8<--- make-install
Errr... please read more carefully. There is need for BSD-compatibile
`install` program as 'install-sh', not 'make-install' script. The idea
is to use system-provided 'install' if it exists and is compatibile,
There lies the problem. HP-UX does have an 'install', but it is not
compatible, and chances are (very) small that people have installed
the GNU or any other BSD compliant install.
because it should be faster than script version, and fallback to
provided install-sh only if system install is not found.
The problem again. It *does* find install, but it turns out to be
unusable.
install-sh has to understand '-d' and '-m <mode>' switches for git
install purposes, and probably implement all three (src dest, src dir,
dir) formats.
BTW the same, but worse exists for the 'patch' program. On HP-UX there
is a program called 'patch' which is used for system upgrades, but it
has nothing to do with the patch util the rest of the world so happily
uses.
So far that is used in a few places in the test suite, but I heared it
would not be too hard to eliminate the use of the hard-coded patch util
--
H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.10.x on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin. http://qa.perl.orghttp://mirrors.develooper.com/hpux/http://www.test-smoke.orghttp://www.goldmark.org/jeff/stupid-disclaimers/
From: Jakub Narebski <hidden> Date: 2016-06-15 22:44:00
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski [off-list ref] wrote:
quoted
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:
quoted
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem; finding minimal portable[*1*] script is.
So if you know one...
[...]. There is need for BSD-compatibile
`install` program as 'install-sh', not 'make-install' script. The idea
is to use system-provided 'install' if it exists and is compatibile,
There lies the problem. HP-UX does have an 'install', but it is not
compatible, and chances are (very) small that people have installed
the GNU or any other BSD compliant install.
quoted
because it should be faster than script version, and fallback to
provided install-sh only if system install is not found.
The problem again. It *does* find install, but it turns out to be
unusable.
Could you check if ./configure correctly uses install-sh in your case?
Copy install-sh from for example autotools[*1*] (e.g. libtool has one)
to the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,
generate configure script using "make configure" and check what
./configure chooses.
In my case it is:
$ cp /usr/share/libtool/install-sh .
$ make configure
GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty
GEN configure
$ ./configure
configure: CHECKS for programs
[...]
checking for a BSD-compatible install... /usr/bin/install -c
What is ./configure output in your case?
Footnotes:
----------
[*1*] Or for example http://svn.scheffers.net/zlib/tclconfig/install-sh
which is smaller (2189 bytes vs. 9233 autotools one, or 10970 from
kapptemplate (kdesdk 3.5.3)).
--
Jakub Narebski
Poland
On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski [off-list ref] wrote:
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski [off-list ref] wrote:
quoted
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:
quoted
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem; finding minimal portable[*1*] script is.
So if you know one...
[...]. There is need for BSD-compatibile
`install` program as 'install-sh', not 'make-install' script. The idea
is to use system-provided 'install' if it exists and is compatibile,
There lies the problem. HP-UX does have an 'install', but it is not
compatible, and chances are (very) small that people have installed
the GNU or any other BSD compliant install.
quoted
because it should be faster than script version, and fallback to
provided install-sh only if system install is not found.
The problem again. It *does* find install, but it turns out to be
unusable.
Could you check if ./configure correctly uses install-sh in your case?
Copy install-sh from for example autotools[*1*] (e.g. libtool has one)
to the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,
generate configure script using "make configure" and check what
./configure chooses.
In my case it is:
$ cp /usr/share/libtool/install-sh .
$ make configure
GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty
GEN configure
$ ./configure
configure: CHECKS for programs
[...]
checking for a BSD-compatible install... /usr/bin/install -c
What is ./configure output in your case?
From: Jakub Narebski <hidden> Date: 2016-06-15 22:44:00
H.Merijn Brand wrote:
On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski [off-list ref] wrote:
quoted
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski [off-list ref] wrote:
quoted
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:
quoted
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem; finding minimal portable[*1*] script is.
So if you know one...
[...]. There is need for BSD-compatibile
`install` program as 'install-sh', not 'make-install' script. The idea
is to use system-provided 'install' if it exists and is compatibile,
There lies the problem. HP-UX does have an 'install', but it is not
compatible, and chances are (very) small that people have installed
the GNU or any other BSD compliant install.
quoted
because it should be faster than script version, and fallback to
provided install-sh only if system install is not found.
The problem again. It *does* find install, but it turns out to be
unusable.
Could you check if ./configure correctly uses install-sh in your case?
Copy install-sh from for example autotools[*1*] (e.g. libtool has one)
to the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,
generate configure script using "make configure" and check what
./configure chooses.
In my case it is:
$ cp /usr/share/libtool/install-sh .
$ make configure
GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty
GEN configure
$ ./configure
configure: CHECKS for programs
[...]
checking for a BSD-compatible install... /usr/bin/install -c
What is ./configure output in your case?
OK, rebuild configure ...
a5:/pro/3gl/LINUX/git-2007-12-17 129> make configure
GEN configure
a5:/pro/3gl/LINUX/git-2007-12-17 130> rm config.{log,status}
a5:/pro/3gl/LINUX/git-2007-12-17 131> configure --prefix=/pro/local --disable-nls --without-iconv --with-perl=/pro/bin/perl> & config-log
a5:/pro/3gl/LINUX/git-2007-12-17 132> grep -w install config-log config.log config.status
config-log:checking for a BSD-compatible install... /opt/imake/bin/install -c
config.log:configure:2218: checking for a BSD-compatible install
config.log:configure:2273: result: /opt/imake/bin/install -c
config.log:ac_cv_path_install='/opt/imake/bin/install -c'
config.status:INSTALL="/opt/imake/bin/install -c"
Does chosen by ./configure script 'install' binary, namely
/opt/imake/bin/install works correctly, meaning does it install
git correctly?
--
Jakub Narebski
Poland
On Tue, 18 Dec 2007 13:32:59 +0100, Jakub Narebski [off-list ref] wrote:
H.Merijn Brand wrote:
quoted
On Tue, 18 Dec 2007 10:14:38 +0100, Jakub Narebski [off-list ref] wrote:
quoted
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Tue, 18 Dec 2007 09:20:38 +0100, Jakub Narebski [off-list ref] wrote:
quoted
On Tue, 18 Dec 2007, H.Merijn Brand wrote:
quoted
On Mon, 17 Dec 2007 17:21:08 -0800 (PST), Jakub Narebski wrote:
quoted
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem; finding minimal portable[*1*] script is.
So if you know one...
[...]. There is need for BSD-compatibile
`install` program as 'install-sh', not 'make-install' script. The idea
is to use system-provided 'install' if it exists and is compatibile,
There lies the problem. HP-UX does have an 'install', but it is not
compatible, and chances are (very) small that people have installed
the GNU or any other BSD compliant install.
quoted
because it should be faster than script version, and fallback to
provided install-sh only if system install is not found.
The problem again. It *does* find install, but it turns out to be
unusable.
Could you check if ./configure correctly uses install-sh in your case?
Copy install-sh from for example autotools[*1*] (e.g. libtool has one)
to the git sources, uncomment line with AC_PROG_INSTALL in configure.ac,
generate configure script using "make configure" and check what
./configure chooses.
In my case it is:
$ cp /usr/share/libtool/install-sh .
$ make configure
GIT_VERSION = 1.5.4.rc0.56.g6fbe-dirty
GEN configure
$ ./configure
configure: CHECKS for programs
[...]
checking for a BSD-compatible install... /usr/bin/install -c
What is ./configure output in your case?
OK, rebuild configure ...
a5:/pro/3gl/LINUX/git-2007-12-17 129> make configure
GEN configure
a5:/pro/3gl/LINUX/git-2007-12-17 130> rm config.{log,status}
a5:/pro/3gl/LINUX/git-2007-12-17 131> configure --prefix=/pro/local \
--disable-nls --without-iconv --with-perl=/pro/bin/perl >& config-log
a5:/pro/3gl/LINUX/git-2007-12-17 132> grep -w install config-log config.log config.status
config-log:checking for a BSD-compatible install... /opt/imake/bin/install -c
config.log:configure:2218: checking for a BSD-compatible install
config.log:configure:2273: result: /opt/imake/bin/install -c
config.log:ac_cv_path_install='/opt/imake/bin/install -c'
config.status:INSTALL="/opt/imake/bin/install -c"
Does chosen by ./configure script 'install' binary, namely
/opt/imake/bin/install works correctly, meaning does it install
git correctly?
No. I reported this before, but not to the list. This is why I created
my own make-install shell:
I though that you were talking about _default_ 'install' program
(first in PATH). Is /opt/imake/bin/install used below?
I have forgot to tell that beside uncommenting AC_PROG_INSTALL line
in configure.ac (and doing "make configure") you have to also uncomment
the "INSTALL = @INSTALL@" in config.mak.in for "make install" to use
install program found by ./configure script.
/pro/3gl/LINUX/git-2007-12-17 113> make install
SUBDIR git-gui
INDEX lib/
SUBDIR gitk-git
make[1]: Nothing to be done for `all'.
SUBDIR perl
SUBDIR templates
install -d -m 755 '/pro/local/bin'
rm: /pro/local/bin/ directory
Usage: mv [-f] [-i] [-e warn|force|ignore] f1 f2
mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1
mv [-f] [-i] [-e warn|force|ignore] d1 d2
Strange...
By the way, I have took a look at hos ./configure script chooses which
'install' to use, and at least for GNU Autoconf 2.59 it does not talk
about HP-UX at all, and checks binaries to reject by grepping for
a string, instead of checking if it install files correctly using some
script (at least checking if it install files and creates directories,
and accepts install options used, without checking for correct permissions
and group, etc.).
Relevant fragment of generated ./configure script
-- >8 -- configure
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
# Account for people who put trailing slashes in PATH elements.
case $as_dir/ in
./ | .// | /cC/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
fi
done
done
;;
esac
done
fi
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. We don't cache a
# path for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the path is relative.
INSTALL=$ac_install_sh
fi
fi
echo "$as_me:$LINENO: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
--
Jakub Narebski
Poland
OK, rebuild configure ...
a5:/pro/3gl/LINUX/git-2007-12-17 129> make configure
GEN configure
a5:/pro/3gl/LINUX/git-2007-12-17 130> rm config.{log,status}
a5:/pro/3gl/LINUX/git-2007-12-17 131> configure --prefix=/pro/local \
--disable-nls --without-iconv --with-perl=/pro/bin/perl >& config-log
a5:/pro/3gl/LINUX/git-2007-12-17 132> grep -w install config-log config.log config.status
config-log:checking for a BSD-compatible install... /opt/imake/bin/install -c
config.log:configure:2218: checking for a BSD-compatible install
config.log:configure:2273: result: /opt/imake/bin/install -c
config.log:ac_cv_path_install='/opt/imake/bin/install -c'
config.status:INSTALL="/opt/imake/bin/install -c"
Does chosen by ./configure script 'install' binary, namely
/opt/imake/bin/install works correctly, meaning does it install
git correctly?
No. I reported this before, but not to the list. This is why I created
my own make-install shell:
I though that you were talking about _default_ 'install' program
(first in PATH). Is /opt/imake/bin/install used below?
Yes. There is only ONE install program
(that is a small lie, there is also /usr/sbin/install, but that is not
accessible for mortal users)
I have forgot to tell that beside uncommenting AC_PROG_INSTALL line
in configure.ac (and doing "make configure") you have to also uncomment
the "INSTALL = @INSTALL@" in config.mak.in for "make install" to use
install program found by ./configure script.
But I don't think it found install-sh.
/pro/3gl/LINUX/git-2007-12-17 103 > grep -w install config-log
checking for a BSD-compatible install... /opt/imake/bin/install -c
quoted
/pro/3gl/LINUX/git-2007-12-17 113> make install
SUBDIR git-gui
INDEX lib/
SUBDIR gitk-git
make[1]: Nothing to be done for `all'.
SUBDIR perl
SUBDIR templates
install -d -m 755 '/pro/local/bin'
rm: /pro/local/bin/ directory
Usage: mv [-f] [-i] [-e warn|force|ignore] f1 f2
mv [-f] [-i] [-e warn|force|ignore] f1 ... fn d1
mv [-f] [-i] [-e warn|force|ignore] d1 d2
Strange...
By the way, I have took a look at hos ./configure script chooses which
'install' to use, and at least for GNU Autoconf 2.59 it does not talk
about HP-UX at all, and checks binaries to reject by grepping for
a string, instead of checking if it install files correctly using some
script (at least checking if it install files and creates directories,
and accepts install options used, without checking for correct permissions
and group, etc.).
Relevant fragment of generated ./configure script
http://www.xs4all.nl/~procura/configure
added a 'set -x' there:
configure: CHECKS for programs
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
+ echo configure:2219: checking for a BSD-compatible install
+ 1>& 5
+ echo checking for a BSD-compatible install... \c
+ 1>& 6
checking for a BSD-compatible install... + test -z
+ test = set
+ as_save_IFS=
+ IFS=:
+ IFS=
+ test -z .
+ IFS=
+ test -z /u/usr/merijn/bin/private
+ test -f /u/usr/merijn/bin/private/ginstall
+ test -f /u/usr/merijn/bin/private/scoinst
+ test -f /u/usr/merijn/bin/private/install
+ IFS=
etc etc for the rest of the $PATH ...
+ test -z /opt/imake/bin
+ test -f /opt/imake/bin/ginstall
+ test -f /opt/imake/bin/scoinst
+ test -f /opt/imake/bin/install
+ test install = install
+ grep dspmsg /opt/imake/bin/install
+ 1> /dev/null 2>& 1
+ test install = install
+ grep pwplus /opt/imake/bin/install
+ 1> /dev/null 2>& 1
+ ac_cv_path_install=/opt/imake/bin/install -c
+ break 3
+ test set = set
+ INSTALL=/opt/imake/bin/install -c
+ echo configure:2274: result: /opt/imake/bin/install -c
+ 1>& 5
+ echo /opt/imake/bin/install -c
+ 1>& 6
/opt/imake/bin/install -c
+ exit
+ exit_status=0
+ 1>& 5
+ echo
+ cat
+ 0< /var/tmp/sh8180.20
+ echo
+ 2>& 1
+ 2>& 1
+ sed -n s/'/'\\''/g;
s/^\([_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*_cv_[_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]*\)=\(.*\)/\1='\2'/p
+ echo
+ cat
+ 0< /var/tmp/sh8180.21
+ echo
+ sort
+ echo SHELL
+ eval ac_val=$SHELL
:
:
+ ac_val=o
+ echo OBJEXT='o'
+ echo INSTALL_PROGRAM
+ eval ac_val=$INSTALL_PROGRAM
+ ac_val=
+ echo INSTALL_PROGRAM=''
+ echo INSTALL_SCRIPT
+ eval ac_val=$INSTALL_SCRIPT
+ ac_val=
+ echo INSTALL_SCRIPT=''
+ echo INSTALL_DATA
+ eval ac_val=$INSTALL_DATA
+ ac_val=
+ echo INSTALL_DATA=''
+ echo AR
+ eval ac_val=$AR
:
:
+ echo
+ test -n
+ test -s confdefs.h
+ cat
+ 0< /var/tmp/sh8180.23
+ echo
+ sed /^$/d confdefs.h
+ sort
+ echo
+ test 0 != 0
+ echo configure: exit 0
+ rm -f core *.core
+ rm -rf conftest* confdefs.h conf8180*
-- >8 -- configure
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
# Account for people who put trailing slashes in PATH elements.
case $as_dir/ in
./ | .// | /cC/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
break 3
fi
fi
done
done
;;
esac
done
fi
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. We don't cache a
# path for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the path is relative.
INSTALL=$ac_install_sh
fi
fi
echo "$as_me:$LINENO: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
From: Jan Hudec <hidden> Date: 2016-06-15 22:44:01
On Mon, Dec 17, 2007 at 17:21:08 -0800, Jakub Narebski wrote:
[...]
Second, the default autoconf macro AC_PROG_INSTALL *requires* that
there is BSD-compatible `install' program (as 'install-sh' or
'install.sh') in the sources. Adding such script is (I think) not a
problem; finding minimal portable[*1*] script is. So if you know
one...
What's wrong with the one that comes with automake? It should be portable
the insane way ./configure script is -- which should be at least as much as
git -- and the license is compatible (MIT/X).
Footnotes:
----------
[*1*] By "portable" I mean here 'git portable', i.e. requiring only
those shell constructs/features that git require, not necessary
insanelt portable the way ./configure script is.