On Mon, Apr 16, 2018 at 12:14:59PM +0200, Antonio Larrosa wrote:
> Then I checked the full list of changes between 0.9.5 and current
> code in trunk and noticed there are many changes that give an
> incompatible ABI with respect to 0.9.5 .
> 
> Is there any policy with respect to maintaining ABI compatibility in
> different versions of the library? I think it's important for users
> to keep a compatible ABI, as otherwise, any update forces a rebuild
> of all applications using podofo

PoDoFo bumps SONAME in each release, and it has always been like that.
As you noticed there are plenty of ABI changes (just looking at the
symbols…  I haven't actually checked public enums, structs etc).  Trying
to avoid a single one is kind of pointless.

BTW, before trying to achieve some kind of ABI stability, there are
plenty of private symbols that leak, which makes tracking ABI very hard¹

> and some times, that's not easy for users to do.

That's why in the linux world there distributors between developers and
users, to take care of this kind of stuff (that falls in the bigger word
of "integration").
And those users that build directly PoDoFo themeselves, they better know
what a shared library is and how to handle it, otherwise they probably
shouldn't do what they are doing.



¹ I try this pretty much at every release:
https://salsa.debian.org/debian/libpodofo/commit/5e4030ce3b889907eb888fdf072cbab466c0b7cb
https://salsa.debian.org/debian/libpodofo/commit/df41e92eb97c42f3b3b7f8c60d3d256a2963e0c4
https://salsa.debian.org/debian/libpodofo/commit/4217d13c7e3501331e81ceab67e30ae833db1b5a
https://salsa.debian.org/debian/libpodofo/commit/6ff3485962aa9844ed600c0ff7d1461d4d36079b

Between the last one and the others I've spent some hours trying to get
something that worked for more than only amd64, but there are several
symbols that varies across all archs (which is kind of fine, it's due to
things like size_t, ssize_t, uint64_t, etc, but there are really too
many and I'm convinced very few of them should be visible).

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to