2
1
Эх сурвалжийг харах

package/python-babel: add purge locale data support

Add purge loacle data support (inspired by BR2_ENABLE_LOCALE_PURGE
handling in Makefile) to reduce target space allocation by the
python-babel package, e.g. from 32MB to 24K for
target/usr/lib/python3.11/site-packages/babel/locale-data with
BR2_ENABLE_LOCALE_WHITELIST="C en_US de_DE".

The special en_US_POSIX locale data is kept as it is used by default
by the python-babel code:

https://github.com/python-babel/babel/blob/0ce196fccc024b1a65453ba6519954ada1dab6cb/babel/core.py#L1076

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Peter Seiderer 2 жил өмнө
parent
commit
2b3e87e118

+ 13 - 0
package/python-babel/python-babel.mk

@@ -12,5 +12,18 @@ PYTHON_BABEL_LICENSE = BSD-3-Clause
 PYTHON_BABEL_LICENSE_FILES = LICENSE
 HOST_PYTHON_BABEL_DEPENDENCIES = host-python-pytz
 
+# purge locale data (if enabled), keep special en_US_POSIX data which
+# is used by default by the python-babel code
+ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
+define PYTHON_BABEL_CLEANUP_LOCALE
+	for i in `ls $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/babel/locale-data/*.dat`; \
+	do \
+		i_base=`basename "$$i" .dat`; \
+		echo "$(BR2_ENABLE_LOCALE_WHITELIST) en_US_POSIX" | grep -qw "$$i_base" || rm "$$i"; \
+	done
+endef
+PYTHON_BABEL_TARGET_FINALIZE_HOOKS += PYTHON_BABEL_CLEANUP_LOCALE
+endif
+
 $(eval $(python-package))
 $(eval $(host-python-package))