Review for Package: src:ruby-rack [Summary] Ruby rack is a popular middleware/framework for developing web applications, using Ruby (not quite as popular as "Rails", though). It is well maintained and I have not found another ruby based web framework in main. 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-rack Specific binary packages built, but NOT to be promoted to main: Notes: This is a middleware, exposed to the public interwebs, parsing HTTP requests. Also, it has a history of CVEs in addition to https://bugs.debian.org/946983 So I'm assigning ~ubuntu-security. Required TODOs: #0 current release NOT packaged, new major version 3.0.0 available as of 09/22 Recommended TODOs: #1 The package should get a team bug subscriber (Server team) before being promoted #2 Debian/Ubuntu update history is a bit slow, we should try to improve this moving forward (We have DDs as uploaders, so that should be fine) #3 Lintian suggestion: P: ruby-rack source: maintainer-manual-page [debian/rackup.1] The maintainer keeps a manual page in ./debian. Please forward the manual page upstream and ask them to include in their version control system, and in their next release. #4 three classes of warnings during build (see below for logs): (1) should (xargs options) be fixed (2) we probably can't do anything about it right now (3) should be discussed with upstream [Duplication] There is no other package in main providing the same functionality. https://www.ruby-toolbox.com/categories/web_app_frameworks Rack seems to be a popular and well maintained Ruby middleware, but here are other web frameworks for Ruby, notably src:rails which is even more popular. None of those is currently in main, though. [Dependencies] OK: - no other Dependencies to MIR due to this - SRCPKG checked with `check-mir` - all dependencies can be found in `seeded-in-ubuntu` (already in main) - none of the (potentially auto-generated) dependencies (Depends and Recommends) that are present after build are not 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 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: - does not run a daemon as root - does not use webkit1,2 - does not use lib*v8 directly - 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 parse data formats (network packets) from an untrusted source. - has a history of CVEs - does open a port - does process arbitrary web content [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 - not a go/python package Problems: None [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 good - 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: - Debian/Ubuntu update history is slow - current release NOT packaged, new major version 3.0.0 available as of 09/22 - Lintian suggestion: P: ruby-rack source: maintainer-manual-page [debian/rackup.1] The maintainer keeps a manual page in ./debian. Please forward the manual page upstream and ask them to include in their version control system, and in their next release. [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 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: - https://bugs.debian.org/946983 - 3 classes of warnings during build: (1) xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines value (2) dpkg-gencontrol: warning: Depends field of package ruby-rack: substitution variable ${shlibs:Depends} used, but is not defined dpkg-gencontrol: warning: package ruby-rack: substitution variable ${ruby:Depends} unused, but is defined (3) WARNING: open-ended dependency on minitest-sprint (>= 0, development) is not recommended use a bounded requirement, such as '~> x.y' WARNING: open-ended dependency on minitest-global_expectations (>= 0, development) is not recommended use a bounded requirement, such as '~> x.y' WARNING: open-ended dependency on rake (>= 0, development) is not recommended use a bounded requirement, such as '~> x.y' WARNING: See https://guides.rubygems.org/specification-reference/ for help