Re: [PATCH] Revert "build: Use the original install-sh file from SGI"

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Tue, Jun 29, 2021 at 09:32:47AM +0200, Vyacheslav Yurkov wrote:
> From: Vyacheslav Yurkov <Vyacheslav.Yurkov@xxxxxxxxxx>
> 
> This reverts commit da7916f72206750cce0d0d306d3ba9094a375880.
> 
> Old install-sh fails in cross-compilation environments like yocto.

This install-sh has been used for performance reason, I'd like keep it
if possible. Would you please describe the failures you hit in
cross-compilation env? It'd be great if we could fix the env issue.

Thanks,
Eryu

> 
> Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@xxxxxxxxxx>
> ---
>  Makefile           |   1 -
>  include/install-sh | 352 ---------------------------------------------
>  2 files changed, 353 deletions(-)
>  delete mode 100755 include/install-sh
> 
> diff --git a/Makefile b/Makefile
> index 86a2d399..c52daeb8 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -61,7 +61,6 @@ endif
>  
>  configure: configure.ac
>  	libtoolize -cfi
> -	cp include/install-sh .
>  	aclocal -I m4
>  	autoheader
>  	autoconf
> diff --git a/include/install-sh b/include/install-sh
> deleted file mode 100755
> index a19cbe31..00000000
> --- a/include/install-sh
> +++ /dev/null
> @@ -1,352 +0,0 @@
> -#! /bin/bash
> -#
> -# SPDX-License-Identifier: GPL-2.0
> -# Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
> -#
> -# This script emulates bsd install and also recognises
> -# two environment variables, with the following semantics :-
> -#
> -# $DIST_MANIFEST - if set, the name of the file to append manifest
> -#                  information in the following format:
> -#                  File     :  f mode owner group src target
> -#                  Directory:  d mode owner group target
> -#                  Symlink  :  l linkval target
> -#
> -# $DIST_ROOT     - if set, prepend to target
> -#
> -# The sematics of all combinations of these two variables
> -# are as follows:
> -#
> -# $DIST_MANIFEST?  $DIST_ROOT? |   Copy?  Append Manifest?
> -# -----------------------------+--------------------------
> -#       not set       not set  |    yes        no
> -#       not set       set      |    yes        no
> -#       set           not set  |    no         yes
> -#       set           set      |    yes        yes
> -#
> -_usage() {
> -    echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory"
> -    echo "or     $prog [-D] [-o owner] [-g group] [-m mode] file directory/file"
> -    echo "or     $prog [-o owner] [-g group] [-m mode] file [file ...] directory"
> -    echo "or     $prog -S file target  (creates \"target\" symlink)"
> -    echo "or     $prog -T lt_arg [-o owner] [-g group] [-m mode] libtool.lai directory"
> -    echo ""
> -    echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the"
> -    echo "behaviour of this command - see comments in the script."
> -    echo "The -D flag is only available for the second usage, and causes"
> -    echo "the target directory to be created before installing the file."
> -    echo ""
> -    exit 1
> -}
> -
> -_chown ()
> -{
> -    _st=255
> -    if [ $# -eq 3 ] ; then
> -	chown $1:$2 $3
> -	_st=$?
> -	if [ $_st -ne 0 ] ; then
> -	    if [ $REAL_UID != '0' ] ; then
> -		if [ ! -f $DIST_ROOT/.chown.quiet ] ; then
> -		    echo '==============================================='
> -		    echo Ownership of files under ${DIST_ROOT:-/}
> -		    echo cannot be changed
> -		    echo '==============================================='
> -		    if [ -n "$DIST_ROOT" ] ; then
> -			touch $DIST_ROOT/.chown.quiet
> -		    fi
> -		fi
> -	       _st=0
> -	    fi
> -	fi
> -    fi
> -
> -    return $_st
> -}
> -
> -
> -_manifest ()
> -{
> -    echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null}
> -}
> -
> -prog=`basename $0`
> -HERE=`pwd`
> -dflag=false
> -Dflag=false
> -Sflag=false
> -Tflag=false
> -DIRMODE=755
> -FILEMODE=644
> -OWNER=`id -u`
> -GROUP=`id -g`
> -REAL_UID=$OWNER
> -
> -# default is to install and don't append manifest
> -INSTALL=true
> -MANIFEST=:
> -
> -: ${DIST_ROOT:=${DESTDIR}}
> -
> -[ -n "$DIST_MANIFEST" -a -z "$DIST_ROOT" ] && INSTALL=false
> -[ -n "$DIST_MANIFEST" ] && MANIFEST="_manifest"
> -
> -[ $# -eq 0 ] && _usage
> -
> -if $INSTALL
> -then
> -    CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown
> -else
> -    CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true
> -fi
> -
> -[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true
> -
> -while getopts "Dcm:d:S:o:g:T:" c $*
> -do
> -   case $c in
> -   c)
> -	;;
> -   g)
> -	GROUP=$OPTARG
> -	;;
> -   o)
> -	OWNER=$OPTARG
> -	;;
> -   m)
> -	DIRMODE=`expr $OPTARG`
> -	FILEMODE=$DIRMODE
> -	;;
> -   D)
> -	Dflag=true
> -	;;
> -   S)
> -	symlink=$OPTARG
> -	Sflag=true
> -	;;
> -   d)
> -	dir=$DIST_ROOT/$OPTARG
> -	dflag=true
> -	;;
> -   T)
> -	lt_install=$OPTARG
> -	Tflag=true
> -	;;
> -   *)
> -	_usage
> -	;;
> -   esac
> -done
> -
> -shift `expr $OPTIND - 1`
> -
> -status=0
> -if $dflag
> -then
> -    #
> -    # first usage
> -    #
> -    $MKDIR -p $dir
> -    status=$?
> -    if [ $status -eq 0 ]
> -    then
> -	$CHMOD $DIRMODE $dir
> -	status=$?
> -    fi
> -    if [ $status -eq 0 ]
> -    then
> -	$CHOWN $OWNER $GROUP $dir
> -	status=$?
> -    fi
> -    $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT}
> -elif $Sflag
> -then
> -    #
> -    # fourth usage (symlink)
> -    #
> -    if [ $# -ne 1 ]
> -    then
> -	_usage
> -    else
> -	target=$DIST_ROOT/$1
> -    fi
> -    $LN -s -f $symlink $target
> -    status=$?
> -    $MANIFEST l $symlink ${target#$DIST_ROOT}
> -elif $Tflag
> -then
> -    #
> -    # -T (install libs built by libtool)
> -    #
> -    if [ $# -ne 2 ]
> -    then
> -	_usage
> -    else
> -	libtool_lai=$1
> -	# source the libtool variables
> -	if [ ! -f $libtool_lai ]
> -	then
> -		echo "$prog: Unable to find libtool library file $libtool_lai"
> -		exit 2
> -	fi
> -	. ./$libtool_lai
> -	target=$DIST_ROOT/$2
> -    fi
> -    case $lt_install in
> -    so_dot_version)
> -	# Loop until we find libfoo.so.x.y.z, then break out.
> -	for solib in $library_names
> -	do
> -		# does it have enough parts?  libfoo.so.x.y.z == 5
> -		cnt=`echo "$solib" | sed -e 's/\./ /g' | wc -w`
> -		if [ $cnt -eq 5 ]
> -		then
> -			install_name=$target/$solib
> -			$CP $solib $install_name
> -			status=$?
> -			$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$solib ${install_name#$DIST_ROOT}
> -			break
> -		fi
> -	done
> -	;;
> -
> -    so_*)
> -	case $lt_install in
> -	so_dot_current)
> -		# ln -s libfoo.so.x.y.z to libfoo.so.x
> -		from_parts=5  # libfoo.so.x.y.z
> -		to_parts=3    # libfoo.so.x
> -		;;
> -	so_base)
> -		# ln -s libfoo.so.x to libfoo.so
> -		from_parts=3  # libfoo.so.x
> -		to_parts=2    # libfoo.so
> -		;;
> -	*)
> -		echo "$prog: -T $lt_install invalid"
> -		exit 2
> -		;;
> -	esac
> -
> -	# Loop until we find the names, then break out.
> -	for solib in $library_names
> -	do
> -		# does it have enough parts?
> -		cnt=`echo "$solib" | sed -e 's/\./ /g' | wc -w`
> -		if [ $cnt -eq $from_parts ]
> -		then
> -			from_name=$solib
> -		elif [ $cnt -eq $to_parts ]
> -		then
> -			to_name=$solib
> -		fi
> -
> -		if [ -n "$from_name" ] && [ -n "$to_name" ]
> -		then
> -			install_name=$target/$to_name
> -			$LN -s -f $from_name $install_name
> -			status=$?
> -			$MANIFEST l $from_name ${install_name#$DIST_ROOT}
> -			break
> -		fi
> -	done
> -	;;
> -    old_lib)
> -	install_name=$target/$old_library
> -	$CP $old_library $install_name
> -	status=$?
> -	$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$old_library ${install_name#$DIST_ROOT}
> -	;;
> -    *)
> -	echo "$prog: -T $lt_install invalid"
> -	exit 2
> -	;;
> -    esac
> -
> -    case $lt_install in
> -    old_lib|so_dot_version)
> -	if [ $status -eq 0 ]
> -	then
> -		$CHMOD $FILEMODE $install_name
> -		$CHOWN $OWNER $GROUP $install_name
> -	fi
> -	;;
> -    esac
> -
> -else
> -    list=""
> -    dir=""
> -    if [ $# -eq 2 ]
> -    then
> -	#
> -	# second usage
> -	#
> -	f=$1
> -	dir=$DIST_ROOT/$2
> -	if $Dflag
> -	then
> -	    mkdir -p `dirname $dir`
> -	fi
> -	$CP $f $dir
> -	status=$?
> -	if [ $status -eq 0 ]
> -	then
> -	    if [ -f $dir/$f ]
> -	    then
> -		$CHMOD $FILEMODE $dir/$f
> -		status=$?
> -		if [ $status -eq 0 ]
> -		then
> -		    $CHOWN $OWNER $GROUP $dir/$f
> -		    status=$?
> -		fi
> -		$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
> -	    else
> -		$CHMOD $FILEMODE $dir
> -		status=$?
> -		if [ $status -eq 0 ]
> -		then
> -		    $CHOWN $OWNER $GROUP $dir
> -		    status=$?
> -		fi
> -		$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT}
> -	    fi
> -	fi
> -    else
> -	#
> -	# third usage
> -	#
> -	n=1
> -	while [ $# -gt 0 ]
> -	do
> -	    if [ $# -gt 1 ]
> -	    then
> -		list="$list $1"
> -	    else
> -		dir=$DIST_ROOT/$1
> -	    fi
> -	    shift
> -	done
> -
> -	# echo DIR=$dir list=\"$list\"
> -	for f in $list
> -	do
> -	    $CP $f $dir
> -	    status=$?
> -	    if [ $status -eq 0 ]
> -	    then
> -		$CHMOD $FILEMODE $dir/$f
> -		status=$?
> -		if [ $status -eq 0 ]
> -		then
> -		    $CHOWN $OWNER $GROUP $dir/$f
> -		    status=$?
> -		fi
> -		$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
> -	    fi
> -	    [ $status -ne 0 ] && break
> -	done
> -    fi
> -fi
> -
> -exit $status
> -- 
> 2.25.1



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux