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

Re: xenstore_lib.h and libxenstore API/ABI problems



On 02.03.21 16:23, Andrew Cooper wrote:
Hello,

This is a total mess.

libxenstored does not have a stable ABI.  xenstore_lib.h contains:

* struct xs_permissions, which contains an enum - one of the very common
ABI traps.

* the prototypes for expanding_buffer_ensure(), sanitise_value() and
unsanitise_value(), which are inappropriately-namespaced symbols in
libxenstore

* struct expanding_buffer with a classic string-handling trap (int len).

* Various xenstored-internal details such as struct xs_tdb_record_hdr,
the internal permission bits, as well as stuff like
xs_daemon_{root,run}dir(), and worse xs_daemon_tdb(),  which have
absolutely no business being external to xenstored.


Its clear that most of this shouldn't be part of libxenstore, but that
ship has sailed.  3.0.3 is broken and cannot be fixed.

My best suggestion is that we freeze 3.0.3 where it is, and create a 4.0
which has all of the xenstore_lib.h content deleted.  That, AFAICT, gets
us something which is 99% compatible, and stands a chance of being able
to kept properly stable.

Thoughts?

How would that work in practice?

Would we ship both libraries, or only 4.0?


Juergen



Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.