<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Would it be worth to consider introducing gtkmm (and by extension glibmm) as new dependency and then at the same time convert gui element per gui element to c++ ?</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">It might ease to full transition to c++, but it will introduces new build dependencies in our packages (windows, macos and flatpak) and our downstream distro packagers.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">If we'd consider this, I think that work should move to a new development branch rather than stable though...</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Regards,</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Geert</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Op zondag 19 april 2026 07:17:32 Midden-Europese zomertijd schreef Russ Gorby:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Ahh thats good information john. Ive already done some work on this but i</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> think it makes, better sense to pivot to the leaf code as you suggest. Ill</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> clean up what i have and save it for later.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Appreciate the guidance.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> On Sat, Apr 18, 2026, 9:51 PM John Ralls <jralls@ceridwen.us> wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > On Apr 18, 2026, at 16:39, <russ.gorby@gmail.com> <russ.gorby@gmail.com></p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > I was planning to convert this library next but I’m concerned about the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > review burden. It has 77 C code files and about the same number of header</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > files.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Is there better approach than doing everything all at once?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > I’m resistant to doing a subset of .c files because I want to identify .h</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > files in the target that can transition to .hpp files based on where they</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > are included from and doing subset chunks could reduce the set that can</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > transition during this effort.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > All I can think of is do minimal conversion first and then the deeper</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > convert as phase 2.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Thank you for your opinions.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > -russ</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > It actually has 71 C files, 74 C headers, 6 C++ files and 2 C++ headers.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Most of gnome-utils is used by gnome and register, so very few of the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > header files will be convertible until those other directories are</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > converted too. Also nearly everything in there is derived from Gtk classes</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > so even once you have it all compiling in C++ you’re still stuck with the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > GObject lifetime and memory models. So not only would converting all 71</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > files in a single PR be unpleasant to review, it’s going to take a lot</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > longer than a single PR should. You really need to chunk it. There are</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > some</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > logical chunks: All of the tree-models (8 C files) would be a good one,</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > and</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > the 7 tree-views a complementary second chunk. There are 13 dialog files</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > that could be jammed into a single PR but might be more comfortable in 2.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > You might also consider going downstream instead: register is already</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > broken into 3 directories with 14-17 C files each and it’s nearly all leaf</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > code, meaning that very little depends on it so you’ll be able to convert</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > more headers and need to have C linkage on fewer functions. gnome is 40 C</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > files and again is more leaf code than is gnome-utils, but it still</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > interacts strongly with Gtk so there’s less opportunity for converting</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > headers or using C++ linkage.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Regards,</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > John Ralls</p>
<br /><br /></body>
</html>