[Bug 2046170] Re: [MIR] libgetopt-long-descriptive-perl (libmail-dkim-perl dependency)

Didier Roche-Tolomelli 2046170 at bugs.launchpad.net
Tue Jan 9 14:33:52 UTC 2024


Review for Source Package: libgetopt-long-descriptive-perl

[Summary]
MIR team ACK under the constraint to resolve the below listed
required.
This does not need a security review
List of specific binary packages to be promoted to main: libgetopt-long-descriptive-perl

Notes:
Required TODOs:
- libparams-validate-perl needs to be MIR ack first.
- the server team needs to be subcribed to the bug before promoting it.

[Rationale, Duplication and Ownership]
The rationale given in the report seems valid and useful for Ubuntu

[Dependencies]
OK:
- no other Dependencies to MIR due to this
- libgetopt-long-descriptive-perl 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.

Note: I was first scared by the stenza in the bug description:
" + libscalar-list-utils-perl (depends, universe)

However, the modules provided by libscalar-list-utils-perl are provided by the libperl5.36 package too,
although there is no Break/Replace/Provides in the d/control of perl about this."

But actually, there is no dependency from the binary package on
libscalar-list-utils-perl which would have made this package
uninstallable.

[Embedded sources and static linking]
OK:
- no embedded source present
- no static linking
- does not have unexpected Built-Using entries
OK:
- not a go package, no extra constraints to consider in that regard
- not a rust package, no extra constraints to consider in that regard

[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 expose any external endpoint (port/socket/... or similar)
- 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, ...)
- this makes appropriate (for its exposure) use of established risk
  mitigation features (dropping permissions, using temporary environments,
  restricted users/groups, seccomp, systemd isolation features,
  apparmor, ...)

[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
- This does not need special HW for build or test
- no new python2 dependency

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- symbols tracking not applicable for this kind of code.
- debian/watch is present and looks ok
- Upstream update history is (good/slow/sporadic)
- Debian/Ubuntu update history is good
- promoting this does not seem to cause issues for MOTUs that so far
- no massive Lintian warnings
- debian/rules is rather clean
- It is not on the lto-disabled list

Problems:
- current release in not packaged (current is 0.113, we have 0.111) but the last 2 ones are only 2 months old, so OK.

[Upstream red flags]
OK:
- no Errors/warnings during the build
- no incautious use of malloc/sprintf (the language has no direct MM)
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside
  tests)
- no use of user nobody
- no use of setuid / setgid
- 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


** Changed in: libgetopt-long-descriptive-perl (Ubuntu)
       Status: New => Fix Committed

** Changed in: libgetopt-long-descriptive-perl (Ubuntu)
     Assignee: Didier Roche-Tolomelli (didrocks) => (unassigned)

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to libgetopt-long-descriptive-perl
in Ubuntu.
https://bugs.launchpad.net/bugs/2046170

Title:
  [MIR] libgetopt-long-descriptive-perl (libmail-dkim-perl dependency)

Status in libgetopt-long-descriptive-perl package in Ubuntu:
  Fix Committed

Bug description:
  [MIR] libgetopt-long-descriptive-perl (libmail-dkim-perl dependency)

  Package: libgetopt-long-descriptive-perl

  [Availability]
  The package libgetopt-long-descriptive-perl is already in Ubuntu universe.
  The package libgetopt-long-descriptive-perl build for the architectures it is designed to work on.
  It currently builds and works for architectures:  amd64 (all)
  Link to package https://launchpad.net/ubuntu/+source/libgetopt-long-descriptive-perl

  [Rationale]
  The package libgetopt-long-descriptive-perl  is required in Ubuntu main for libmail-dkim-perl
  The package libgetopt-long-descriptive-perl  will not generally be useful for a large part of
  our user base, but is important/helpful still because is required as runtime dependency by libmail-dkim-perl
  that is already in main.

  libmail-dkim-perl it's a perl module to cryptographically identify the sender of email (implementing the new Domain Keys Identified Mail (DKIM)), used by spamassassin
  and amavisd-new. The following change added to libmail-dkim-perl makes it necessary to use libgetopt-long-descriptive-perl:

  1.20220520 2022-05-20 UTC
    + Change default algorithm in dkimsign.pl to sha-256
    + Use Getopt::Long::Descriptive in scripts for better command help

  That change have been there since Lunar, apparently.

  The package libgetopt-long-descriptive-perl is required in Ubuntu main
  as soon as possible, since libmail-dkim-perl depends on it and
  libmail-dkim-perl is already in main.

  [Security]
  No CVEs/security issues in this software in the past:
    - (0) https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=libgetopt-long-descriptive-perl
    - (0) https://ubuntu.com/security/cves?q=&package=libgetopt-long-descriptive-perl
    - (0) https://security-tracker.debian.org/tracker/source-package/libgetopt-long-descriptive-perl
  No `suid` or `sgid` binaries.
  No executables in `/sbin` and `/usr/sbin`.
  Package does not install services, timers or recurring jobs.
  Package does not open privileged ports (ports < 1024).
  Package does not expose any external endpoints.
  Package does not contain extensions to security-sensitive software (filters, scanners, plugins, UI skins, ...);
  It's a Perl module that handles command-line arguments with usage text
  Getopt::Long::Descriptive is a convenience wrapper for Getopt::Long, which
  allows one to easily define options in the same familiar way, while also
  supporting custom descriptions for program usage output.

  [Quality assurance - function/usage]
  The package works well right after install

  [Quality assurance - maintenance]
  The package is maintained well in Debian/Ubuntu and does
  not have too many, long-term & critical, open bugs:
     - Ubuntu (1) https://bugs.launchpad.net/ubuntu/+source/libgetopt-long-descriptive-perl/+bug
     - Debian (0) https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=libgetopt-long-descriptive-perl
     - Upstream's bug tracker (16) https://github.com/rjbs/Getopt-Long-Descriptive/issues
       + Upstream's repo last activity: https://github.com/rjbs/Getopt-Long-Descriptive
         - last commit: in main, Nov 21, 2023
         - Issues without answer: 6
         - Updated issue/PR: Nov 21, 2023
         - last fixed/closed/merged issue: Nov 21, 2023
         - last merged PR: Mar 13, 2021
  The package hasn't important/old open bugs on upstream.

  The package does not deal with exotic hardware we cannot support.

  [Quality assurance - testing]
  The package runs a test suite on build time, if it fails
  it makes the build fail: https://launchpad.net/ubuntu/+source/libgetopt-long-descriptive-perl/0.111-1/+build/25462675/+files/buildlog_ubuntu-lunar-amd64.libgetopt-long-descriptive-perl_0.111-1_BUILDING.txt.gz

     dh_auto_test
   make -j4 test TEST_VERBOSE=1
  make[1]: Entering directory '/<<PKGBUILDDIR>>'
  PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.test_harness(1, 'blib/lib', 'blib/arch')" t/*.t

  The package runs an autopkgtest (via autodep8 using 'Testsuite: autopkgtest-pkg-perl' in d/control file - https://git.launchpad.net/ubuntu/+source/libgetopt-long-descriptive-perl/tree/debian/control#n6 -),
  that runs essentialy the above build-time test suite. It is currently passing on
  this list of architectures (amd64, arm64, armhf, ppc64el, s390x) except i386: https://autopkgtest.ubuntu.com/packages/l/libgetopt-long-descriptive-perl

  The package does have failing autopkgtests tests right now, but since
  they always failed they are handled as "ignored failure", this is
  because the test depends on pkg-perl-autopkgtest package that is not
  build for i386 since focal.

  [Quality assurance - packaging]
  debian/watch is present and works for latest version, but it failed for --download-current-version.

  debian/control defines a correct Maintainer field : Debian Perl Group
  <pkg-perl-maintainers at lists.alioth.debian.org> (
  https://git.launchpad.net/ubuntu/+source/libgetopt-long-descriptive-
  perl/tree/debian/control#n2)

  This package does not yield massive lintian Warnings, Errors
    - recent build log of the package https://launchpadlibrarian.net/644863847/buildlog_ubuntu-lunar-amd64.libgetopt-long-descriptive-perl_0.111-1_BUILDING.txt.gz
    - full output from `lintian --pedantic` :
      #source
      ❯ lintian -EvIL +pedantic --show-overrides
        W: libgetopt-long-descriptive-perl: changelog-distribution-does-not-match-changes-file unstable != noble [usr/share/doc/libgetopt-long-descriptive-perl/changelog.Debian.gz:1]
        W: libgetopt-long-descriptive-perl changes: distribution-and-changes-mismatch noble unstable
      #binary
      ❯ lintian -EvIL +pedantic --show-overrides ../libgetopt-long-descriptive-perl_0.111-1.dsc
        X: libgetopt-long-descriptive-perl source: debian-watch-does-not-check-openpgp-signature [debian/watch]

  This package does not rely on obsolete or about to be demoted packages.
  This package has no python2 or GTK2 dependencies.

  The package will not be installed by default.

  Packaging and build is easy, link to debian/rules:
  https://git.launchpad.net/ubuntu/+source/libgetopt-long-descriptive-
  perl/tree/debian/rules

  [UI standards]
  Application is not end-user facing (does not need translation).

  [Dependencies]
  There are further dependencies not yet in main. Listing then:

  libgetopt-long-descriptive-perl depends on:
    - libparams-validate-perl (depends, universe)
      MIR bug: https://bugs.launchpad.net/ubuntu/+source/libparams-validate-perl/+bug/2046181
      + libscalar-list-utils-perl  (depends, universe)

  However, the modules provided by libscalar-list-utils-perl are provided by the libperl5.36 package too,
  although there is no Break/Replace/Provides in the d/control of perl about this.

  [Standards compliance]
  This package correctly follows FHS and Debian Policy (4.6.2)

  [Maintenance/Owner]
  Owning Team will be Ubuntu Server Team.
  Team is not yet, but will subscribe to the package before promotion.
  This does not use static builds.
  This does not use vendored code.
  This package is not rust based.

  A previous version of the package was successfully built during the
  most recent test rebuild : https://launchpad.net/ubuntu/+archive/test-
  rebuild-20230830-mantic/+build/26597663/+files/buildlog_ubuntu-mantic-
  amd64.libgetopt-long-descriptive-perl_0.111-1_BUILDING.txt.gz

  [Background information]
  The Package description explains the package well.
  Upstream Name is CryptX .
  Link to upstream project https://metacpan.org/dist/CryptX

  This has been in the archive since at least 2013 (Karmic, 0.074-1).
  It was on main before (https://bugs.launchpad.net/ubuntu/+source/libgetopt-long-descriptive-perl/+bug/1492055), but was demoted to universe in Jammy.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libgetopt-long-descriptive-perl/+bug/2046170/+subscriptions




More information about the foundations-bugs mailing list