All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Question about adding dbus-cxx and updating libsigc
@ 2021-09-28  9:51 Lang Daniel
  2021-10-05 19:46 ` Arnout Vandecappelle
  0 siblings, 1 reply; 4+ messages in thread
From: Lang Daniel @ 2021-09-28  9:51 UTC (permalink / raw)
  To: buildroot

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?

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.

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?

Regards,
Daniel Lang

Software Engineer
abatec GmbH
Oberregauer Straße 48
4844 Regau, Austria
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Buildroot] Question about adding dbus-cxx and updating libsigc
  2021-09-28  9:51 [Buildroot] Question about adding dbus-cxx and updating libsigc Lang Daniel
@ 2021-10-05 19:46 ` Arnout Vandecappelle
  2021-10-14 10:43   ` Lang Daniel
  0 siblings, 1 reply; 4+ messages in thread
From: Arnout Vandecappelle @ 2021-10-05 19:46 UTC (permalink / raw)
  To: Lang Daniel, buildroot; +Cc: Yann E. MORIN, Thomas Petazzoni

  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.

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


> 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've added the other maintainers in Cc for confirmation.

  Regards,
  Arnout



> 
> Regards,
> Daniel Lang
> 
> Software Engineer
> abatec GmbH
> Oberregauer Straße 48
> 4844 Regau, Austria
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] Question about adding dbus-cxx and updating libsigc
  2021-10-05 19:46 ` Arnout Vandecappelle
@ 2021-10-14 10:43   ` Lang Daniel
  2021-10-14 20:17     ` Arnout Vandecappelle
  0 siblings, 1 reply; 4+ messages in thread
From: Lang Daniel @ 2021-10-14 10:43 UTC (permalink / raw)
  To: buildroot, Arnout Vandecappelle
  Cc: james.knight, Yann E. MORIN, Thomas Petazzoni

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@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
>> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Buildroot] Question about adding dbus-cxx and updating libsigc
  2021-10-14 10:43   ` Lang Daniel
@ 2021-10-14 20:17     ` Arnout Vandecappelle
  0 siblings, 0 replies; 4+ messages in thread
From: Arnout Vandecappelle @ 2021-10-14 20:17 UTC (permalink / raw)
  To: Lang Daniel, buildroot; +Cc: james.knight, Yann E. MORIN, Thomas Petazzoni



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@buildroot.org
>>> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-10-14 20:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-28  9:51 [Buildroot] Question about adding dbus-cxx and updating libsigc Lang Daniel
2021-10-05 19:46 ` Arnout Vandecappelle
2021-10-14 10:43   ` Lang Daniel
2021-10-14 20:17     ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.