package/python3: fix config directory pattern
PATCH 1/1 package/python3: fix config directory pattern
If a platform triplet is not detected during the configure stage, the config directory (LIBPL) defaults to config-$LDVERSION.
In this scenario, the PYTHON3_REMOVE_USELESS_FILES hook would fail due to find incorrectly expecting a second dash and then the triplet.
Now, we glob anything after the version which will match in both cases.
--- package/python3/python3.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/python3/python3.mk +1 -1
@@ -204,7 +204,7 @@ PYTHON3_CONF_OPTS += \ define PYTHON3_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config rm -f $(TARGET_DIR)/usr/bin/python3-config - find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)-*/ \ + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)*/ \ -type f -not -name Makefile -exec rm -rf {} \; find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/ -type d \ -name __pycache__ -exec rm -rf {} \;
Signature · 6 lines
2.34.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Vincent, All,
On 2024-06-08 22:25 -0500, Vincent Fazio spake thusly:
Quoted 1 line
If a platform triplet is not detected during the configure stage,
Could you share a defconfig that exhibits the issue, please?
Regards,
Yann E. MORIN.
Quoted 35 lines
the
config directory (LIBPL) defaults toconfig-$LDVERSION.In this scenario, the
PYTHON3_REMOVE_USELESS_FILEShook would fail due tofindincorrectly expecting a second dash and then the triplet.Now, we glob anything after the version which will match in both cases.
Fixes 54d48c8cad ("package/python3: miscellaneous fixups")Signed-off-by Vincent Fazio <[email protected]>--- package/python3/python3.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/python3/python3.mk +1
-1@@ -204,7 +204,7 @@ PYTHON3_CONF_OPTS += \ define PYTHON3_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config rm -f $(TARGET_DIR)/usr/bin/python3-config - find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)-*/ \ + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)*/ \ -type f -not -name Makefile -exec rm -rf {} \; find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/ -type d \ -name __pycache__ -exec rm -rf {} \;Signature · 6 lines
2.34.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Signature · 10 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
All,
Quoted 8 lines · Yann E. MORIN
Vincent, All,
On 2024-06-08 22:25 -0500, Vincent Fazio spake thusly:
Quoted 1 line
If a platform triplet is not detected during the configure stage,
Could you share a defconfig that exhibits the issue, please?
Here is one I ran last night when testing python 3.12.4 but also fails on 3.11.
``` BR2_xtensa=y BR2_XTENSA_CUSTOM=y BR2_XTENSA_OVERLAY_FILE="https://github.com/jcmvbkbc/xtensa-toolchain-build/raw/95291b7c39e6f790d0b2f062c945a630290f2c81/overlays/xtensa_dc233c.tar.gz" BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_XTENSA_LX60_UCLIBC_STABLE=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_SYSTEM_DHCP="eth0" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.18" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/xtensa-lx60/linux.config" BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="Image" BR2_LINUX_KERNEL_IMAGE_NAME="Image.elf" BR2_PACKAGE_PYTHON3=y BR2_TARGET_ROOTFS_INITRAMFS=y # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_HOST_QEMU=y BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y BR2_PACKAGE_HOST_UBOOT_TOOLS=y ```
I think this is fixable in other ways, but would probably require extending Python's platform detection, which got rewritten in 3.13 and could be a hassle to maintain, especially since uClibc isn't technically supported upstream.
configure.ac code:
https://github.com/python/cpython/blob/35c799d79177b962ddace2fa068101465570a29a/configure.ac#L5755
PLATFORM_TRIPLET and MULTIARCH values drive this, however
https://github.com/python/cpython/blob/35c799d79177b962ddace2fa068101465570a29a/configure.ac#L1090
``` checking for the platform triplet based on compiler characteristics... none checking for multiarch... ```
Quoted 41 lines
Regards,
Yann E. MORIN.Quoted 31 lines
the
config directory (LIBPL) defaults toconfig-$LDVERSION.In this scenario, the
PYTHON3_REMOVE_USELESS_FILEShook would fail due tofindincorrectly expecting a second dash and then the triplet.Now, we glob anything after the version which will match in both cases.
Fixes 54d48c8cad ("package/python3: miscellaneous fixups")Signed-off-by Vincent Fazio <[email protected]>--- package/python3/python3.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/python3/python3.mk +1
-2@@ -204,7 +204,7 @@ PYTHON3_CONF_OPTS += \ define PYTHON3_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config rm -f $(TARGET_DIR)/usr/bin/python3-config - find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)-*/ \ + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)*/ \ -type f -not -name Makefile -exec rm -rf {} \; find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/ -type d \ -name __pycache__ -exec rm -rf {} \; --2.34.1
Quoted 4 lines
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot--
.-----------------.--------------------.------------------.--------------------.
Quoted 5 lines
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |'------------------------------^-------^------------------^--------------------'
-Vincent
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
Yann E. MORIN
AppliedVincent, All,
On 2024-06-08 22:25 -0500, Vincent Fazio spake thusly:
Quoted 2 lines
If a platform triplet is not detected during the configure stage, the config directory (LIBPL) defaults to
config-$LDVERSION.
I found the $LDVERSION to be a bit strange, even though that is actually what the code uses, but here, in the contect of a Buildrot commit log, it does not look right, as it rather hints at the version of ld, which does not make sense...
So I just dropped the LD to keep $VERSION, which makes mor esense I believe.
Quoted 4 lines
In this scenario, the
PYTHON3_REMOVE_USELESS_FILEShook would fail due tofindincorrectly expecting a second dash and then the triplet.Now, we glob anything after the version which will match in both cases.
Woot, 11MiB dropped here! 👍
Quoted 1 line
Fixes 54d48c8cad ("package/python3: miscellaneous fixups")
In fact, it was already broken before that: master, which does not have 54d48c8cad, alrady suffered from that issue, except the error is ignore, as te find is in a sub-shell evaluated as the list for a for-loop.
Would you care to send the same fix for master, please?
Quoted 1 line
Signed-off-by Vincent Fazio <[email protected]>
Applied to next, thanks.
Regards,
Yann E. MORIN.
Quoted 24 lines
--- package/python3/python3.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/python3/python3.mk +1
-1@@ -204,7 +204,7 @@ PYTHON3_CONF_OPTS += \ define PYTHON3_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config rm -f $(TARGET_DIR)/usr/bin/python3-config - find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)-*/ \ + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)*/ \ -type f -not -name Makefile -exec rm -rf {} \; find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/ -type d \ -name __pycache__ -exec rm -rf {} \;Signature · 6 lines
2.34.1 _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Signature · 10 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list [email protected] https://lists.buildroot.org/mailman/listinfo/buildroot
Yann, all
Quoted 22 lines · Yann E. MORIN
Vincent, All,
On 2024-06-08 22:25 -0500, Vincent Fazio spake thusly:
Quoted 2 lines
If a platform triplet is not detected during the configure stage, the config directory (LIBPL) defaults to
config-$LDVERSION.I found the $LDVERSION to be a bit strange, even though that is actually what the code uses, but here, in the contect of a Buildrot commit log, it does not look right, as it rather hints at the version of ld, which does not make sense...
So I just dropped the LD to keep $VERSION, which makes mor esense I believe.
Quoted 4 lines
In this scenario, the
PYTHON3_REMOVE_USELESS_FILEShook would fail due tofindincorrectly expecting a second dash and then the triplet.Now, we glob anything after the version which will match in both cases.
Woot, 11MiB dropped here! 👍
Quoted 8 lines
Quoted 1 line
Fixes 54d48c8cad ("package/python3: miscellaneous fixups")In fact, it was already broken before that: master, which does not have
54d48c8cad, alrady suffered from that issue, except the error is ignore, as te find is in a sub-shell evaluated as the list for a for-loop.Would you care to send the same fix for master, please?
Sure thing: https://patchwork.ozlabs.org/project/buildroot/patch/[email protected]/
Quoted 34 lines
Quoted 1 line
Signed-off-by Vincent Fazio <[email protected]>Applied to next, thanks.
Regards,
Yann E. MORIN.Quoted 20 lines
--- package/python3/python3.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)package/python3/python3.mk +1
-2@@ -204,7 +204,7 @@ PYTHON3_CONF_OPTS += \ define PYTHON3_REMOVE_USELESS_FILES rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config rm -f $(TARGET_DIR)/usr/bin/python3-config - find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)-*/ \ + find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-$(PYTHON3_VERSION_MAJOR)*/ \ -type f -not -name Makefile -exec rm -rf {} \; find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/ -type d \ -name __pycache__ -exec rm -rf {} \; --2.34.1
Quoted 4 lines
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot--
.-----------------.--------------------.------------------.--------------------.
Quoted 5 lines
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot