[Python-checkins] python/dist/src install-sh,2.4,2.5
loewis@users.sourceforge.net
loewis@users.sourceforge.net
Fri, 13 Jun 2003 23:58:34 -0700
Update of /cvsroot/python/python/dist/src
In directory sc8-pr-cvs1:/tmp/cvs-serv25729
Modified Files:
install-sh
Log Message:
Patch #746366: Update to current automake install-sh. Will backport to 2.2.
Index: install-sh
===================================================================
RCS file: /cvsroot/python/python/dist/src/install-sh,v
retrieving revision 2.4
retrieving revision 2.5
diff -C2 -d -r2.4 -r2.5
*** install-sh 10 Feb 2001 20:04:53 -0000 2.4
--- install-sh 14 Jun 2003 06:58:32 -0000 2.5
***************
*** 2,18 ****
#
# install - install a program, script, or datafile
- # This comes from X11R5 (mit/util/scripts/install.sh).
#
! # Copyright 1991 by the Massachusetts Institute of Technology
#
! # Permission to use, copy, modify, distribute, and sell this software and its
! # documentation for any purpose is hereby granted without fee, provided that
! # the above copyright notice appear in all copies and that both that
! # copyright notice and this permission notice appear in supporting
! # documentation, and that the name of M.I.T. not be used in advertising or
! # publicity pertaining to distribution of the software without specific,
! # written prior permission. M.I.T. makes no representations about the
! # suitability of this software for any purpose. It is provided "as is"
! # without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
--- 2,36 ----
#
# install - install a program, script, or datafile
#
! # This originates from X11R5 (mit/util/scripts/install.sh), which was
! # later released in X11R6 (xc/config/util/install.sh) with the
! # following copyright and license.
#
! # Copyright (C) 1994 X Consortium
! #
! # Permission is hereby granted, free of charge, to any person obtaining a copy
! # of this software and associated documentation files (the "Software"), to
! # deal in the Software without restriction, including without limitation the
! # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
! # sell copies of the Software, and to permit persons to whom the Software is
! # furnished to do so, subject to the following conditions:
! #
! # The above copyright notice and this permission notice shall be included in
! # all copies or substantial portions of the Software.
! #
! # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
! # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
! # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
! # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
! # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
! # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
! #
! # Except as contained in this notice, the name of the X Consortium shall not
! # be used in advertising or otherwise to promote the sale, use or other deal-
! # ings in this Software without prior written authorization from the X Consor-
! # tium.
! #
! #
! # FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
***************
*** 57,61 ****
while [ x"$1" != x ]; do
case $1 in
! -c) instcmd="$cpprog"
shift
continue;;
--- 75,79 ----
while [ x"$1" != x ]; do
case $1 in
! -c) instcmd=$cpprog
shift
continue;;
***************
*** 80,84 ****
continue;;
! -s) stripcmd="$stripprog"
shift
continue;;
--- 98,102 ----
continue;;
! -s) stripcmd=$stripprog
shift
continue;;
***************
*** 107,114 ****
if [ x"$src" = x ]
then
! echo "install: no input file specified"
exit 1
else
! true
fi
--- 125,132 ----
if [ x"$src" = x ]
then
! echo "$0: no input file specified" >&2
exit 1
else
! :
fi
***************
*** 116,146 ****
dst=$src
src=""
!
! if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
! instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
! # might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
! if [ -f $src -o -d $src ]
then
! true
else
! echo "install: $src does not exist"
exit 1
fi
!
if [ x"$dst" = x ]
then
! echo "install: no destination specified"
exit 1
else
! true
fi
--- 134,164 ----
dst=$src
src=""
!
! if [ -d "$dst" ]; then
instcmd=:
chmodcmd=""
else
! instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
! # might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
! if [ -f "$src" ] || [ -d "$src" ]
then
! :
else
! echo "$0: $src does not exist" >&2
exit 1
fi
!
if [ x"$dst" = x ]
then
! echo "$0: no destination specified" >&2
exit 1
else
! :
fi
***************
*** 148,161 ****
# does not like double slashes in filenames, you may need to add some logic
! if [ -d $dst ]
then
! dst="$dst"/`basename $src`
else
! true
fi
fi
## this sed command emulates the dirname command
! dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
--- 166,179 ----
# does not like double slashes in filenames, you may need to add some logic
! if [ -d "$dst" ]
then
! dst=$dst/`basename "$src"`
else
! :
fi
fi
## this sed command emulates the dirname command
! dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
***************
*** 164,191 ****
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
! defaultIFS='
! '
! IFS="${IFS-${defaultIFS}}"
! oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
! set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
! IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
! pathcomp="${pathcomp}${1}"
shift
! if [ ! -d "${pathcomp}" ] ;
then
! $mkdirprog "${pathcomp}"
else
! true
fi
! pathcomp="${pathcomp}/"
done
fi
--- 182,209 ----
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
! defaultIFS='
! '
! IFS="${IFS-$defaultIFS}"
! oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
! set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
! IFS=$oIFS
pathcomp=''
while [ $# -ne 0 ] ; do
! pathcomp=$pathcomp$1
shift
! if [ ! -d "$pathcomp" ] ;
then
! $mkdirprog "$pathcomp"
else
! :
fi
! pathcomp=$pathcomp/
done
fi
***************
*** 193,211 ****
if [ x"$dir_arg" != x ]
then
! $doit $instcmd $dst &&
! if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
! if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
! if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
! if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
! if [ x"$transformarg" = x ]
then
! dstfile=`basename $dst`
else
! dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
--- 211,229 ----
if [ x"$dir_arg" != x ]
then
! $doit $instcmd "$dst" &&
! if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
! if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
! if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
! if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
! if [ x"$transformarg" = x ]
then
! dstfile=`basename "$dst"`
else
! dstfile=`basename "$dst" $transformbasename |
sed $transformarg`$transformbasename
fi
***************
*** 213,232 ****
# don't allow the sed command to completely eliminate the filename
! if [ x"$dstfile" = x ]
then
! dstfile=`basename $dst`
else
! true
fi
! # Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
! # Move or copy the file name to the temp name
! $doit $instcmd $src $dsttmp &&
! trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
--- 231,254 ----
# don't allow the sed command to completely eliminate the filename
! if [ x"$dstfile" = x ]
then
! dstfile=`basename "$dst"`
else
! :
fi
! # Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/#inst.$$#
+ rmtmp=$dstdir/#rm.$$#
! # Trap to clean up temp files at exit.
! trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
! trap '(exit $?); exit' 1 2 13 15
! # Move or copy the file name to the temp name
!
! $doit $instcmd "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits
***************
*** 236,251 ****
# errors from the above "$doit $instcmd $src $dsttmp" command.
! if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
! if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
! if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
! if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
! $doit $rmcmd -f $dstdir/$dstfile &&
! $doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
! exit 0
--- 258,294 ----
# errors from the above "$doit $instcmd $src $dsttmp" command.
! if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
! if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
! if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
! if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
!
! # Now remove or move aside any old file at destination location. We try this
! # two ways since rm can't unlink itself on some systems and the destination
! # file might be busy for other reasons. In this case, the final cleanup
! # might fail but the new file should still install successfully.
!
! {
! if [ -f "$dstdir/$dstfile" ]
! then
! $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
! $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
! {
! echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
! (exit 1); exit
! }
! else
! :
! fi
! } &&
# Now rename the file to the real destination.
! $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
fi &&
+ # The final little trick to "correctly" pass the exit status to the exit trap.
! {
! (exit 0); exit
! }