Re: libxml2 2.12.0 (and 2.12.1) in rawhide, with some API breaks

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

 



On Tue, Nov 28, 2023 at 06:26:18PM +0100, Dodji Seketeli wrote:
> > While most (all?) libxml2 functions pass a pointer to xmlParserCtxt, a
> > definition of the xmlParserCtxt structure is open to anybody in
> > <libxml/parser.h>.
>
> Correct, again.
>
> However, ABI matters are often a about conventions that are specific to
> each project.
>
> In the case of libxml2, there is a (probably unwritten) convention which
> says that data structures that are essentially internal to the library
> have to be let alone.  Client code should not access those and should
> only pass them to libxml2 functions through pointers, even though these
> data structures are defined in /usr/include/libxml2/libxml/*.h.
>
> > That means an application built against old libxml2 can construct a
> > different structure than libxml2 expects.
>
> If the application does that, then it violates the ABI convention
> (softly) set by libxml2.
>
> Maybe we should send patches to the libxml2 hackers to put that
> convention into writing and help better set expectations in the future.

Since the libxml2 developers are apparently okay with changing their
structs in ABI-incompatible ways on account of the fact that users
are not supposed to be accessing them directly anyway, perhaps they
could fully commit to this idea by moving struct definitions to the
.c files and leaving just the typedefs in the .h files? That's how
other libraries handle the situation.

-- 
Andrea Bolognani / Red Hat / Virtualization
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux