From ffd00280315e60908d0d317b1dfb4c714590a03e Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 18 Aug 2025 22:14:43 +0200 Subject: [PATCH] package/python3: drop !uclibc || headers 5.1 dependency The following dependency: depends on !BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 was added by commit d63e207eb869063f82c867658676c2903beb08cb, which bumped python3 from 3.12.9 to 3.13.2. The commit message doesn't state it, but this dependency was introduced because uClibc without time64 support (i.e. with kernel headers < 5.1) causes a runtime assertion in Python [1]: OverflowError: timestamp too large to convert to C PyTime_t The problem is that this dependency has not been propagated to reverse dependencies, causing this kind of kconfig warnings: WARNING: unmet direct dependencies detected for BR2_PACKAGE_PYTHON3 Depends on [n]: BR2_USE_WCHAR [=y] && BR2_USE_MMU [=y] && BR2_TOOLCHAIN_HAS_THREADS [=y] && !BR2_STATIC_LIBS [=n] && (!BR2_TOOLCHAIN_USES_UCLIBC [=y] || BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 [=n]) Selected by [y]: - BR2_PACKAGE_AVOCADO [=y] && BR2_USE_WCHAR [=y] && BR2_USE_MMU [=y] && BR2_TOOLCHAIN_HAS_THREADS [=y] && !BR2_STATIC_LIBS [=n] - BR2_PACKAGE_LIBSIGROKDECODE [=y] && BR2_USE_WCHAR [=y] && BR2_TOOLCHAIN_HAS_THREADS [=y] && BR2_USE_MMU [=y] && !BR2_STATIC_LIBS [=n] - BR2_PACKAGE_OPKG_UTILS [=y] && BR2_PACKAGE_BUSYBOX [=y] && BR2_USE_MMU [=y] && BR2_USE_WCHAR [=y] && BR2_TOOLCHAIN_HAS_THREADS [=y] && !BR2_STATIC_LIBS [=n] However, propagating this dependency to all reverse dependencies of python3 would be pretty annoying, especially as the dependency is kind of "clunky". A configuration with uClibc and kernel headers < 5.1 is such a corner case that it does not merit such complexity. A later commit will check for this corner case at build time (while allowing it in the .config). For now, already drop the dependency in Config.in. Cc: Vincent Fazio Signed-off-by: Thomas Petazzoni Signed-off-by: Arnout Vandecappelle [1] https://gitlab.com/buildroot.org/buildroot/-/issues/95#note_2348479811 --- package/python3/Config.in | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package/python3/Config.in b/package/python3/Config.in index 7491067140..cfc08bad86 100644 --- a/package/python3/Config.in +++ b/package/python3/Config.in @@ -1,6 +1,6 @@ -comment "python3 needs a toolchain w/ wchar, threads, dynamic library, time64 support" +comment "python3 needs a toolchain w/ wchar, threads, dynamic library" depends on BR2_USE_MMU - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || (!BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 && BR2_TOOLCHAIN_USES_UCLIBC) + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS config BR2_PACKAGE_PYTHON3 bool "python3" @@ -9,7 +9,6 @@ config BR2_PACKAGE_PYTHON3 depends on BR2_USE_MMU depends on BR2_TOOLCHAIN_HAS_THREADS # libffi depends on !BR2_STATIC_LIBS - depends on !BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1 # need time64 support in uclibc select BR2_PACKAGE_LIBFFI select BR2_PACKAGE_BLUEZ5_UTILS_HEADERS if BR2_PACKAGE_BLUEZ5_UTILS select BR2_PACKAGE_HOST_PYTHON3