Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 935452 - dev-libs/libxml2-2.13.1: abi breakage without soname change
Summary: dev-libs/libxml2-2.13.1: abi breakage without soname change
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Sam James
URL:
Whiteboard:
Keywords: PullRequest
: 935454 (view as bug list)
Depends on:
Blocks: 935487
  Show dependency tree
 
Reported: 2024-07-04 07:48 UTC by Alfred Wingate
Modified: 2024-11-10 21:35 UTC (History)
9 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alfred Wingate 2024-07-04 07:48:59 UTC
After upgrade to to 2.13.1 packages likes media-libs/raptor broken at runtime due to removed symbols and preserved-libs being unable to keep old library versions.

/usr/lib64/libreoffice/program/soffice.bin: symbol lookup error: /usr/lib64/libraptor2.so.0: undefined symbol: xmlNanoHTTPReturnCode, version LIBXML2_2.4.30

Snippet of build.log from media-libs/raptor-2.0.15-r8:

raptor_nfc_icu.c: In function 'raptor_nfc_icu_check':
raptor_nfc_icu.c:64:4: warning: 'unorm_quickCheck' is deprecated [-Wdeprecated-declarations]
   64 |    res = unorm_quickCheck((const UChar *)string, (int32_t)len,
      |    ^~~
In file included from raptor_nfc_icu.c:43:
/usr/include/unicode/unorm.h:244:1: note: declared here
  244 | unorm_quickCheck(const UChar *source, int32_t sourcelength,
      | ^~~~~~~~~~~~~~~~
raptor_www_libxml.c: In function 'raptor_www_libxml_init':
raptor_www_libxml.c:43:3: error: implicit declaration of function 'xmlNanoHTTPInit' [-Wimplicit-function-declaration]
   43 |   xmlNanoHTTPInit();
      |   ^~~~~~~~~~~~~~~
raptor_www_libxml.c: In function 'raptor_www_libxml_free':
raptor_www_libxml.c:51:3: error: implicit declaration of function 'xmlNanoHTTPCleanup' [-Wimplicit-function-declaration]
   51 |   xmlNanoHTTPCleanup();
      |   ^~~~~~~~~~~~~~~~~~
raptor_www_libxml.c: In function 'raptor_www_libxml_fetch':
raptor_www_libxml.c:61:5: error: implicit declaration of function 'xmlNanoHTTPScanProxy' [-Wimplicit-function-declaration]
   61 |     xmlNanoHTTPScanProxy(www->proxy);
      |     ^~~~~~~~~~~~~~~~~~~~
raptor_www_libxml.c:113:15: error: implicit declaration of function 'xmlNanoHTTPMethod' [-Wimplicit-function-declaration]
  113 |   www->ctxt = xmlNanoHTTPMethod((const char*)raptor_uri_as_string(www->uri),
      |               ^~~~~~~~~~~~~~~~~
raptor_www_libxml.c:113:13: error: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
  113 |   www->ctxt = xmlNanoHTTPMethod((const char*)raptor_uri_as_string(www->uri),
      |             ^
raptor_www_libxml.c:130:9: error: implicit declaration of function 'xmlNanoHTTPClose' [-Wimplicit-function-declaration]
  130 |         xmlNanoHTTPClose(www->ctxt);
      |         ^~~~~~~~~~~~~~~~
raptor_www_libxml.c:138:22: error: implicit declaration of function 'xmlNanoHTTPReturnCode' [-Wimplicit-function-declaration]
  138 |   www->status_code = xmlNanoHTTPReturnCode(www->ctxt);
      |                      ^~~~~~~~~~~~~~~~~~~~~
raptor_www_libxml.c:141:15: error: implicit declaration of function 'xmlNanoHTTPRead' [-Wimplicit-function-declaration]
  141 |     int len = xmlNanoHTTPRead(www->ctxt, www->buffer, RAPTOR_WWW_BUFFER_SIZE);
      |               ^~~~~~~~~~~~~~~


To keep deprecated symbols you have to use --with-legacy switch.
Comment 1 Andreas Sturmlechner gentoo-dev 2024-07-04 12:10:53 UTC
*** Bug 935454 has been marked as a duplicate of this bug. ***
Comment 2 Joonas Niilola gentoo-dev 2024-07-04 13:27:50 UTC
16:22 <juippis> even with --with-legacy there's breaking removals :\
16:22 <juippis> without the configure flag:
16:22 <juippis>    ABI: libxml2.so.2(64) func(+28,-51) [BREAKING]
16:22 <juippis>    ABI: libxml2mod.so(64) func(+5,-12) [BREAKING]
16:22 <juippis> with the configure flag:
16:23 <juippis>    ABI: libxml2.so.2(64) func(+101,-2) [BREAKING]
16:23 <juippis>    ABI: libxml2mod.so(64) func(+17,-7) [BREAKING]
16:23 <juippis> so it's definitely mitigated
16:23 <juippis> I'm thinking about masking it tbh

Yeah I'm thinking it should be masked for now. Even though with the configure option it's mitigated, it may hit some other packages. A forced downgrade should work for people. 

We may need to define subslot for libxml2 in the future...
Comment 3 Larry the Git Cow gentoo-dev 2024-07-04 13:35:28 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=38181f7165be4709471a773e042dc8525e01d2bd

commit 38181f7165be4709471a773e042dc8525e01d2bd
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2024-07-04 13:32:49 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2024-07-04 13:35:26 +0000

    profiles: mask libxml2-2.13 and libxslt-1.1.41 due to ABI breakage
    
     - details in the linked bug.
    
    Bug: https://bugs.gentoo.org/935452
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 profiles/package.mask | 9 +++++++++
 1 file changed, 9 insertions(+)
Comment 4 Larry the Git Cow gentoo-dev 2024-11-10 21:31:38 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c78eb68ed5d9723ff936eea93371d9c45cc4d6ca

commit c78eb68ed5d9723ff936eea93371d9c45cc4d6ca
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2024-11-10 21:28:40 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-11-10 21:31:17 +0000

    profiles: drop libxml2 mask
    
    Bug: https://bugs.gentoo.org/935452
    Signed-off-by: Sam James <sam@gentoo.org>

 profiles/package.mask | 9 ---------
 1 file changed, 9 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de055fb76935eb7f582675dbb519b44d17800509

commit de055fb76935eb7f582675dbb519b44d17800509
Author:     Alfred Wingate <parona@protonmail.com>
AuthorDate: 2024-07-04 13:08:21 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-11-10 21:31:17 +0000

    dev-libs/libxml2: build with legacy stubs to avoid ABI breakage
    
    Bug: https://bugs.gentoo.org/935452
    Signed-off-by: Alfred Wingate <parona@protonmail.com>
    Closes: https://github.com/gentoo/gentoo/pull/37427
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-libs/libxml2/libxml2-2.13.4.ebuild | 1 +
 dev-libs/libxml2/libxml2-9999.ebuild   | 1 +
 2 files changed, 2 insertions(+)