Comment 1 for bug 1990572

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

Review for Package: ruby-json

[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: ruby-json
Specific binary packages built, but NOT to be promoted to main: <none>

Note:
This was already in main in Trusty and before. So I expect no major
showtoppers now since it was not unmaintained since then.

Required TODOs:
- Update to 2.6.2 as the package wasn't updated in a while

[Duplication]
OK:
There is no other package in main providing the same functionality.
There seems to be enough developer debate which json lib to pick for
something like https://github.com/intridea/multi_json to exist.
But even they state that the one we review here is "The default JSON gem"
and that it is the one shipping with later ruby versions.
So I guess we are ok to promote this one over alternatives.

[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
- not a rust package, no extra constraints to consider in that regard

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 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.
- While not concerning there have been CVEs (just what you expect with parsers
  of any content). Of them CVE-2013-0269 was fixed long agoi, but CVE-2020-10663
  isn't mentioned anywhere - I checked the fix for ruby 2.5 and that change is
  present, so it isn't an open case. But still things can happen, so it seems
  worth to do a security evaluation as well.

[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.
- no special HW needed for testing
- no new python2 dependency

Problems:
- does not have a non-trivial test suite that runs as autopkgtest
  While it would be nice, for the purpose of this SW I do not consider
  this critical

[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
- Upstream update history is good
- promoting this does not seem to cause issues for MOTUs that so far
  maintained the package. (Maintenance is primarily by the Debian ruby team,
  which we have a few members of)
- no massive Lintian warnings
- d/rules is rather clean
- It is not on the lto-disabled list

Problems:
- Debian/Ubuntu update history is sporadic
- the current release is not packaged
=> Please update this to 2.6.2 which is out for a while by now (2.6 and
   2.6.1 Oct 2021) (2.6.2 May 2022)

[Upstream red flags]
OK:
- no Errors/warnings during the build
- no incautious use of malloc/sprintf (just a few in the C extensions
  which look ok to me)
- 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