diff mbox series

Revert "python3-ctypes: depend on ldconfig only if distro-feature set"

Message ID 20250220035724.1460062-1-changqing.li@windriver.com
State New
Headers show
Series Revert "python3-ctypes: depend on ldconfig only if distro-feature set" | expand

Commit Message

Changqing Li Feb. 20, 2025, 3:57 a.m. UTC
From: Changqing Li <changqing.li@windriver.com>

In oe-core, function ldconfig_postinst_fragment use exist of
/sbin/ldconfig to decide if ldconfig is runned to generate the cache,
and function _run_ldconfig will run ldconfig to generate cache during
generate rootfs.  ldconfig.service is actually not used since we have
generate ld.so.cache during do_rootfs, refer[1][2][3]. ldconfig
dependency is necessary when ldconfig not in DISTRO_FEATURES.

The reverted commit causes regression when ldconfig not in
DISTRO_FEATURES, before, without ldconfig in DISTRO_FEATURES,
ctypes.util.find_library(name) can find the lib if it is installed, now,
since ldconfig is not installed, ctypes.util.find_library(name) cannot
find the lib even if it is installed.

Here is one usecase(gtk+3 lib is installed, ctypes.util.find_library
used to find the lib):
import wx.lib.wxcairo as wxcairo
File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/{}init{}.py", line 59, in <module>
  from .wx_cairocffi import _ContextFromDC, _FontFaceFromFont
File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/wx_cairocffi.py", line 189, in <module>
  gdkLib = _findGDKLib()
File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/wx_cairocffi.py", line 181, in _findGDKLib
  return _findHelper([libname], 'gdk',
                     "Unable to find the GDK shared library")
File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/wx_cairocffi.py", line 170, in _findHelper
  raise RuntimeError(msg)
RuntimeError: Unable to find the GDK shared library

[1] https://git.openembedded.org/openembedded-core/tree/meta/classes-global/package.bbclass#n394
[2] https://git.openembedded.org/openembedded-core/tree/meta/lib/oe/rootfs.py#n316
[3] https://github.com/systemd/systemd-stable/blob/v255-stable/units/ldconfig.service

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 meta/recipes-devtools/python/python3_3.13.2.bb | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Mathieu Dubois-Briand Feb. 21, 2025, 2:34 p.m. UTC | #1
On Thu Feb 20, 2025 at 4:57 AM CET, Changqing Li via lists.openembedded.org wrote:
> From: Changqing Li <changqing.li@windriver.com>
>
> In oe-core, function ldconfig_postinst_fragment use exist of
> /sbin/ldconfig to decide if ldconfig is runned to generate the cache,
> and function _run_ldconfig will run ldconfig to generate cache during
> generate rootfs.  ldconfig.service is actually not used since we have
> generate ld.so.cache during do_rootfs, refer[1][2][3]. ldconfig
> dependency is necessary when ldconfig not in DISTRO_FEATURES.
>
> The reverted commit causes regression when ldconfig not in
> DISTRO_FEATURES, before, without ldconfig in DISTRO_FEATURES,
> ctypes.util.find_library(name) can find the lib if it is installed, now,
> since ldconfig is not installed, ctypes.util.find_library(name) cannot
> find the lib even if it is installed.
>
> Here is one usecase(gtk+3 lib is installed, ctypes.util.find_library
> used to find the lib):
> import wx.lib.wxcairo as wxcairo
> File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/{}init{}.py", line 59, in <module>
>   from .wx_cairocffi import _ContextFromDC, _FontFaceFromFont
> File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/wx_cairocffi.py", line 189, in <module>
>   gdkLib = _findGDKLib()
> File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/wx_cairocffi.py", line 181, in _findGDKLib
>   return _findHelper([libname], 'gdk',
>                      "Unable to find the GDK shared library")
> File "/usr/lib/python3.13/site-packages/wx/lib/wxcairo/wx_cairocffi.py", line 170, in _findHelper
>   raise RuntimeError(msg)
> RuntimeError: Unable to find the GDK shared library
>
> [1] https://git.openembedded.org/openembedded-core/tree/meta/classes-global/package.bbclass#n394
> [2] https://git.openembedded.org/openembedded-core/tree/meta/lib/oe/rootfs.py#n316
> [3] https://github.com/systemd/systemd-stable/blob/v255-stable/units/ldconfig.service
>
> Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ---

Hi,

Thanks for your patch. However, I believe this is introducing some
regression: I've got some ptest failures on the autobuilder:

AssertionError:
Failed ptests:
{'python3': ['test_timerfd_TFD_TIMER_ABSTIME', 'python3']}

https://autobuilder.yoctoproject.org/valkyrie/#/builders/73/builds/992

You can get some more advanced about ptest failures in there:

https://valkyrie.yocto.io/pub/non-release/20250221-33/testresults/qemux86-64-ptest/core-image-ptest-python3/

Can you have a look at this issue please?
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3_3.13.2.bb b/meta/recipes-devtools/python/python3_3.13.2.bb
index 52fac76c00..f64d67da89 100644
--- a/meta/recipes-devtools/python/python3_3.13.2.bb
+++ b/meta/recipes-devtools/python/python3_3.13.2.bb
@@ -477,9 +477,7 @@  FILES:${PN}-man = "${datadir}/man"
 
 # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395
 RDEPENDS:libpython3:append:libc-glibc = " libgcc"
-RDEPENDS:${PN}-ctypes:append:libc-glibc = "\
-    ${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)} \
-"
+RDEPENDS:${PN}-ctypes:append:libc-glibc = " ${MLPREFIX}ldconfig"
 RDEPENDS:${PN}-ptest = "\
     ${PN}-dev \
     ${PN}-modules \