Bug 2176510
| Summary: | createrepo_c: symbol lookup error: /lib64/libcreaterepo_c.so.0: undefined symbol: g_string_free_and_steal | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Ondrej Mosnáček <omosnacek> |
| Component: | createrepo_c | Assignee: | rpm-software-management |
| Status: | NEW --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 39 | CC: | daniel.mach, jmracek, jrohel, mblaha, pkratoch, ppisar, rpm-software-management, tmlcoch |
| Target Milestone: | --- | Keywords: | Triaged |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Ondrej Mosnáček
2023-03-08 14:30:14 UTC
The missing symbol is used by libcreaterepo_c.so.0 library from createrepo_c-libs-0.20.1-4.fc39.x86_64:
# nm -D /usr/lib64/libcreaterepo_c.so.0 | grep g_string_free_and_steal
U g_string_free_and_steal
and the symbol is provides by libglib-2.0.so.0 library from glib2-2.76.0-1.fc39.x86_64:
# nm -D /usr/lib64/libglib-2.0.so.0 | grep g_string_free_and_steal
000000000007fa70 T g_string_free_and_steal
createrepo_c-libs package should constrain a minimal glib2 version to the one which first provided it.
From glib-2.75.3 NEWS:
* Add `g_string_free_and_steal()` and use it to warn on unused results from
`g_string_free (_, FALSE)` (!3219, !3226, work by Matthias Clasen and Sergey Bugaev)
from glib/gstring.h:
#define g_string_free(str, free_segment) \
(__builtin_constant_p (free_segment) ? \
((free_segment) ? \
(g_string_free) ((str), (free_segment)) : \
g_string_free_and_steal (str)) \
: \
(g_string_free) ((str), (free_segment)))
The best fix would be glib2 to symbol-version new symbols so that rpm-build automatically picks the dependency. However, because glib2 does not use symbol versioning, I recommend fix it on createrepo_c by adding "Requires: glib2 >= 2.75.3" (if compiled against glib2 > 2.75.3).
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle. Changing version to 39. |