[MIR] libfile-sharedir-perl (as a libmail-dmarc-perl dependency)

Bug #2039566 reported by Miriam España Acebal
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libfile-sharedir-perl (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Package: libfile-sharedir-perl

[Availability]
The package libfile-sharedir-perl is already in Ubuntu universe.
The package libfile-sharedir-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/libfile-sharedir-perl

[Rationale]
The package libfile-sharedir-perl is required in Ubuntu main for libmail-dmarc-perl.
The package libfile-sharedir-perl will not generally be useful for a large part of
our user base, but is important/helpful still because it is required as runtime dependency by libmail-dmarc-perl
( libmail-dmarc-perl is in the MIR process here: https://bugs.launchpad.net/ubuntu/+source/libmail-dmarc-perl/+bug/2023971 )

The package libfile-sharedir-perl is required in Ubuntu main no later than through the same scheduled requested for the libmail-dmarc-perl promotion, since libmail-dmarc-perl depends on it.

[Security]
No CVEs/security issues in this software in the past:
  - (0) https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=libfile-sharedir-perl
  - (0) https://ubuntu.com/security/cves?q=&package=libfile-sharedir-perl
  - (0) https://security-tracker.debian.org/tracker/source-package/libfile-sharedir-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 module to locate non-code (only-read) files during run-time: The intent of File::ShareDir is to provide a companion to Class::Inspector and File::HomeDir, modules that take a process that is well-known by advanced Perl developers but gets a little tricky, and make it more available to the larger
Perl community.

[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 (0) https://bugs.launchpad.net/ubuntu/+source/libfile-sharedir-perl/+bug
   - Debian (0) https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=libfile-sharedir-perl
However, in upstream there are not a lot of activity.
   - Upstream's bug tracker (6) https://rt.cpan.org/Public/Dist/Display.html?Name=File-ShareDir
                            (0) https://github.com/perl5-utils/File-ShareDir/issues
     + Upstream's repo last activity: https://github.com/perl5-utils/File-ShareDir)
       - last commit: in master, Oct 21, 2020
       - Last answered issue: Sep 22, 2020
       - Issues without answer: 2
       - last fixed/closed issue: Oct 21, 2020
       - last merged PR: Jun 24, 2018

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://launchpadlibrarian.net/634873129/buildlog_ubuntu-lunar-amd64.libfile-sharedir-perl_1.118-3_BUILDING.txt.gz :

  dh_auto_test
 make -j4 test TEST_VERBOSE=1
make[1]: Entering directory '/<<PKGBUILDDIR>>'
Skip blib/lib/auto/share/dist/File-ShareDir/subdir/sample.txt (unchanged)
Skip blib/lib/auto/share/dist/File-ShareDir/sample.txt (unchanged)
Skip blib/lib/auto/share/module/File-ShareDir/test_file.txt (unchanged)
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/*.t xt/*.t

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

debian/control defines a correct Maintainer field : Debian Perl Group <email address hidden> ( https://git.launchpad.net/ubuntu/+source/libfile-sharedir-perl/tree/debian/control#n2)

This package does not yield massive lintian Warnings, Errors
  - recent build log of the package https://launchpadlibrarian.net/685402524/buildlog_ubuntu-mantic-amd64.libfile-sharedir-perl_1.118-3_BUILDING.txt.gz
  - full output from `lintian --pedantic` :
    #source
    ❯ lintian -EvIL +pedantic --show-overrides
      W: libfile-sharedir-perl: changelog-distribution-does-not-match-changes-file unstable != mantic [usr/share/doc/libfile-sharedir-perl/changelog.Debian.gz:1]
      W: libfile-sharedir-perl changes: distribution-and-changes-mismatch mantic unstable
      I: libfile-sharedir-perl: package-contains-documentation-outside-usr-share-doc [usr/share/perl5/auto/share/dist/File-ShareDir/sample.txt]
      I: libfile-sharedir-perl: package-contains-documentation-outside-usr-share-doc [usr/share/perl5/auto/share/dist/File-ShareDir/subdir/sample.txt]
      I: libfile-sharedir-perl: package-contains-documentation-outside-usr-share-doc [usr/share/perl5/auto/share/module/File-ShareDir/test_file.txt]
      P: libfile-sharedir-perl: repeated-path-segment share [usr/share/perl5/auto/share/]
    #binary
    ❯ lintian -EvIL +pedantic --show-overrides ../libfile-sharedir-perl_2017060201-3.dsc
      X: libfile-sharedir-perl source: debian-watch-does-not-check-openpgp-signature [debian/watch]
      X: libfile-sharedir-perl source: update-debian-copyright 2020 vs 2022 [debian/copyright:16]

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/libfile-sharedir-perl/tree/debian/rules

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

[Dependencies]
There are further dependencies that are not yet in main:
 - libclass-inspector-perl : MIR bug is https://bugs.launchpad.net/ubuntu/+source/libclass-inspector-perl/+bug/2039569

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

[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.

The package successfully built during the most recent test rebuild : https://launchpad.net/ubuntu/+archive/test-rebuild-20230830-mantic/+build/26597085/+files/buildlog_ubuntu-mantic-amd64.libfile-sharedir-perl_1.118-3_BUILDING.txt.gz

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

This has been in the archive since at least 2008 (Intrepid, 0.05-1.1).
This existed in main in 2013 (Trusty), but was demoted after that.

It had a bug filed against it in Launchpad, for syncing the Debian package: https://bugs.launchpad.net/ubuntu/+source/libfile-sharedir-perl/+bug/276494
It had several bugs filed in Debian https://bugs.debian.org/cgi-bin/pkgreport.cgi?archive=both;src=libfile-sharedir-perl, handled in a timely manner.

On 2020 the last version of the package was released on upstream, with fixes for previous version released 2 years before that.

description: updated
description: updated
Lukas Märdian (slyon)
Changed in libfile-sharedir-perl (Ubuntu):
assignee: nobody → Lukas Märdian (slyon)
Revision history for this message
Lukas Märdian (slyon) wrote (last edit ):
Download full text (4.7 KiB)

Review for Source Package: libfile-sharedir-perl

[Summary]
A relatively small Perl module providing access to read-only data in common file system directories, such as /usr/share for distro data or corresponding Perl module/CPAN directories. There isn't a lot of upstream activity and maintenance is sporadic (but not a lot of activity expected for this kind of module).

MIR team ACK
With some recommended TODOs below

This does not need a security review

List of specific binary packages to be promoted to main:
- libfile-sharedir-perl
Specific binary packages built, but NOT to be promoted to main:
- None

Notes:
#0 Upstream activity and package maintenance is sporadic. The owning team might need to help out in urgent situations.

Required TODOs:
#1 libfile-sharedir-install-perl MIR dependency, bug #2039569 [done]

Recommended TODOs:
#2 The package should get a team bug subscriber before being promoted
#3 Investigate the dh_auto_test (&autopkgtest) non-failures (but error messages). Should those "missing" recommends fail the test and be skipped instead?
   - Error: Can't locate List/MoreUtils.pm
   - Error: Can't locate Params/Util.pm

[Rationale, Duplication and Ownership]
OK:
- There is no other package in main providing the same functionality.
- A team is committed to own long term maintenance of this package.
  => ubuntu-server
- The rationale given in the report seems valid and useful for Ubuntu
  => runtime dependency of libmail-dmarc-perl

[Dependencies]
OK:
- no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
  more tests now.

Problems:
- other Dependencies to MIR due to this:
  libfile-sharedir-install-perl, bug #2039569

[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 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, ...)

Problems: None

[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 doe...

Read more...

Changed in libfile-sharedir-perl (Ubuntu):
status: New → In Progress
assignee: Lukas Märdian (slyon) → nobody
Revision history for this message
Miriam España Acebal (mirespace) wrote :

Hi Lukas!

Thanks for the review.

For TODO #2, I submitted the package to be subscribed by the Server Team (pending approval in the time of writting this).

About TODO #3, I checked that, in the code, the author has borrowed code from the could-be-missing perl modules directly:

For List/Moreutils:
https://git.launchpad.net/ubuntu/+source/libfile-sharedir-perl/tree/lib/File/ShareDir.pm?h=ubuntu/noble-devel#n430

and for Params/utils:
https://git.launchpad.net/ubuntu/+source/libfile-sharedir-perl/tree/lib/File/ShareDir.pm?h=ubuntu/noble-devel#n481

so, I guess that the author is managing these tests like TODO [1] in the 00_prereqs.t [2] because in the future the intention would be to remove it and force to use that not-missing-to-be modules anyway.

[1] (https://perldoc.perl.org/Test::More#TODO:-BLOCK)
[2] (https://git.launchpad.net/ubuntu/+source/libfile-sharedir-perl/tree/t/00_prereqs.t?h=ubuntu/noble-devel#n49)

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

All open requests have been addressed, thank you.
It is also showing up in component mismatches with the unblocking uploads setting the agreed changes.
Updating state

Changed in libfile-sharedir-perl (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Full stack ready, all dependencies seen in component mismatches, FFE approved, MIR approved, only the top level change pulling this in is in -proposed and ready there other than this mismatch -> promoting.

Override component to main
libfile-sharedir-perl 1.118-3 in noble: universe/perl -> main
libfile-sharedir-perl 1.118-3 in noble amd64: universe/perl/optional/100% -> main
libfile-sharedir-perl 1.118-3 in noble arm64: universe/perl/optional/100% -> main
libfile-sharedir-perl 1.118-3 in noble armhf: universe/perl/optional/100% -> main
libfile-sharedir-perl 1.118-3 in noble i386: universe/perl/optional/100% -> main
libfile-sharedir-perl 1.118-3 in noble ppc64el: universe/perl/optional/100% -> main
libfile-sharedir-perl 1.118-3 in noble riscv64: universe/perl/optional/100% -> main
libfile-sharedir-perl 1.118-3 in noble s390x: universe/perl/optional/100% -> main
Override [y|N]? y
8 publications overridden.

Changed in libfile-sharedir-perl (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.