[Summary]
gnome-snapshot is GNOME's photo and video capturing application, replacing "Cheese".
There are plenty of webcam application in the archive, but only src:cheese in main,
which is supposed to be demoted as part of this MIR.
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 need a security review, so I'll assign ubuntu-security
List of specific binary packages to be promoted to main: gnome-snapshot
Specific binary packages built, but NOT to be promoted to main: <None>
Notes:
#0 Requesting security review due to parsing audio/video/image data and vendored dependency tracking
Required TODOs:
#1 src:cheese needs to be demoted as part of the promotion process
#2 try getting rid of pre-compiled static libraries
#3 Improve tracking of vendored Rust dependencies (e.g. using dh_cargo),
see https://wiki.ubuntu.com/RustCodeInMain
#4 get gstreamer1.0-libcamera binary (src:libcamera) promoted, (LP: #1997560)
#5 Document how to refresh the vendored dependencies
Recommended TODOs:
#6 The package should get a team bug subscriber before being promoted (~desktop-packages subscribed)
#7 Consider implementing autopkgtests, using a simulated video device
#8 Give clearer guidance on where and how packaging will be hosted (e.g. using Vcs-Git control fields)
And how the Ubuntu delta will be handled going forward, see bug #2054163
#9 consider fixing some of the more relevant lintian warnings:
E: gnome-snapshot source: unpack-message-for-orig gnome-snapshot_45.2+vendored.orig.tar.xz . ar failed for snapshot-45.2/vendor/winapi[...].a
W: gnome-snapshot: no-manual-page [usr/bin/snapshot]
I: gnome-snapshot: hardening-no-fortify-functions [usr/bin/snapshot]
[Rationale, Duplication and Ownership]
OK:
- A team is committed to own long term maintenance of this package.
- The rationale given in the report seems valid and useful for Ubuntu
Problems:
- There is another package in main providing the same functionality: Cheese (to be demoted)
rmadison -r noble -c main {cheese,kamoso,uvccapture,fswebcam,webcam,webcamd}
[Dependencies]
OK:
- no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
more tests now.
Problems:
- other Dependencies to MIR/promote: gstreamer1.0-libcamera binary from src:libcamera (main)
see bug #1997560
[Embedded sources and static linking]
OK:
- does not have unexpected Built-Using entries
- not a go package, no extra constraints to consider in that regard
- Rust package that has all dependencies vendored. It does neither
have *Built-Using (after build). Nor does the build log indicate
built-in sources that are missed to be reported as Built-Using.
- Includes vendored code
Problems:
- embedded source present
- static linking, also pre-compile static libraries (mostly winap, but also vendor/rustix, vendor/system-deps): $ find . | grep "\.a"
- rust package not using dh_cargo (dh ... --buildsystem cargo)
- the package has documented how to refresh vendored code at <TBD>
- Vendored Rust dependency tracking missing, see https://wiki.ubuntu.com/RustCodeInMain
[Security]
OK:
- history of CVEs does not look concerning (but it's fairly young)
- does not run a daemon as root
- does not use lib*v8 directly
- 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, ...)
- this makes appropriate (for its exposure) use of established risk
mitigation features (dropping permissions, using temporary environments,
restricted users/groups, seccomp, systemd isolation features,
apparmor, ...)
Problems:
- does use webkit (vendor/web-sys/, vendor/wasm-bindgen/)
- does parse data formats (files [images, video, audio], ...) from
an untrusted source (user input).
- does expose any external endpoint (portal x11/pulseaudio/wayland socket)
[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.
- This does seem to need special HW for build or test so it can't be
automatic at build or autopkgtest time. But as outlined
by the requester in [Quality assurance - testing] there:
- is hardware and a test plan or code
- no new python2 dependency
Problems:
- does not have a non-trivial test suite that runs as autopkgtest
[Packaging red flags]
OK:
- symbols tracking not applicable for this kind of code.
- debian/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is good (but still fairly young project, less than 1 year)
- Debian/Ubuntu update history is good (but only two uploads so far)
- the current release is packaged
- promoting this does not seem to cause issues for MOTUs that so far
maintained the package
- debian/rules is rather clean
- It is not on the lto-disabled list
Problems:
- Ubuntu does carry a big delta, future plans unclear (LP: #2054163)
- lintian warnings:
E: gnome-snapshot source: unpack-message-for-orig gnome-snapshot_45.2+vendored.orig.tar.xz . ar failed for snapshot-45.2/vendor/winapi[...].a
W: gnome-snapshot: no-manual-page [usr/bin/snapshot]
I: gnome-snapshot: hardening-no-fortify-functions [usr/bin/snapshot]
[Upstream red flags]
OK:
- no Errors/warnings during the build
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests)
- no use of user nobody
- no use of setuid / setgid
- no dependency on webkit, qtwebkit, seed or libgoa-*
- part of the UI, desktop file is ok
- translation present
Review for Source Package: gnome-snapshot
[Summary]
gnome-snapshot is GNOME's photo and video capturing application, replacing "Cheese".
There are plenty of webcam application in the archive, but only src:cheese in main,
which is supposed to be demoted as part of this MIR.
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 need a security review, so I'll assign ubuntu-security
List of specific binary packages to be promoted to main: gnome-snapshot
Specific binary packages built, but NOT to be promoted to main: <None>
Notes:
#0 Requesting security review due to parsing audio/video/image data and vendored dependency tracking
Required TODOs: /wiki.ubuntu. com/RustCodeInM ain 0-libcamera binary (src:libcamera) promoted, (LP: #1997560)
#1 src:cheese needs to be demoted as part of the promotion process
#2 try getting rid of pre-compiled static libraries
#3 Improve tracking of vendored Rust dependencies (e.g. using dh_cargo),
see https:/
#4 get gstreamer1.
#5 Document how to refresh the vendored dependencies
Recommended TODOs: message- for-orig gnome-snapshot_ 45.2+vendored. orig.tar. xz . ar failed for snapshot- 45.2/vendor/ winapi[ ...].a no-fortify- functions [usr/bin/snapshot]
#6 The package should get a team bug subscriber before being promoted (~desktop-packages subscribed)
#7 Consider implementing autopkgtests, using a simulated video device
#8 Give clearer guidance on where and how packaging will be hosted (e.g. using Vcs-Git control fields)
And how the Ubuntu delta will be handled going forward, see bug #2054163
#9 consider fixing some of the more relevant lintian warnings:
E: gnome-snapshot source: unpack-
W: gnome-snapshot: no-manual-page [usr/bin/snapshot]
I: gnome-snapshot: hardening-
[Rationale, Duplication and Ownership]
OK:
- A team is committed to own long term maintenance of this package.
- The rationale given in the report seems valid and useful for Ubuntu
Problems: kamoso, uvccapture, fswebcam, webcam, webcamd}
- There is another package in main providing the same functionality: Cheese (to be demoted)
rmadison -r noble -c main {cheese,
[Dependencies]
OK:
- no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
more tests now.
Problems: 0-libcamera binary from src:libcamera (main)
- other Dependencies to MIR/promote: gstreamer1.
see bug #1997560
[Embedded sources and static linking]
OK:
- does not have unexpected Built-Using entries
- not a go package, no extra constraints to consider in that regard
- Rust package that has all dependencies vendored. It does neither
have *Built-Using (after build). Nor does the build log indicate
built-in sources that are missed to be reported as Built-Using.
- Includes vendored code
Problems: system- deps): $ find . | grep "\.a" /wiki.ubuntu. com/RustCodeInM ain
- embedded source present
- static linking, also pre-compile static libraries (mostly winap, but also vendor/rustix, vendor/
- rust package not using dh_cargo (dh ... --buildsystem cargo)
- the package has documented how to refresh vendored code at <TBD>
- Vendored Rust dependency tracking missing, see https:/
[Security]
OK:
- history of CVEs does not look concerning (but it's fairly young)
- does not run a daemon as root
- does not use lib*v8 directly
- 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, ...)
- this makes appropriate (for its exposure) use of established risk
mitigation features (dropping permissions, using temporary environments,
restricted users/groups, seccomp, systemd isolation features,
apparmor, ...)
Problems: wasm-bindgen/ ) wayland socket)
- does use webkit (vendor/web-sys/, vendor/
- does parse data formats (files [images, video, audio], ...) from
an untrusted source (user input).
- does expose any external endpoint (portal x11/pulseaudio/
[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.
- This does seem to need special HW for build or test so it can't be
automatic at build or autopkgtest time. But as outlined
by the requester in [Quality assurance - testing] there:
- is hardware and a test plan or code
- no new python2 dependency
Problems:
- does not have a non-trivial test suite that runs as autopkgtest
[Packaging red flags]
OK:
- symbols tracking not applicable for this kind of code.
- debian/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is good (but still fairly young project, less than 1 year)
- Debian/Ubuntu update history is good (but only two uploads so far)
- the current release is packaged
- promoting this does not seem to cause issues for MOTUs that so far
maintained the package
- debian/rules is rather clean
- It is not on the lto-disabled list
Problems: message- for-orig gnome-snapshot_ 45.2+vendored. orig.tar. xz . ar failed for snapshot- 45.2/vendor/ winapi[ ...].a no-fortify- functions [usr/bin/snapshot]
- Ubuntu does carry a big delta, future plans unclear (LP: #2054163)
- lintian warnings:
E: gnome-snapshot source: unpack-
W: gnome-snapshot: no-manual-page [usr/bin/snapshot]
I: gnome-snapshot: hardening-
[Upstream red flags]
OK:
- no Errors/warnings during the build
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests)
- no use of user nobody
- no use of setuid / setgid
- no dependency on webkit, qtwebkit, seed or libgoa-*
- part of the UI, desktop file is ok
- translation present
Problems: /gitlab. gnome.org/ GNOME/snapshot/ -/issues/ 123
- no incautious use of malloc/sprintf (as far as we can check it), but: vendor/malloc_buf/
- bugs:
LP: #2054163
https:/