Browse Source

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>
lilik-openwrt-22.03
Alexandru Ardelean 5 years ago
parent
commit
721642908c
3 changed files with 17 additions and 13 deletions
  1. +0
    -8
      lang/python/python-package-install.sh
  2. +8
    -2
      lang/python/python-package.mk
  3. +9
    -3
      lang/python/python3-package.mk

+ 0
- 8
lang/python/python-package-install.sh View File

@ -54,8 +54,6 @@ python="$4"
mode="$5" mode="$5"
filespec="$6" filespec="$6"
SED="${SED:-sed -e}"
find "$src_dir" -name "*.exe" -delete find "$src_dir" -name "*.exe" -delete
process_filespec "$src_dir" "$dst_dir" "$filespec" || { process_filespec "$src_dir" "$dst_dir" "$filespec" || {
@ -63,12 +61,6 @@ process_filespec "$src_dir" "$dst_dir" "$filespec" || {
exit 1 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 if [ "$mode" == "sources" ] ; then
# Copy only python source files # Copy only python source files
find "$dst_dir" -not -type d -not -name "*.py" -delete find "$dst_dir" -not -type d -not -name "*.py" -delete


+ 8
- 2
lang/python/python-package.mk View File

@ -35,6 +35,10 @@ ifdef CONFIG_USE_MIPS16
TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16 TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16
endif endif
define PyShebang
$(SED) "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python2," -i --follow-symlinks $(1)
endef
define PyPackage define PyPackage
define Package/$(1)-src define Package/$(1)-src
@ -74,11 +78,13 @@ define PyPackage
define Package/$(1)/install define Package/$(1)/install
$$(call PyPackage/$(1)/install,$$(1)) $$(call PyPackage/$(1)/install,$$(1))
SED="$(SED)" \
$(SHELL) $(python_mk_path)python-package-install.sh "2" \ $(SHELL) $(python_mk_path)python-package-install.sh "2" \
"$(PKG_INSTALL_DIR)" "$$(1)" \ "$(PKG_INSTALL_DIR)" "$$(1)" \
"$(HOST_PYTHON_BIN)" "$$(2)" \ "$(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 endef
define Package/$(1)-src/install define Package/$(1)-src/install


+ 9
- 3
lang/python/python3-package.mk View File

@ -34,6 +34,10 @@ ifdef CONFIG_USE_MIPS16
TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16 TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16
endif endif
define Py3Shebang
$(SED) "1"'!'"b;s,^#"'!'".*python.*,#"'!'"/usr/bin/python3," -i --follow-symlinks $(1)
endef
define Py3Package define Py3Package
define Package/$(1)-src define Package/$(1)-src
@ -73,12 +77,14 @@ define Py3Package
define Package/$(1)/install define Package/$(1)/install
$$(call Py3Package/$(1)/install,$$(1)) $$(call Py3Package/$(1)/install,$$(1))
SED="$(SED)" \
$(SHELL) $(python3_mk_path)python-package-install.sh "3" \ $(SHELL) $(python3_mk_path)python-package-install.sh "3" \
"$(PKG_INSTALL_DIR)" "$$(1)" \ "$(PKG_INSTALL_DIR)" "$$(1)" \
"$(HOST_PYTHON3_BIN)" "$$(2)" \ "$(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 define Package/$(1)-src/install
$$(call Package/$(1)/install,$$(1),sources) $$(call Package/$(1)/install,$$(1),sources)


Loading…
Cancel
Save