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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.