[systemd-devel] Can apps ship their own copy of libudev?

Kok, Auke-jan H auke-jan.h.kok at intel.com
Thu Oct 24 19:09:32 CEST 2013


On Thu, Oct 24, 2013 at 6:39 AM, Kay Sievers <kay at vrfy.org> wrote:
> On Thu, Oct 24, 2013 at 3:15 PM, Laszlo Papp <lpapp at kde.org> wrote:
>> On Thu, Oct 24, 2013 at 2:09 PM, Kay Sievers <kay at vrfy.org> wrote:
>
>>> No, you cannot really ship your own libudev, it is coupled with the
>>> daemon. They speak a non-trivial wire protocol and write udev database
>>> files which are a private implementation only; they changed in the
>>> past, and might change at any time again. Libudev and udevd can only
>>> be used in the same version.
>
>> Do you provide some compatibility for a reasonable time to accommodate the
>> existing users to switch onto the changed wired protocol?
>
> No, the daemon and the lib need to be updated at the same time, there
> is no promise about compat in any direction, they just belong
> together.
>
>> Failing that, what
>> would you suggest for the Qt developers? Is there an alternative solution to
>> keep udev in the loop without building two separate packages, or
>> distribution dependent packages?
>
> Libudev0 and libudev1 are almost API compatible, only a few pointless
> functions are no longer provided by the new library. There should be
> no problem at compilation time, both versions should work fine. Things
> built by distributions should not notice anything, but for binary
> compatibility across different versions of libraries, I have no
> sensible idea, sorry.

One of the places I encountered this problem is Steam - it links
against libudev0 while most non-pleistocene distributions are well
into libudev1... Symlinking them allows me to waste time playing games
:^)

I can't recompile Steam, sadly.

Auke


More information about the systemd-devel mailing list