python,python3: Fix overridden usr/bin symlinks
Currently, all files in usr/bin (presumably all Python scripts) are run through sed to replace the shebang; sed will overwrite the file whether or not a match is found. This causes symlinks to be overridden and made into copies of their targets. python[3]-base and python[3]-dev are affected by this. This adds the --follow-symlinks flag to sed, in addition to using $(SED), so that symlinks are not overridden. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
parent
421c58a946
commit
af975f0f30
3 changed files with 5 additions and 1 deletions
|
@ -47,6 +47,8 @@ python="$4"
|
|||
mode="$5"
|
||||
filespec="$6"
|
||||
|
||||
SED="${SED:-sed -e}"
|
||||
|
||||
process_filespec "$src_dir" "$dst_dir" "$filespec" || {
|
||||
echo "process filespec error-ed"
|
||||
exit 1
|
||||
|
@ -55,7 +57,7 @@ process_filespec "$src_dir" "$dst_dir" "$filespec" || {
|
|||
usr_bin_dir="$dst_dir/usr/bin"
|
||||
|
||||
if [ -d "$usr_bin_dir" ] ; then
|
||||
sed "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python${ver}," -i $usr_bin_dir/*
|
||||
$SED "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python${ver}," -i --follow-symlinks $usr_bin_dir/*
|
||||
fi
|
||||
|
||||
if [ "$mode" == "sources" ] ; then
|
||||
|
|
|
@ -70,6 +70,7 @@ define PyPackage
|
|||
define Package/$(1)/install
|
||||
$(call PyPackage/$(1)/install,$$(1))
|
||||
find $(PKG_INSTALL_DIR) -name "*\.exe" | xargs rm -f
|
||||
SED="$(SED)" \
|
||||
$(SHELL) $(python_mk_path)python-package-install.sh "2" \
|
||||
"$(PKG_INSTALL_DIR)" "$$(1)" \
|
||||
"$(HOST_PYTHON_BIN)" "$$(2)" \
|
||||
|
|
|
@ -69,6 +69,7 @@ define Py3Package
|
|||
define Package/$(1)/install
|
||||
$(call Py3Package/$(1)/install,$$(1))
|
||||
find $(PKG_INSTALL_DIR) -name "*\.exe" | xargs rm -f
|
||||
SED="$(SED)" \
|
||||
$(SHELL) $(python3_mk_path)python-package-install.sh "3" \
|
||||
"$(PKG_INSTALL_DIR)" "$$(1)" \
|
||||
"$(HOST_PYTHON3_BIN)" "$$(2)" \
|
||||
|
|
Loading…
Reference in a new issue