On Mon, Oct 12, 2020 at 5:18 PM SZ Lin (林上智) <SZ.Lin@xxxxxxxx> wrote: > > Hi, > > <snip> > > > I personally don't care much about how desktop distros handle this - I'm mostly > > interested in bespoke embedded distros built with yocto or buildroot. I'm Cc'ing > > SZ Lin who maintains the libgpiod debian package. > > Nowadays, many embedded distros are derived from Debian, such as Raspberry Pi OS > (previously called Raspbian). Moreover, the meta-debian [1] provides the recipes for the > Poky build system to build images using Debian source packages within the Yocto project [2]. > > [1] https://github.com/meta-debian/meta-debian > [2] https://www.yoctoproject.org/learn-items/deby-reproducible-and-maintainable-embedded-linux-environment-with-poky/ > > > > > SZ Lin: libgpiod will get a new major release in the following months > > - the API will become v2.x and ABI v3.x - do you think it's important to make it > > possible for two major versions of libgpiod to live together in a single system? I > > It's possible, but I think it's *no strongly needed* and there are no other Debian > packages depend on libgpiod, as shown below. > > === > apt rdepends libgpiod2 > libgpiod2 > Reverse Depends: > Depends: libgpiod-dev (= 1.5.2-1) > Depends: python3-libgpiod (= 1.5.2-1) > Depends: gpiod (>= 1.5.1) > === > > All of the above binary packages are built from the same (libgpiod) source package. > > > would like to avoid having to rename everything and use libgpiod2.0 > > everywhere - this information is already stored in the API version. Does debian > > support something like yocto's virtual providers maybe? How do you see this for > > a desktop distro. > > I'm not familiar with Yocto's mechanism, but in this case, the ABI changes seem that > are not backward-compatible; we normally require changing the SONAME of the library > and the shared library package name. > For the SONAME it's clear: current libgpiod.so.2 will become libgpiod.so.3. For the library package name: this is already handled by distros - for instance the package in debian is called libgpiod2. I guess it will become libgpiod3 then. I think we're good in that regard then. Bartosz