Browse Source

python3: split source packages away from compiled packages

Same as for python.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
lilik-openwrt-22.03
Alexandru Ardelean 8 years ago
parent
commit
ae350d9387
3 changed files with 54 additions and 1 deletions
  1. +5
    -0
      lang/python3/Makefile
  2. +32
    -1
      lang/python3/files/python3-package-install.sh
  3. +17
    -0
      lang/python3/files/python3-package.mk

+ 5
- 0
lang/python3/Makefile View File

@ -289,6 +289,7 @@ $(eval $(call HostBuild))
$(foreach package, $(PYTHON3_PACKAGES), \ $(foreach package, $(PYTHON3_PACKAGES), \
$(eval $(call Py3Package,$(package))) \ $(eval $(call Py3Package,$(package))) \
$(eval $(call BuildPackage,$(package))) \ $(eval $(call BuildPackage,$(package))) \
$(eval $(call BuildPackage,$(package)-src)) \
) )
$(eval $(call Py3Package,python3-base)) $(eval $(call Py3Package,python3-base))
@ -298,3 +299,7 @@ $(eval $(call Py3Package,python3))
$(eval $(call BuildPackage,python3-base)) $(eval $(call BuildPackage,python3-base))
$(eval $(call BuildPackage,python3-light)) $(eval $(call BuildPackage,python3-light))
$(eval $(call BuildPackage,python3)) $(eval $(call BuildPackage,python3))
$(eval $(call BuildPackage,python3-base-src))
$(eval $(call BuildPackage,python3-light-src))
$(eval $(call BuildPackage,python3-src))

+ 32
- 1
lang/python3/files/python3-package-install.sh View File

@ -34,5 +34,36 @@ process_filespec() {
) )
} }
process_filespec "$1" "$2" "$3"
src_dir="$1"
dst_dir="$2"
python="$3"
mode="$4"
filespec="$5"
process_filespec "$src_dir" "$dst_dir" "$filespec" || {
echo "process filespec error-ed"
exit 1
}
if [ "$mode" == "sources" ] ; then
# Copy only python source files
find $dst_dir -not -name "*\.py" | xargs rm -f
# Delete empty folders (if the case)
find $dst_dir/usr -type d | xargs rmdir &> /dev/null
rmdir $dst_dir/usr &> /dev/null
exit 0
fi
# XXX [So that you won't goof as I did]
# Note: Yes, I tried to use the -O & -OO flags here.
# However the generated byte-codes were not portable.
# So, we just stuck to un-optimized byte-codes,
# which is still way better/faster than running
# Python sources all the time.
$python -m compileall -b -d '/' $dst_dir || {
echo "python -m compileall err-ed"
exit 1
}
# Delete source files and pyc [ un-optimized bytecode files ]
# We may want to make this optimization thing configurable later, but not sure atm
find $dst_dir -name "*\.py" | xargs rm -f

+ 17
- 0
lang/python3/files/python3-package.mk View File

@ -34,6 +34,17 @@ endif
define Py3Package define Py3Package
define Package/$(1)-src
$(call Package/$(1))
TITLE+= (sources)
DEPENDS:=$$$$(foreach dep,$$$$(filter +python3-%,$$$$(DEPENDS)),$$$$(dep)-src)
endef
define Package/$(1)-src/description
$(call Package/$(1)/description).
(Contains the Python3 sources for this package).
endef
# Add default PyPackage filespec none defined # Add default PyPackage filespec none defined
ifndef Py3Package/$(1)/filespec ifndef Py3Package/$(1)/filespec
define Py3Package/$(1)/filespec define Py3Package/$(1)/filespec
@ -58,16 +69,22 @@ define Py3Package
if [ -e files/python3-package-install.sh ] ; then \ if [ -e files/python3-package-install.sh ] ; then \
$(SHELL) files/python3-package-install.sh \ $(SHELL) files/python3-package-install.sh \
"$(PKG_INSTALL_DIR)" "$$(1)" \ "$(PKG_INSTALL_DIR)" "$$(1)" \
"$(HOST_PYTHON3_BIN)" "$$(2)" \
"$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" ; \ "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" ; \
elif [ -e $(STAGING_DIR)/mk/python3-package-install.sh ] ; then \ elif [ -e $(STAGING_DIR)/mk/python3-package-install.sh ] ; then \
$(SHELL) $(STAGING_DIR)/mk/python3-package-install.sh \ $(SHELL) $(STAGING_DIR)/mk/python3-package-install.sh \
"$(PKG_INSTALL_DIR)" "$$(1)" \ "$(PKG_INSTALL_DIR)" "$$(1)" \
"$(HOST_PYTHON3_BIN)" "$$(2)" \
"$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" ; \ "$$$$$$$$$$(call shvar,Py3Package/$(1)/filespec)" ; \
else \ else \
echo "No 'python3-package-install.sh' script found" ; \ echo "No 'python3-package-install.sh' script found" ; \
exit 1 ; \ exit 1 ; \
fi fi
endef endef
define Package/$(1)-src/install
$$(call Package/$(1)/install,$$(1),sources)
endef
endef endef
$(call include_mk, python3-host.mk) $(call include_mk, python3-host.mk)


Loading…
Cancel
Save