[Buildroot] [PATCH 09/15] package/pkg-python: Remove _sysconfigdata*.pyc files when _sysconfigdata*.py are changed
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Mon Jun 21 15:12:02 UTC 2021
On Mon, 21 Jun 2021 16:11:24 +0200
Herve Codina <herve.codina at bootlin.com> wrote:
> In order to avoid _sysconfigdata*.pyc overwrites when they are generated based on
> _sysconfigdata*.py changes, this commit simply removes _sysconfigdata*.pyc
> whenever _sysconfigdata*.py are changed.
>
> As they are removed, overwrite detection will no longer trig and coherency between
> the two files (.py and .pyc) is ensured.
>
> Signed-off-by: Herve Codina <herve.codina at bootlin.com>
> ---
> package/pkg-python.mk | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/package/pkg-python.mk b/package/pkg-python.mk
> index 59a48e5a87..b3fde77da5 100644
> --- a/package/pkg-python.mk
> +++ b/package/pkg-python.mk
> @@ -96,7 +96,9 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
> define PKG_PYTHON_FIXUP_SYSCONFIGDATA
> find $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python* \
> -name "_sysconfigdata*.py" | xargs --no-run-if-empty \
> - $(SED) "s:$(PER_PACKAGE_DIR)/[^/]\+/:$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/:g"
> + $(SED) "s:$(PER_PACKAGE_DIR)/[^/]\+/:$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/:g" ;\
The semicolon + backslash is not needed, these two commands can (I
believe) be executed as separate shell commands.
> + find $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python* \
> + -name "_sysconfigdata*.pyc" -print0 | xargs -0 -r rm -f
Do we need a --no-run-if-empty on the xargs ? Or perhaps it should be
using find directly, i.e:
find $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python* \
-name "_sysconfigdata*.pyc" -exec rm -f {} \;
(or something like that)
Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list