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

Lang Daniel d.lang at abatec.at
Thu Oct 14 10:43:48 UTC 2021


Hi Arnout,
Hello everybody,

> On 05/10/2021 09:46, Arnout Vandecappelle wrote:
> 
>   Hi Daniel,
> 
> On 28/09/2021 11:51, Lang Daniel wrote:
>> Hello everybody,
>> 
>> I would like to add dbus-cxx (https://github.com/dbus-cxx/dbus-cxx), which
>> compared to the existing dbus-cpp package is in active development.
>> The last release of dbus-cpp was in 2011.
>> 
>> Is having two different  dbus C++ packages preferred,
>> or should dbus-cpp be deprecated?
>
>  I haven't looked at the details, but I assume dbus-cxx and dbus-cpp have 
>completely different, incompatible API? In that case, dbus-cxx should definitely 
>be a new package.

Yes, they are two different projects with different APIs.

>
>  We could remove the old dbus-cpp, but generally we don't do that unless 
>there's a big reason (difficult to fix build-time or runtime problems, major 
>unfixed security issues, ...).

dbus-cpp has a few dependencies (mainly dbus, expat).
I'm not aware of any security issues or build/runtime problems.
So leaving dbus-cpp as is shouldn't be a problem.

>
>
>> 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.

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".

>
>> 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.

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

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++.

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).

>  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