fstests.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Revert "build: Use the original install-sh file from SGI"
@ 2021-06-29  7:32 Vyacheslav Yurkov
  2021-07-04  9:43 ` Eryu Guan
  0 siblings, 1 reply; 3+ messages in thread
From: Vyacheslav Yurkov @ 2021-06-29  7:32 UTC (permalink / raw)
  To: fstests; +Cc: Vyacheslav Yurkov

From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>

This reverts commit da7916f72206750cce0d0d306d3ba9094a375880.

Old install-sh fails in cross-compilation environments like yocto.

Signed-off-by: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
---
 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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] Revert "build: Use the original install-sh file from SGI"
  2021-06-29  7:32 [PATCH] Revert "build: Use the original install-sh file from SGI" Vyacheslav Yurkov
@ 2021-07-04  9:43 ` Eryu Guan
  2021-07-08 11:55   ` Yurkov, Vyacheslav
  0 siblings, 1 reply; 3+ messages in thread
From: Eryu Guan @ 2021-07-04  9:43 UTC (permalink / raw)
  To: Vyacheslav Yurkov; +Cc: fstests, Vyacheslav Yurkov

On Tue, Jun 29, 2021 at 09:32:47AM +0200, Vyacheslav Yurkov wrote:
> From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
> 
> 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@bruker.com>
> ---
>  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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] Revert "build: Use the original install-sh file from SGI"
  2021-07-04  9:43 ` Eryu Guan
@ 2021-07-08 11:55   ` Yurkov, Vyacheslav
  0 siblings, 0 replies; 3+ messages in thread
From: Yurkov, Vyacheslav @ 2021-07-08 11:55 UTC (permalink / raw)
  To: Eryu Guan, Vyacheslav Yurkov; +Cc: fstests

There are several errors I was getting actually. The first one is something like this:

> | configure: error: cannot run /bin/bash ./../config.sub

The problem is that yocto/oe build system has distinct stages like fetch/configure/compile/install/etc, and this error occurs during the configure stage when it tries to run automake/autoconf.

When I prepend configure stage with copying of include/install-sh, it passes further, but fails at install stage with the errors like:

Usage: build/tmp/work/corei7-64-oe-linux/xfstests/git-r0/git/x86_64-oe-linux-libtool [OPTION]... [MODE-ARG]...
Try 'x86_64-oe-linux-libtool --help' for more information.
x86_64-oe-linux-libtool:   error: 'build/tmp/work/corei7-64-oe-linux/xfstests/git-r0/image/usr/xfstests/src' is not a directory
make[1]: *** [Makefile:102: install] Error 1

So I honestly didn't look into what's failing there. Using up-to-date scripts just fixed the issue for me. I could keep the patch in my yocto BSP then if you don't like it.

Thanks,
Vyacheslav


- confidential -

> -----Original Message-----
> From: Eryu Guan <guaneryu@gmail.com>
> Sent: Sunday, July 4, 2021 11:44
> To: Vyacheslav Yurkov <uvv.mail@gmail.com>
> Cc: fstests@vger.kernel.org; Yurkov, Vyacheslav
> <Vyacheslav.Yurkov@bruker.com>
> Subject: Re: [PATCH] Revert "build: Use the original install-sh file from SGI"
> 
> **EXTERNAL EMAIL**
> 
> On Tue, Jun 29, 2021 at 09:32:47AM +0200, Vyacheslav Yurkov wrote:
> > From: Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
> >
> > 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@bruker.com>
> > ---
> >  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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-08 12:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-29  7:32 [PATCH] Revert "build: Use the original install-sh file from SGI" Vyacheslav Yurkov
2021-07-04  9:43 ` Eryu Guan
2021-07-08 11:55   ` Yurkov, Vyacheslav

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).