diff options
author | jlam <jlam> | 2007-06-20 16:26:20 +0000 |
---|---|---|
committer | jlam <jlam> | 2007-06-20 16:26:20 +0000 |
commit | b69f86c2adecc4f5d7fd57a1272a3459b5803620 (patch) | |
tree | 2210b0d48412c8c5ff29519453d07d9e508ec683 /regress | |
parent | a3dafc6e85f3aced83caeb05d7ba6d1e4dccbb5d (diff) | |
download | pkgsrc-b69f86c2adecc4f5d7fd57a1272a3459b5803620.tar.gz |
Test the install-sh script from sysutils/install-sh instead of the local
one (which has actually migrated to sysutils/install-sh as of 20070620).
Diffstat (limited to 'regress')
-rw-r--r-- | regress/bootstrap-install-sh/Makefile | 18 | ||||
-rwxr-xr-x | regress/bootstrap-install-sh/files/install-sh | 284 |
2 files changed, 12 insertions, 290 deletions
diff --git a/regress/bootstrap-install-sh/Makefile b/regress/bootstrap-install-sh/Makefile index b56cb7a736d..69618c67e1e 100644 --- a/regress/bootstrap-install-sh/Makefile +++ b/regress/bootstrap-install-sh/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.2 2005/12/17 05:20:23 jlam Exp $ +# $NetBSD: Makefile,v 1.3 2007/06/20 16:26:20 jlam Exp $ DISTNAME= bootstrap-install-sh-0.0 CATEGORIES= regress @@ -7,19 +7,25 @@ MASTER_SITES= # empty DISTFILES= # empty MAINTAINER= jlam@pkgsrc.org -COMMENT= Test functionality of bootstrap install-sh +COMMENT= Test functionality of sysutils/install-sh EXTRACT_ONLY= # empty -NO_CONFIGURE= yes +NO_CHECKSUM= yes +NO_BUILD= yes NO_INSTALL= yes NO_PACKAGE= yes INSTALL_SH= ${WRKSRC}/install-sh -regress: extract post-extract: - ${CP} ${FILESDIR}/install-sh ${INSTALL_SH} - ${CHMOD} +x ${INSTALL_SH} + ${CP} ${PKGSRCDIR}/sysutils/install-sh/files/install-sh.in ${WRKSRC} + +do-configure: + ${SED} -e "s|@DEFAULT_INSTALL_MODE@|"${PKGDIRMODE}"|g" \ + ${WRKSRC}/install-sh.in > ${WRKSRC}/install-sh + ${CHMOD} +x ${WRKSRC}/install-sh + +regress: configure # create one directory using -d regress: test-d1 diff --git a/regress/bootstrap-install-sh/files/install-sh b/regress/bootstrap-install-sh/files/install-sh deleted file mode 100755 index 89c1e37e3d4..00000000000 --- a/regress/bootstrap-install-sh/files/install-sh +++ /dev/null @@ -1,284 +0,0 @@ -#!/bin/sh -# -# $NetBSD: install-sh,v 1.1.1.1 2005/05/08 09:51:26 jlam Exp $ -# This script now also installs multiple files, but might choke on installing -# multiple files with spaces in the file names. -# -# 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 -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 755" -chowncmd="" -chgrpcmd="" -stripcmd="" -stripflags="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -msrc="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -S) stripcmd="$stripprog" - stripflags="-S $2 $stripflags" - shift - shift - continue;; - - -t=*) transformarg=`echo "$1" | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo "$1" | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$msrc" = x ] - then - msrc="$dst" - else - msrc="$msrc $dst" - fi - src="$dst" - dst="$1" - shift - continue;; - esac -done - -if [ x"$dir_arg" = x ] -then - dstisfile="" - if [ ! -d "$dst" ] - then - if [ x"$msrc" = x"$src" ] - then - dstisfile=true - else - echo "install: destination is not a directory" - exit 1 - fi - fi -else - msrc="$msrc $dst" -fi - -if [ x"$msrc" = x ] -then - echo "install: no destination specified" - exit 1 -fi - -for srcarg in $msrc; do - -if [ x"$dir_arg" != x ]; then - - dstarg="$srcarg" -else - dstarg="$dst" - -# Waiting for this to be detected by the "$instcmd $srcarg $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$srcarg" ] - then - doinst="$instcmd" - elif [ -d "$srcarg" ] - then - echo "install: $srcarg: not a regular file" - exit 1 - elif [ "$srcarg" = "/dev/null" ] - then - doinst="$cpprog" - else - echo "install: $srcarg does not exist" - exit 1 - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dstarg" ] - then - dstarg="$dstarg"/`basename "$srcarg"` - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dstarg" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# 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 - $doit $mkdirprog "${pathcomp}" - if [ x"$chowncmd" != x ]; then $doit $chowncmd "${pathcomp}"; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "${pathcomp}"; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "${pathcomp}"; else true ; fi - - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - - if [ x"$dir_arg" != x ] - then - if [ -d "$dstarg" ]; then - true - else - $doit $mkdirprog "$dstarg" && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dstarg"; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dstarg"; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dstarg"; else true ; fi - fi - else - -# If we're going to rename the final file, determine the name now. - - if [ x"$dstisfile" = x ] - then - file=$srcarg - else - file=$dst - fi - - if [ x"$transformarg" = x ] - then - dstfile=`basename "$file"` - else - dstfile=`basename "$file" "$transformbasename" | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename "$file"` - 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 $doinst $srcarg "$dsttmp" && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# 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 $stripflags "$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 - -done && - - -exit 0 |