Comment 1 for bug 1979121

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Review for Package: webp-pixbuf-loader

[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 need a security review, so I'll assign ubuntu-security

List of specific binary packages to be promoted to main: webp-pixbuf-loader
Specific binary packages built, but NOT to be promoted to main: -

Notes:
Required TODOs:
- Automated tests do not seem too complex to add, please:
  - bump the testsuite to also run at autopkgtest time
  - consider adding a set of "known content" webp pictures that you can
    compare against expected results in the way the gnome thumbnailer will
    use them (details see below).

Recommended TODOs:
- fix the s390x build before kinetic releases

[Duplication]
There is no other package in main providing the same functionality.

[Dependencies]
OK:
- no other Dependencies to MIR due to this
  - libc6 (>= 2.14), libgdk-pixbuf-2.0-0 (>= 2.38.1), libglib2.0-0 (>= 2.37.3),
    libwebp7, libwebpdemux2 are all in main
- 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 odd Built-Using entries
- not a go package, no extra constraints to consider in that regard

Problems: None

[Security]
OK:
- history of CVEs does not look concerning
  - but webp in general (as all media formats) had a bunch
    https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=webp
- 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:
- does not parse data formats (files [images, video, audio,
  xml, json, asn.1], network packets, structures, ...) from
  an untrusted source.
  To be fair There isn't much code and the actual content handling is
  primarily in dependencies libwebp7 and libgdk-pixbuf-2.0-0.
  But such code has been attack surface often enough, it should be checked.

[Common blockers]
OK:
- does have a test suite that runs at build time
  - test suite fails will fail the build upon error.
- No special HW needed
- no new python2 dependency

Problems:
- does FTBFS currently (on s390x)
  You have filed this upstream, sicne s390x has no GUI this isn't a blocker
  but would be great to be resolved before kinetic releases
- does not have a non-trivial test suite that runs as autopkgtest.
  You've said you might want to do that as manual test before upload, but
  TBH we all know they are often too easily forgotten and have no way to catch
  dependencies breaking you.
  Furthermore in this case it doesn't even seem too hard to add tests.
  1. The runtime tests are good - please run that in autopkgtest context will
     easily allow to catch dependencies changing in a bad way
  2. It seems deterministic, so you could even relatively easily add testing
     as it is used in the gnome environment.
     Inspired from /usr/share/thumbnailers/webp-pixbuf.thumbnailer I have
     picked up this and modified it to a test:

```
$ /usr/bin/gdk-pixbuf-thumbnailer -s 128 webp-pixbuf-loader-0.0.5/tests/t1.webp test.png
$ file test.png
test.png: PNG image data, 128 x 128, 8-bit/color RGBA, non-interlaced
$ /usr/bin/gdk-pixbuf-thumbnailer -s 128 webp-pixbuf-loader-0.0.5/tests/t1.webp test2.png
$ md5sum test.png test2.png
c47cc42e44a1a9636e28e18898d03543 test.png
c47cc42e44a1a9636e28e18898d03543 test2.png
```

So it can convert to png data that I know is compariable (other tests do it)
and it seems to have deterministic results on multiple executions.
Thereby adding an automated test doesn't seem to painful and I'd ask to
do so.

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- symbols tracking not applicable for this kind of code.
  It is an .so but more like a plugin than providing lib function to others
- d/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is ok, but too new to really say so
- Debian/Ubuntu update history is ok, but too new to really say so
- 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
- d/rules is rather clean
- It is not on the lto-disabled list

Problems: None

[Upstream red flags]
OK:
- no Errors/warnings during the build (other than the known s390x case)
- 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
- use of setuid, but ok because TBD (prefer systemd to set those
  for services)
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit, seed or libgoa-*
- part of the UI, but not having a desktop file (plugin not an app)
- no translation present, but none needed for this case?

Problems: None