[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