From: Eryu Guan <guaneryu@gmail.com>
To: Vyacheslav Yurkov <uvv.mail@gmail.com>
Cc: fstests@vger.kernel.org,
Vyacheslav Yurkov <Vyacheslav.Yurkov@bruker.com>
Subject: Re: [PATCH] Revert "build: Use the original install-sh file from SGI"
Date: Sun, 4 Jul 2021 17:43:46 +0800 [thread overview]
Message-ID: <YOGC0h/iHUrzh01B@desktop> (raw)
In-Reply-To: <20210629073247.230001-1-uvv.mail@gmail.com>
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
next prev parent reply other threads:[~2021-07-04 9:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
2021-07-08 11:55 ` Yurkov, Vyacheslav
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YOGC0h/iHUrzh01B@desktop \
--to=guaneryu@gmail.com \
--cc=Vyacheslav.Yurkov@bruker.com \
--cc=fstests@vger.kernel.org \
--cc=uvv.mail@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox