Re: [xml] belated question about xmlregexp removal at 2.9.10



Hi Tim!

On Sun, 14 Nov 2021 15:12:52 -0600 (CST)
Tim Mooney via xml <xml gnome org> wrote:

Hi!

This is my first post to the xml mailing list.  I spent some time looking
through the mailing list archives, but couldn't find an answer to my
question.  If I somehow missed relevant discussion, please point me at
it.

When libxml2 2.9.10 was released, a number of formerly-public symbols
were removed from the shared library.  On the surface, that seems like
it would be an ABI break, which might suggest a change in the SONAME of
the library (such as a version bump from .2 to .3).  That didn't happen,
though.


Reading the code, I see:

```
if test "$with_regexps" = "no" ; then
    echo Disabling Regexps support
    WITH_REGEXPS=0
    TEST_REGEXPS=
else    
    WITH_REGEXPS=1
    TEST_REGEXPS="Regexptests Automatatests"
fi
AC_SUBST(WITH_REGEXPS)
AC_SUBST(TEST_REGEXPS)

```

Did you try --with-regexps?

I see from libxml2's "syms" file the comment that the soname never
changes, but it's not clear to me how the symbol versioning helps with
ABI compatibility when symbols are removed.

For example, if I compile a binary and link it against the 2.9.7+patches
libxml2 on Red Hat Enterprise Linux 8, and then copy that binary to a
RHEL 9 beta system, which will presumably include 2.9.12, won't that
binary execute for a while but then crash if it tries to access one of
the removed xmlExp* symbols?

I'm asking mainly because I'm one of the volunteers that contributes
package updates to OpenIndiana, one of the Illumos distros that came out
of the former OpenSolaris project.  We're currently shipping libxml2 2.9.9
with a bunch of patches, but we would like to update to current.  The
ABI change has me wondering how involved that process is going to be.

Thanks!

PS: All of the removed symbols and interfaces are still documented on your
web site, with no mention of deprecation or removal.

Tim



-- 

Shlomi Fish       https://www.shlomifish.org/
Chuck Norris/etc. Facts - https://www.shlomifish.org/humour/bits/facts/

Java is a DSL (= Domain Specific Language) to transform big XML documents
into long exception stack traces. — Scott Bellware

Please reply to list if it's a mailing list post - https://shlom.in/reply .


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]