From 721642908c2bc2f16ff371bdd33e4df02813318c Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Thu, 12 Sep 2019 15:03:50 +0300 Subject: [PATCH] python,python3: add Py[3]Shebang functions & move outside of script Some packages just install some Python binaries, that may need their shebang fixed. This change adds some utilities to help with that and try to centralize the sed rules a bit. It also removes the logic from the `python-package-install.sh` into the `python-package[3].mk` files. This does 2 things: 1. It minimizes the need for the shell script to know the Python version 2/3 2. Makes the logic re-usable in packages; especially if the install rules differ a bit Signed-off-by: Alexandru Ardelean --- lang/python/python-package-install.sh | 8 -------- lang/python/python-package.mk | 10 ++++++++-- lang/python/python3-package.mk | 12 +++++++++--- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/lang/python/python-package-install.sh b/lang/python/python-package-install.sh index f2646f848..337727af1 100644 --- a/lang/python/python-package-install.sh +++ b/lang/python/python-package-install.sh @@ -54,8 +54,6 @@ python="$4" mode="$5" filespec="$6" -SED="${SED:-sed -e}" - find "$src_dir" -name "*.exe" -delete process_filespec "$src_dir" "$dst_dir" "$filespec" || { @@ -63,12 +61,6 @@ process_filespec "$src_dir" "$dst_dir" "$filespec" || { exit 1 } -usr_bin_dir="$dst_dir/usr/bin" - -if [ -d "$usr_bin_dir" ] ; then - $SED "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python${ver}," -i --follow-symlinks $usr_bin_dir/* -fi - if [ "$mode" == "sources" ] ; then # Copy only python source files find "$dst_dir" -not -type d -not -name "*.py" -delete diff --git a/lang/python/python-package.mk b/lang/python/python-package.mk index 9bd0b9aa4..019f4f028 100644 --- a/lang/python/python-package.mk +++ b/lang/python/python-package.mk @@ -35,6 +35,10 @@ ifdef CONFIG_USE_MIPS16 TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16 endif +define PyShebang +$(SED) "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python2," -i --follow-symlinks $(1) +endef + define PyPackage define Package/$(1)-src @@ -74,11 +78,13 @@ define PyPackage define Package/$(1)/install $$(call PyPackage/$(1)/install,$$(1)) - SED="$(SED)" \ $(SHELL) $(python_mk_path)python-package-install.sh "2" \ "$(PKG_INSTALL_DIR)" "$$(1)" \ "$(HOST_PYTHON_BIN)" "$$(2)" \ - "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" + "$$$$$$$$$$(call shvar,PyPackage/$(1)/filespec)" && \ + if [ -d "$$(1)/usr/bin" ]; then \ + $(call PyShebang,$$(1)/usr/bin/*) ; \ + fi endef define Package/$(1)-src/install diff --git a/lang/python/python3-package.mk b/lang/python/python3-package.mk index e14290081..d20d19801 100644 --- a/lang/python/python3-package.mk +++ b/lang/python/python3-package.mk @@ -34,6 +34,10 @@ ifdef CONFIG_USE_MIPS16 TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16 endif +define Py3Shebang +$(SED) "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python3," -i --follow-symlinks $(1) +endef + define Py3Package define Package/$(1)-src @@ -73,12 +77,14 @@ define Py3Package define Package/$(1)/install $$(call Py3Package/$(1)/install,$$(1)) - SED="$(SED)" \ $(SHELL) $(python3_mk_path)python-package-install.sh "3" \ "$(PKG_INSTALL_DIR)" "$$(1)" \ "$(HOST_PYTHON3_BIN)" "$$(2)" \ - "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" - endef + "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" && \ + if [ -d "$$(1)/usr/bin" ]; then \ + $(call Py3Shebang,$$(1)/usr/bin/*) ; \ + fi + endef define Package/$(1)-src/install $$(call Package/$(1)/install,$$(1),sources)