Comment 2 for bug 2003549

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

Review for Package: src:log4cplus

[Summary]
A logging library for C++, there seem to be more popular libraries out
there, but none is in "main" so far and isc-kea is using this.
Packaging needs to improve wrt. symbols tracking (and demangeling) and
integration testing (autopkgtest).

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 not need a security review

List of specific binary packages to be promoted to main: liblog4cplus-2.0.8
Specific binary packages built, but NOT to be promoted to main: <None>

Notes:
- Upstream is running a CI for testing.
- embedded "threadpool/" code is minimal and not available in Ubuntu
- embedded "catch/" code is being removed before build and "catch" from
  the archive is being used instead
- loggingserver can open a socket, but is not being installed as part
  of the package

Required TODOs:
#1 please add symbols tracking capabilities (see "Packaging red flags")
#2 please add autopkgtests (as mentioned in the bug description)

Recommended TODOs:
#3 The package should get a team bug subscriber before being promoted
#4 Build-time warnings, mostly about generating the API docs, see below

[Duplication]
I cannot find any other relevant logging library for C++ in main, using:
$ apt list "?not(?section(/))" | grep log

According to https://cpp.libhunt.com/log4cplus-alternatives there seem
to be some more popular alternatives, like "src:spdlog" or
"src:google-glog" but those are in universe and we're not requesting
isc-kea to change its logging backend.

There is no other package in main providing the same 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 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:
- embedded source present:
=> embedded catch/ library (for testing, deleted during build, see d/clean)
=> embedded threadpool/ implementation (minimal, not in the archive)

[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 integrate arbitrary javascript into the desktop (via -docs)
- does not process arbitrary web content
- does not use centralized online accounts
- 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:
- can open a socket (but loggingserver not packaged/installed)

[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 new python2 dependency

Problems:
- does not have a non-trivial test suite that runs as autopkgtest

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- d/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is good (1/year, OK for this type of software)
- 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:
- Debian/Ubuntu update history is slow
=> lacking behind a few months (but OK for this type of software)
- symbols tracking is not in place
=> for C++ lib see: https://wiki.ubuntu.com/DailyRelease/FAQ#I.27m_exposing_a_new_C.2FC.2B-.2B-_symbols_in_my_library.2C_it_seems_that_some_packaging_changes_are_needed.2BICY-

[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:
=> syncprims-cxx11.h:33: warning: include file log4cplus/thread/impl/syncprims-pmsm.h not found
=> a bunch of documentation (doxygen) related warnings when parsing the headers