From: Jeffery To Date: Sun, 31 Mar 2019 11:11:15 +0000 (+0800) Subject: python,python3: Fix overridden usr/bin symlinks X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=refs%2Fpull%2F9513%2Fhead;p=feed%2Fpackages.git 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 --- diff --git a/lang/python/python-package-install.sh b/lang/python/python-package-install.sh index f21c00c811..34ba0721bb 100644 --- a/lang/python/python-package-install.sh +++ b/lang/python/python-package-install.sh @@ -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 diff --git a/lang/python/python-package.mk b/lang/python/python-package.mk index 66a4929837..855dd4449c 100644 --- a/lang/python/python-package.mk +++ b/lang/python/python-package.mk @@ -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)" \ diff --git a/lang/python/python3-package.mk b/lang/python/python3-package.mk index 9e473b5c5d..5a779c2175 100644 --- a/lang/python/python3-package.mk +++ b/lang/python/python3-package.mk @@ -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)" \