[Buildroot] Question about adding dbus-cxx and updating libsigc

Arnout Vandecappelle arnout at mind.be
Thu Oct 14 20:17:37 UTC 2021



On 14/10/2021 12:43, Lang Daniel wrote:
> Hi Arnout,
> Hello everybody,
> 
>> On 05/10/2021 09:46, Arnout Vandecappelle wrote:
>>
>>    Hi Daniel,
>>
>> On 28/09/2021 11:51, Lang Daniel wrote:
[snip]
>>> dbus-cxx depends on libsigc version 3.0.
>>> Version 2.10.6 is currently included in buildroot.
>>> Updating libsigc would mean updating cairomm, atkmm, glibmm and gtkmm.
>>> Those updates bring GTK4 into the mix, which isn't a part of buildroot.
>>> At least I couldn't find it.
>>
>>    Ugh...
>>
>>    Updating cariomm and friends will have to be done at some point. But I believe
>> GTK4 is again a major API change like GTK3 was, i.e. there's no hope that
>> packages that currently use libgtk3 are going to build successfully against
>> GTK4, right? In that case, there's no solution other than adding libgtk4 side by
>> side with libgtk3...
>>
> 
> Yes, GTK4 breaks both API and ABI compared to GTK3.

  So that means we'll need to have a libgtk4 side-by-side with libgtk3.

> The problem here is, that all the -mm packages have breaking API changes.
> If compatibility with GTK3 and the current API is to be retained while adding GTK4
> with C++ bindings, the following packages would need to be duplicated:
> - libgtk (3.24.30 vs 4.4.0)
> - gtkmm (3.24.5 vs 4.4.0)
> - cairomm (1.12.1 vs 1.16.1)
> - pangomm (2.40.1 vs 2.48.1)
> - atkmm (2.24.3 vs 2.36.1)
> - glibmm (2.66.2 vs 2.70.0)
> - libsigc (2.10.7 vs 3.0.7)
> 
> Maybe I have missed some, but those should be the major "problems".

  gstreamer1-mm depends on glibmm, so that's indirectly affected as well. But I 
expect it will still work with 2.70.0.


>>> I can try to provide patches to update everything and integrate
>>> or create a separate package for libsigc3, since both versions can be
>>> installed at the same time. Which option is preferred?
>>
>>    The "update everything" is the preferred option I think. But since that could
>> get a little hairy, we would also accept simply adding libsigc3.
>>
> 
> I guess there are four options:
> 
> 1. Have both, GTK3 and GTK4 with their respecting C++ bindings (-mm packages).
> Which would mean duplicating the afore-mentioned packages.

  That's quite a lot of work. Although, in the end, it's just 6 packages, so not 
impossible. It does uglify things a bit though.


> 2. Duplicate libsigc and add dbus-cxx. No GTK4 C++ bindings.

  That is definitely something that can be done on the short term, just to make 
progress. We can eventually deprecate libsigc itself and only keep libsigc3. 
We've done that before.

> 3. Leave everything as it is and don't add dbus-cxx.
> 
> 4. Drop C++ bindings for GTK3 and only support GTK4.
> This will break some packages and every likely become a problem for people using GTK3 with C++.

  That is not a priori impossible. There are no internal consumers. James 
originally contributed the package, and nobody else made major contributions. 
There were some version bumps from Fabrice and Adam but I suspect that those 
were just related to glib bumps. So if James is OK with an update to GTK4 for 
all the -mm packages, I think we're good.


  Another option that would allow progress for libsigc, glibmm and dbus-cxx at 
least is to patch the other packages to comply with the libsigc3 API. Any idea 
how much work that would be? There are probably upstream commits that can be 
backported even.


> I think, GTK4 (without C++ bindings) could be added regardless without duplicating packages.
> Would mean, that buildroot supports three GTK versions (2.24.x, 3.24.x, 4.x).

  Yes, adding GTK4 without the mm stuff can be done in parallel. But that 
doesn't solve the problem for libsigc.


  Regards,
  Arnout

> 
>>    I've added the other maintainers in Cc for confirmation.
> 
> Thanks
> 
> I've added James Knight, since he is the listed in the DEVELOPERS file for the affected packages.
> 
> Regards,
> Daniel
> 
>>
>>    Regards,
>>    Arnout
>>
>>
>>
>>>
>>> Regards,
>>> Daniel Lang
>>>
>>> Software Engineer
>>> abatec GmbH
>>> Oberregauer Straße 48
>>> 4844 Regau, Austria
>>> _______________________________________________
>>> buildroot mailing list
>>> buildroot at buildroot.org
>>> https://lists.buildroot.org/mailman/listinfo/buildroot


More information about the buildroot mailing list