summaryrefslogtreecommitdiff
path: root/lang/python
diff options
context:
space:
mode:
authorAlexandru Ardelean <ardeleanalex@gmail.com>2019-09-12 15:03:50 +0300
committerAlexandru Ardelean <ardeleanalex@gmail.com>2019-09-20 14:10:00 +0300
commit721642908c2bc2f16ff371bdd33e4df02813318c (patch)
treef877972c2810fc5cdf374234be0e152944144279 /lang/python
parented0e77f3c385770065bf6ec6ed7c3bbbb6deb395 (diff)
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 <ardeleanalex@gmail.com>
Diffstat (limited to 'lang/python')
-rw-r--r--lang/python/python-package-install.sh8
-rw-r--r--lang/python/python-package.mk10
-rw-r--r--lang/python/python3-package.mk12
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)