Review for Source Package: src:rust-rav1e

[Summary]
AVIF support was added to python3-pillow in Debian 11.2.1-1, making libavif16 a 
new
runtime dependency. Package libavif16 is built with rav1e encoding support 
enabled on
most architectures, creating a runtime dependency on librav1e0.8. 

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.

Though there is no CVE history, this needs a review of Rust crates vendoring. 
I'll assign ubuntu-security.

List of specific binary packages to be promoted to main:
- bin:librav1e0.8
Specific binary packages built, but NOT to be promoted to main:
- bin:librav1e-dev
- bin:librav1e0.8-dbgsym
- bin:rav1e
- bin:rav1e-dbgsym

Notes:
#0 - In debian/control, XS-Vendored-Sources-Rust lists all the vendored Rust 
crates.

Required TODOs:
#1 - libaom (which is already in main) also offers an AV1 codec library. As per
     
https://github.com/AOMediaCodec/libavif/?tab=readme-ov-file#codec-dependencies
     libavif16 could be build with libaom. Would it be feasible to use libaom 
instead
     of rust-rav1e?
     
Recommended TODOs:
#2 - Are any of the upstream tests run during build time? There is no evidence 
about `cargo test`
     being run, in the build log. Can it be (re-)confirmed that build-time 
tests are run? If not,
     would it be possible to run the tests that are also run as dep8 tests?

#3 - There are several build warnings are observed in the build log. These need 
to be addressed.
     ("warning: `rav1e` (lib) generated 123 warnings")

[Rationale, Duplication and Ownership]
OK:
- A team is committed to own long term maintenance of this package.
  => "Debcrafters packages" is subscribed to the package.

Problems:
- There is no other package in main providing the same functionality.
- The rationale given in the report seems valid and useful for Ubuntu
=> The dependency chain motivating this MIR request is python3-pil -> libavif16 
-> librav1e0.8. 
   The upstream project for libavif16 seems to allow the use of libaom as an 
alternative
   
(https://github.com/AOMediaCodec/libavif/?tab=readme-ov-file#codec-dependencies).
   Given that libaom is already in main, would it be possible to use libaom 
instead of librav1e0.8?
  
[Dependencies]  
OK:
- no other runtime Dependencies to MIR due to this
- no other build-time Dependencies with active code in the final binaries to 
MIR due to this
- no -dev/-debug/-doc packages that need exclusion
  => all binary packages other than bin:librav1e0.8 to be excluded
- 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
  => Rust package, embedded sources present.
- no static linking
  => Rust package, statically built
- does not have unexpected Built-Using entries
- 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.
- rust package using dh_cargo (dh ... --buildsystem cargo)
- Includes vendored code, the package has documented how to refresh this code 
at README.source.

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.
  => AV1 format encoder, the calling package/code is expected
     to filter untrusted data.
- does not expose any external endpoint (port/socket/... or similar)
- 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, ...)
  => Risk mitigation features are not relevant to this kind of software.

Problems: None

[Common blockers]
OK:
- does not FTBFS currently
- does have a non-trivial test suite that runs as autopkgtest
- This does not need special HW for build or test
- no new python2 dependency

Problems:
- does not appear to run tests at build time, that fail the build upon 
failure/error
  => Evidently, cargo test isn't run during build time.


[Packaging red flags]
OK:
- Ubuntu does carry a delta, but it is reasonable and maintenance under control
- symbols tracking is in place.
- debian/watch is present and looks ok
- 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: None

[Upstream red flags]
OK:
- no incautious use of malloc/sprintf (the language has no direct MM)
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH
- no use of user 'nobody' outside of tests
- no use of setuid / setgid
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit or libseed
- not part of the UI for extra checks
- part of the UI, desktop file is ok
- no translation present, but none needed for this case

Problems:
- no Errors/warnings during the build
  => several build warnings seen in build log
     "warning: `rav1e` (lib) generated 123 warnings"

** Changed in: rust-rav1e (Ubuntu)
     Assignee: Pushkar Kulkarni (pushkarnk) => Ubuntu Security Team 
(ubuntu-security)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2133869

Title:
  [MIR] rust-rav1e

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rust-rav1e/+bug/2133869/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to