Comment 1 for bug 1990569

Revision history for this message
Lukas Märdian (slyon) wrote :

Review for Package: src:ruby-mime-types

[Summary]
ruby-mime-types is a popular and mature Ruby gem, which can be used to query
metadata about a given mime type.

MIR team ACK.
=> This is basically an ACK, but is currently blocked on ruby-mime-types-data MIR, bug #1990568, so I'm tracking it as "Incomplete" for now. I added some
recommendations that should be double-checked or discussed with the Debian
maintainers (see "Notes" below).

This does not need a security review.

List of specific binary packages to be promoted to main: ruby-mime-types
Specific binary packages built, but NOT to be promoted to main: <None>

Notes:
- There are a few issues, which I'd like to see discussed with the Debian
  maintainers (#2, #3, #4) - but not blocking the MIR.
- There's a recent FTBFS bug in Debian (#5), which should be investigated, it
  built just fine for me on Kinetic, so not blocking the MIR neither.
- Debian/Ubuntu is lacking behind the upstream release by about 1 year (#6),
  changelog seems minor, so I'm not blocking the MIR on this, but we should work
  with Debian to get this updated.

Required TODOs:
#0 The package should get a team bug subscriber (Server team) before being promoted
#1 depends on ruby-mime-types-data MIR, bug #1990568

Recommended TODOs:
#2 warning: substitution variable ${shlibs:Depends} used, but is not defined
#3 Add package dependency on 'ruby' instead of just transitively on ruby-mime-types-data -> ruby?
#4 The "smoke-test" (autopkgtest) should be marked "superficial"
#5 FTBFS https://bugs.debian.org/1022302
#6 the current release is NOT packaged, v3.4.1 is available as of November 2021

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

There is ruby-mime, ruby-mini-mime, ruby-marcel and ruby-mimemagic which
seem to be related, but all are in universe and the ruby-mime-types gem
seems to be most popular according to rubygems.org

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

Problems:
- depends on ruby-mime-types-data MIR, bug #1990568

[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
- not a rust 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:
- The "smoke-test" (autopkgtest) should be marked "superficial"

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- symbols tracking not applicable for this kind of code.
- d/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is slow, but OK for a mature library/GEM
- Debian/Ubuntu update history is slow, but OK for a mature library/GEM
- 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:
- the current release is NOT packaged, v3.4.1 is available as of November 2021
  https://github.com/mime-types/ruby-mime-types/compare/v3.3.1...v3.4.1
  https://github.com/mime-types/ruby-mime-types/blob/main/History.md
- Should we add a package dependency on 'ruby' instead of just transitively
  on ruby-mime-types-data -> ruby?

[Upstream red flags]
OK:
- no Errors 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:
- warnings during build:
dpkg-gencontrol: warning: Depends field of package ruby-mime-types: substitution variable ${shlibs:Depends} used, but is not defined
- FTBFS https://bugs.debian.org/1022302