Comment 2 for bug 1990191

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

Review for Package: src:python-tornado

[Summary]
TornadoWeb is python web framework specializing on websocket communications.

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: python3-tornado, python3-tornado-doc
Specific binary packages built, but NOT to be promoted to main: <None>

Notes:
- This package is processing arbitrary web-content. Therefore, I'm requiring a
  security review.

Required TODOs:
#0 The package should get a team bug subscriber before being promoted (Server team?)

Recommended TODOs:
#1 lintian-overrides warnings, probably due to recent changes in lintian,
   please work with the Debian maintainers to get the overrides adopted
#2 warnings during the build (see below).
   - Please work with upstream to avoid using deprecated setup.py
   - Please work with Debian to avoid unused substitution variables in d/control

[Duplication]
TornadoWeb is basically yet another python web framework, like Django or Flask,
both of which are already in main. But Tornado is mostly addressing the
websockets niche and optimizing for that and seems to be better supported than
other alternatives (from universe, like python3-websockets, flask-socketio,
django-channels). Therefore, I think it's okay to add it as an additional python
web framework.

There is no other package in main providing the same (niche) functionality.

[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

Problems: None

[Security]
OK:
- history of CVEs does not look concerning (3 low/medium CVEs, handled upstream)
- 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:
- parses data formats (network packets/websocket) from an untrusted source.
- opens a port for web(-socket) communication
- processes 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
- Python package, but using dh_python

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 slow, but OK for matured software like this
- Debian/Ubuntu update history is slow, but OK for matured software like this
- 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:
- lintian-overrides warnings

[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 the build:
UPSTREAM:
setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install
is deprecated. Use build and pip and other standards-based tools.

warning: no files found matching '*.yaml' under directory 'demos'
warning: no files found matching 'tornado/test/README'

DEBIAN:
dpkg-gencontrol: warning: package python3-tornado: substitution variable
${python3:Provides} unused, but is defined

dpkg-gencontrol: warning: package python3-tornado: substitution variable
${python3:Versions} unused, but is defined

dpkg-gencontrol: warning: package python-tornado-doc: substitution variable
${sphinxdoc:Built-Using} unused, but is defined