[MIR] gtkmm4.0

Bug #2020472 reported by Jeremy Bícha
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gtkmm4.0 (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

[Availability]
The package gtkmm4.0 is already in Ubuntu universe.
The package gtkmm4.0 is built for all Ubuntu architectures except i386 (where it is not needed)
Link to package https://launchpad.net/ubuntu/+source/gtkmm4.0

[Rationale]
- The package gtkmm4.0 is a new runtime dependency of package transmission that we already support. (Transmission has been included in Ubuntu Desktop for many years. Transmission previously used C for the desktop app but C++ for much of the rest of the codebase. With the latest version, Transmission has standardized on C++ for all its codebase.)

- gtkmm4.0 is the GTK4 bindings for C++. We are not yet able to drop gtkmm3.0 (GTK3) to universe. However, we do want to support GTK4 C++ now. GTK4 is now used for a considerable amount of default Ubuntu Desktop apps.

- There are 3 GTK3 C++ apps in main, gparted, gnome-system-monitor, and open-vm-tools-desktop.
  + It seems likely that gnome-system-monitor will be ported to GTK4 for GNOME 45 (Ubuntu 23.10) or at least GNOME 46 (Ubuntu 24.04 LTS). See the checklist and recent comments at https://gitlab.gnome.org/GNOME/gnome-system-monitor/-/merge_requests/55
  + gparted is included in the Ubuntu Desktop installer only. It is not part of the default install. There currently are no plans to port gparted to GTK4. https://gitlab.gnome.org/GNOME/gparted/-/issues/176
  + open-vm-tools-desktop might not need to be in main. If this is a concern, we should check with the Server and Desktop teams.

- The package gtkmm4.0 is required in Ubuntu main no later than August 17, Ubuntu 23.10 Feature Freeze, because it is a dependency of transmission and perhaps gnome-system-monitor 45.

[Security]
- No CVEs/security issues in this software in the past
+ https://ubuntu.com/security/cve?package=gtkmm3.0
+ https://security-tracker.debian.org/tracker/source-package/gtkmm3.0
+ https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=gtkmm

- no `suid` or `sgid` binaries
- no executables in `/sbin` and `/usr/sbin`
- Package does not install services, timers or recurring jobs
- Package does not open privileged ports (ports < 1024)
- Package does not contain extensions to security-sensitive software (filters, scanners, plugins, UI skins, ...)

[Quality assurance - function/usage]
- The package works well right after install

[Quality assurance - maintenance]
- The package is maintained well in Debian/Ubuntu/Upstream and does not have too many, long-term & critical, open bugs
+ Ubuntu https://bugs.launchpad.net/ubuntu/+source/gtkmm3.0
  https://bugs.launchpad.net/ubuntu/+source/gtkmm4.0
+ Debian https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=gtkmm3.0
  https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=gtkmm4.0
+ Upstream https://gitlab.gnome.org/GNOME/gtkmm/-/issues

- The package does not deal with exotic hardware we cannot support

[Quality assurance - testing]
- - The package runs a test suite on build time, if it fails it makes the build fail, link to build log https://launchpad.net/ubuntu/+source/gtkmm4.0/4.10.0-1/+latestbuild/amd64

- The package runs an autopkgtest, and is currently passing on all architectures except Ubuntu i386 (it isn't built on i386)
https://autopkgtest.ubuntu.com/packages/g/gtkmm4.0
https://ci.debian.net/packages/g/gtkmm4.0

[Quality assurance - packaging]
- debian/watch is present and works
- debian/control defines a correct Maintainer field (package is maintained in Debian)

- This package does not yield massive lintian Warnings, Errors
- Please link to a recent build log of the package
https://launchpad.net/ubuntu/+source/gtkmm4.0/4.10.0-1/+latestbuild/amd64
- Please attach the full output you have got from `lintian --pedantic` as an extra post to this bug.
- Lintian overrides are not present

- This package does not rely on obsolete or about to be demoted packages.
- This package has no python2 or GTK2 dependencies

- The package will be installed by default, but does not ask debconf questions

- Packaging and build is easy
https://salsa.debian.org/gnome-team/gtkmm4.0/-/blob/debian/master/debian/rules

[UI standards]
- Application is not end-user facing (does not need translation)
- Application is not end-user facing (does not need .desktop file)

[Dependencies]
- cairomm1.16: MIR: LP: #2020273
- glibmm2.68: MIR: LP: #2020270
- libsigc++-3.0: MIR: LP: #2020272
- pangomm2.48: MIR: LP: #2020267

[Standards compliance]
- This package correctly follows FHS and Debian Policy

[Maintenance/Owner]
- Owning Team will be Desktop Packages
- Team is not yet, but will subscribe to the package before promotion

- This does not use static builds
- This does not use vendored code
- This package is not rust based
- The package has been built in the archive more recently than the last test rebuild

[Background information]
The Package description explains the package well
Upstream Name is gtkmm
Link to upstream project https://gitlab.gnome.org/GNOME/gtkmm

Tags: mantic
Jeremy Bícha (jbicha)
description: updated
Revision history for this message
Jeremy Bícha (jbicha) wrote :

E: gtkmm4.0 changes: distribution-and-experimental-mismatch
W: libgtkmm-4.0-0: changelog-distribution-does-not-match-changes-file experimental != mantic-proposed [usr/share/doc/libgtkmm-4.0-0/changelog.Debian.gz:1]
W: libgtkmm-4.0-doc: changelog-distribution-does-not-match-changes-file experimental != mantic-proposed [usr/share/doc/libgtkmm-4.0-doc/changelog.Debian.gz:1]
I: libgtkmm-4.0-0: no-symbols-control-file usr/lib/x86_64-linux-gnu/libgtkmm-4.0.so.0.0.0
I: gtkmm4.0 source: ored-build-depends-on-obsolete-package Build-Depends: libgdk-pixbuf2.0-dev (>= 2.35.5) => libgdk-pixbuf-2.0-dev and optionally libgdk-pixbuf-xlib-2.0-dev
I: libgtkmm-4.0-dev: ored-depends-on-obsolete-package Depends: libgdk-pixbuf2.0-dev (>= 2.35.5) => libgdk-pixbuf-2.0-dev and optionally libgdk-pixbuf-xlib-2.0-dev
I: gtkmm4.0 source: out-of-date-standards-version 4.6.1 (released 2022-05-11) (current is 4.6.2)
I: gtkmm4.0 source: repackaged-source-not-advertised [debian/copyright]
I: gtkmm4.0 source: superficial-tests [debian/tests/control]

Jeremy Bícha (jbicha)
Changed in gtkmm4.0 (Ubuntu):
status: Incomplete → Confirmed
Changed in gtkmm4.0 (Ubuntu):
assignee: nobody → Ioanna Alifieraki (joalif)
Revision history for this message
Ioanna Alifieraki (joalif) wrote (last edit ):

Review for Package: gtkmm4.0

[Summary]
MIR team ACK under the constraint to resolve the below listed
required TODOs and as much as possible having a look at the
recommended TODOs.
This does not need a security review
List of specific binary packages to be promoted to main: libgtkmm-4.0, libgtkmm-4.0-dev, libgtkmm-4.0-doc

Notes:
#1: symbols tracking is not in place (due to being a C++ library, this can be downgraded to a recommendation if proper reasoning is given of why this isn't feasible for this library or how it was tried to fix ABI checker tooling)
-#2: The package should get a team bug subscriber before being promoted

[Duplication]
This package is require for the transmission package.

[Dependencies]
OK:
- no other Dependencies to MIR due to this
- no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
  more tests now.

Problems: None

[Embedded sources and static linking]
OK:
- no embedded source present
- no static linking
- does not have unexpected Built-Using entries
- not a go package, no extra constraints to consider in that regard
- Does not include vendored code

Problems: None

[Security]
OK:
- history of CVEs does not look concerning
- does not run a daemon as root
- does not use webkit1,2
- does not use lib*v8 directly
- does not parse data formats (files [images, video, audio,
  xml, json, asn.1], network packets, structures, ...) from
  an untrusted source.
- does not open a port/socket
- does not process arbitrary web content
- does not use centralized online accounts
- does not integrate arbitrary javascript into the desktop
- does not deal with system authentication (eg, pam), etc)
- does not deal with security attestation (secure boot, tpm, signatures)
- does not deal with cryptography (en-/decryption, certificates, signing, ...)

Problems: None

[Common blockers]
OK:
- does not FTBFS currently
- does have a test suite that runs at build time
  - test suite fails will fail the build upon error.
- does have a non-trivial test suite that runs as autopkgtest
- no new python2 dependency

Problems: None

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- debian/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is good
- Debian/Ubuntu update history is good
- the current release is packaged
- promoting this does not seem to cause issues for MOTUs that so far
  maintained the package
- no massive Lintian warnings
- debian/rules is rather clean
- It is not on the lto-disabled list

Problems:
- Symbols tracking is not in place.

[Upstream red flags]

OK:
- no Errors/warnings during the build
- no incautious use of malloc/sprintf (as far as we can check it)
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside
  tests)
- no use of user nobody
- no use of setuid
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit, seed or libgoa-*
- not part of the UI for extra checks
- no translation present, but none needed for this case (user visible)?

Problems: None

Changed in gtkmm4.0 (Ubuntu):
status: Confirmed → In Progress
assignee: Ioanna Alifieraki (joalif) → nobody
Changed in gtkmm4.0 (Ubuntu):
status: In Progress → Incomplete
Revision history for this message
Jeremy Bícha (jbicha) wrote :

I have added a symbols file and strict symbols tracking for all 64-bit architectures (at least in Ubuntu, so that excludes i386 and armhf). I do need to make minor adjustments for ppc64el, s390x, and riscv64 on Wednesday after my holiday on Tuesday.

https://launchpad.net/ubuntu/+source/gtkmm4.0/4.10.0-2

Revision history for this message
Jeremy Bícha (jbicha) wrote :

Strict symbols checking was disabled for riscv64 (not worth the extra maintenance burden); it's enabled for amd64, arm64, ppc64el and s390x. This is in mantic-proposed, waiting for the autopkgtest queue to catch up.

https://launchpad.net/ubuntu/+source/gtkmm4.0/4.10.0-3

Changed in gtkmm4.0 (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thank you so much, I checked the set of gtkmm4.0, cairomm1.16 and glibmm2.68 together.
They have been good from the start, on each the required todo's have been resolved (mostly symbols).

Before promotion you'll still need to subscribe as right now I only see those sources subscribed by desktop-packages:
cairomm
glibmm2.4
gtkmm2.4
gtkmm3.0
But I'm sure seb will sort that out on promotion itself where it is a requirement to be present.

We might not yet be able to let GTK3 go [1], but GTK4 can go in, thanks for your efforts on all of this!
This is already in component mismatches, setting to fix-committed.

The full set of packages seem to be ready, so I'm also subscribing ubuntu-archive-admins, but would leave it to (probably Seb) others to promote in a way coordinated with other Desktop uploads.

[1]: https://bugs.launchpad.net/ubuntu/+source/glibmm2.68/+bug/2020270/comments/6

Changed in gtkmm4.0 (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Steve Langasek (vorlon) wrote :

gtkmm4.0 4.10.0-3 in mantic: universe/misc -> main
libgtkmm-4.0-0 4.10.0-3 in mantic amd64: universe/libs/optional/100% -> main
libgtkmm-4.0-0 4.10.0-3 in mantic arm64: universe/libs/optional/100% -> main
libgtkmm-4.0-0 4.10.0-3 in mantic armhf: universe/libs/optional/100% -> main
libgtkmm-4.0-0 4.10.0-3 in mantic ppc64el: universe/libs/optional/100% -> main
libgtkmm-4.0-0 4.10.0-3 in mantic riscv64: universe/libs/optional/100% -> main
libgtkmm-4.0-0 4.10.0-3 in mantic s390x: universe/libs/optional/100% -> main
libgtkmm-4.0-dev 4.10.0-3 in mantic amd64: universe/libdevel/optional/100% -> main
libgtkmm-4.0-dev 4.10.0-3 in mantic arm64: universe/libdevel/optional/100% -> main
libgtkmm-4.0-dev 4.10.0-3 in mantic armhf: universe/libdevel/optional/100% -> main
libgtkmm-4.0-dev 4.10.0-3 in mantic ppc64el: universe/libdevel/optional/100% -> main
libgtkmm-4.0-dev 4.10.0-3 in mantic riscv64: universe/libdevel/optional/100% -> main
libgtkmm-4.0-dev 4.10.0-3 in mantic s390x: universe/libdevel/optional/100% -> main
libgtkmm-4.0-doc 4.10.0-3 in mantic amd64: universe/doc/optional/100% -> main
libgtkmm-4.0-doc 4.10.0-3 in mantic arm64: universe/doc/optional/100% -> main
libgtkmm-4.0-doc 4.10.0-3 in mantic armhf: universe/doc/optional/100% -> main
libgtkmm-4.0-doc 4.10.0-3 in mantic i386: universe/doc/optional/100% -> main
libgtkmm-4.0-doc 4.10.0-3 in mantic ppc64el: universe/doc/optional/100% -> main
libgtkmm-4.0-doc 4.10.0-3 in mantic riscv64: universe/doc/optional/100% -> main
libgtkmm-4.0-doc 4.10.0-3 in mantic s390x: universe/doc/optional/100% -> main
20 publications overridden.

Changed in gtkmm4.0 (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.