[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
! }