Hello Luca,
Thank you for your interest in porting GParted to Gtk3. Yes targeting Gtk >= 3.4 is good. [1] I like your overall strategy of porting to Gtk3 first and then incrementing the requirement to 3.4 and then removing use of deprecated APIs.
A successful pull request would meet the following criteria:
Each commit makes a small independent change.
The commit message explains why the change is necessary. References to and optional small quotes from porting guides and deprecated classes / methods are encouraged where appropriate.
Every commit passes './autogen.sh && make'. Ideally also passes 'make distcheck'. This is for git bisectability.
As gedakc mentioned above also see Developing GParted using Git. For examples see commits authored by myself, Mike Fleetwood.
I had a look at your first commit "change configure.ac to use gtkmm-3.0". It requires C++11 compilation. If Gtkmm >= 3.4 *requires* C++11 that is OK, but please provide a reference in the changelog. If not please don't add it, as it is forcing a requirement which otherwise doesn't exist. There are distros which meet the Gtkmm >= 3.4 requirement but have slightly older versions of glibmm and libsigc++ which don't required C++11 compilation. E.g. Debian 8 with glibmm 2.42.0 and libsigc++ 2.4.0.
I also have a question for you about running GParted as root under Wayland. I thought that Gtk3 used native Wayland display API when available and that Wayland only allows processes run by the logged in user to communicate with the Wayland display process. As such I expected GParted run as root under Wayland to fail to work. However when I tested it it did work. GParted/Gtk3 made use of the X11 display API and worked. Do you know why? It is important to make sure GParted runs on GNOME and Xfce desktops using Wayland and X11 display.
References to how we had to work around this for Gtk2 making X11 display calls on Wayland display.
* GParted Forum Thread: [SOLVED] How to run GParted on a GNOME Wayland desktop
* GParted Bug 776437 - Interim fix for GParted fails to run as root under Wayland
Happy to help and review more when you're ready.
Thanks,
Mike
--
[1] Targeting Gtk >= 3.4 consideration:
We try to keep GParted HEAD compiling on all still supported versions of distros. RHEL/CentOS 6, and I think SLES 11, are the only/major old still supported distros which are Gtk 2 only. As they are very old and newer releases exist, RHEL/CentOS 7 and SLES 12, which do support Gtk 3 then we are OK do drop support for them.
I've looked at the version of Gtkmm 3.0 in the major distros and the oldest is 3.4 in Debian 7. Debian 7 is due to end support this month, May 2018. After that the oldest version of Gtkmm is 3.10.1.
Distro EOL Gtkmm 3.0
- RHEL / CentOS 6 2020-Nov None
- RHEL / CentOS 7 2024-Jun 3.22.0
- Ubuntu 14.04 LTS 2019-Apr 3.10.1
- Ubuntu 16.04 LTS 2021-Apr 3.18.0
- Ubuntu 18.04 LTS 2023-Apr 3.22.2
- Debian 7 2018-May 3.4.2
- Debian 8 2020-Jun 3.14.0
- Debian 9 2020-Jun 3.22.0
- SLES 11 2022-Mar None
- SLES 12 2027-Oct 3.10.1