[MIR] libnet-idn-encode-perl (as libmail-dmarc-perl dependency)

Bug #2038929 reported by Miriam España Acebal
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libnet-idn-encode-perl (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

[MIR] libnet-idn-encode-perl (as libmail-dmarc-perl dependency)

Package: libnet-idn-encode-perl

[Availability]
The package libnet-idn-encode-perl is already in Ubuntu universe.
The package libnet-idn-encode-perl build for the architectures it is designed to work on.
It currently builds and works for architectures: amd64, arm64, armhf, ppc64el, riscv64, s390x
Link to package https://launchpad.net/ubuntu/+source/libnet-idn-encode-perl

[Rationale]
The package libnet-idn-encode-perl is required in Ubuntu main for libmail-dmarc-perl.
The package libnet-idn-encode-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-dmarc-perl
( libmail-dmarc-perl is in the MIR process here: https://bugs.launchpad.net/ubuntu/+source/libmail-dmarc-perl/+bug/2023971 )

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

[Security]
No CVEs/security issues in this software in the past:
  - (0) https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=libnet-idn-encode-perl
  - (0) https://ubuntu.com/security/cves?q=&package=libnet-idn-encode-perl
  - (0) https://security-tracker.debian.org/tracker/source-package/libnet-idn-encode-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 includes bits of enconding and decoding Internationalized Domain Names (IDNs).

[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/libnet-idn-encode-perl/+bug
   - Debian (0) https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=libnet-idn-encode-perl
   - Upstream's bug tracker (6) https://rt.cpan.org/Public/Dist/Display.html?Name=Net-IDN-Encode
     + Upstream's repo last activity : https://github.com/cfaerber/Net-IDN-Encode
       - last commit: in master, Oct 6, 2018
       - Issues without answer: 1
       - Updated issue/PR: Sep 17, 2019
       - last fixed/closed/merged issue: Sep 20, 2018
       - last merged PR: Sep 20, 2018
The package has not 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/libnet-idn-encode-perl/2.500-3/+build/24599559/+files/buildlog_ubuntu-lunar-amd64.libnet-idn-encode-perl_2.500-3_BUILDING.txt.gz :

   dh_auto_test
 /usr/bin/perl Build test --verbose 1

The package runs an autopkgtest (via autodep8 using 'Testsuite: autopkgtest-pkg-perl' in d/control file - https://git.launchpad.net/ubuntu/+source/libnet-idn-encode-perl/tree/debian/control#n5 -),
that runs essentialy the above build-time test suite. It is currently passing on
all of the architectures: https://autopkgtest.ubuntu.com/packages/l/libnet-idn-encode-perl

[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/libnet-idn-encode-perl/tree/debian/control#n2)

This package does not yield massive lintian Warnings, Errors
  - recent build log of the package https://launchpad.net/ubuntu/+source/libnet-idn-encode-perl/2.500-3/+build/24599559/+files/buildlog_ubuntu-lunar-amd64.libnet-idn-encode-perl_2.500-3_BUILDING.txt.gz
  - full output from `lintian --pedantic` :
    #source
    ❯ lintian -EvIL +pedantic --show-overrides
      E: libnet-idn-encode-perl changes: bad-distribution-in-changes-file unstable
      X: libnet-idn-encode-perl source: debian-watch-does-not-check-gpg-signature [debian/watch]
      P: libnet-idn-encode-perl source: update-debian-copyright 2021 vs 2022 [debian/copyright:12]
      P: libnet-idn-encode-perl source: very-long-line-length-in-source-file lib/Net/IDN/UTS46.pm line 226 is 3013 characters long (>512)
      P: libnet-idn-encode-perl source: very-long-line-length-in-source-file lib/Net/IDN/UTS46/_Mapping.pm line 1224 is 13285 characters long (>512)
      N: the files contain perl test code and only refer to the RFCs
      O: libnet-idn-encode-perl source: license-problem-non-free-RFC t/punycode_vec-pp.t
      N: the files contain perl test code and only refer to the RFCs
      O: libnet-idn-encode-perl source: license-problem-non-free-RFC t/punycode_vec-xs.t

    #binary
    ❯ lintian -EvIL +pedantic --show-overrides ../libnet-idn-encode-perl_2.500-3.dsc
      E: libnet-idn-encode-perl source: license-problem-non-free-RFC [t/punycode_vec-pp.t]
      E: libnet-idn-encode-perl source: license-problem-non-free-RFC [t/punycode_vec-xs.t]
      W: libnet-idn-encode-perl source: mismatched-override license-problem-non-free-RFC t/punycode_vec-pp.t [debian/source/lintian-overrides:2]
      W: libnet-idn-encode-perl source: mismatched-override license-problem-non-free-RFC t/punycode_vec-xs.t [debian/source/lintian-overrides:3]
      I: libnet-idn-encode-perl source: out-of-date-standards-version 4.6.0 (released 2021-08-18) (current is 4.6.2)
      X: libnet-idn-encode-perl source: debian-watch-does-not-check-openpgp-signature [debian/watch]
      X: libnet-idn-encode-perl source: update-debian-copyright 2021 vs 2022 [debian/copyright:12]
      X: libnet-idn-encode-perl source: very-long-line-length-in-source-file 13286 > 512 [lib/Net/IDN/UTS46/_Mapping.pm:1224]
      X: libnet-idn-encode-perl source: very-long-line-length-in-source-file 3014 > 512 [lib/Net/IDN/UTS46.pm:226]
      X: libnet-idn-encode-perl source: very-long-line-length-in-source-file 878 > 512 [t/uts46_to_ascii-trans.t:288]
      X: libnet-idn-encode-perl source: very-long-line-length-in-source-file 878 > 512 [t/uts46_to_ascii.t:288]
      X: libnet-idn-encode-perl source: very-long-line-length-in-source-file 879 > 512 [t/uts46_to_unicode.t:325]

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/libnet-idn-encode-perl/tree/debian/rules, although
it overrides perms for *.pod files allowing writing (644).

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

[Dependencies]
No further dependencies that are not yet in main.

[Standards compliance]
This package correctly follows FHS and Debian Policy (4.6.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/26601166/+files/buildlog_ubuntu-mantic-amd64.libnet-idn-encode-perl_2.500-3_BUILDING.txt.gz , HOwever there is a warning there:

lib/Net/IDN/Punycode.xs: In function ‘XS_Net__IDN__Punycode_decode_punycode’:
lib/Net/IDN/Punycode.xs:256:19: warning: ‘Perl_uvuni_to_utf8_flags’ is deprecated [-Wdeprecated-declarations]
  256 | uvuni_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
      | ^~~~~~~~~~~~~~~~~~~
In file included from /usr/lib/x86_64-linux-gnu/perl/5.36/CORE/perl.h:5798,
                 from lib/Net/IDN/Punycode.xs:2:
/usr/lib/x86_64-linux-gnu/perl/5.36/CORE/proto.h:4166:25: note: declared here
 4166 | PERL_CALLCONV U8* Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags)
      | ^~~~~~~~~~~~~~~~~~~~~~~~
ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/Net/IDN/Punycode/Punycode.bs')

with a propossed patch submitted to upstream, not yet replied (https://rt.cpan.org/Public/Bug/Display.html?id=149247) and with a PR at https://github.com/cfaerber/Net-IDN-Encode/pull/11

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

The package only has had one bug filed on Launchpad: https://bugs.launchpad.net/ubuntu/+source/libnet-idn-encode-perl/+bug/1494890 . It was for a previous MIR in 2015 for Xenial but appears to have demoted back to universe around Xenial's release.

Tha package only has had a bug filed in Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786861

This has been in the archive since at least 2015 (Raring, 2.003-1).

Changed in libnet-idn-encode-perl (Ubuntu):
assignee: Miriam España Acebal (mirespace) → nobody
description: updated
description: updated
Lukas Märdian (slyon)
Changed in libnet-idn-encode-perl (Ubuntu):
assignee: nobody → Lukas Märdian (slyon)
Revision history for this message
Lukas Märdian (slyon) wrote :

I'm skipping the review of src:libnet-idn-encode-perl for now, as I think this would be duplicated functionality in 'main'.

libmail-dmarc-perl seems to be using the "domain_to_unicode" function primarily:
lib/Mail/DMARC/Base.pm:use Net::IDN::Encode qw/domain_to_unicode/;

While we already have src:libnet-libidn-perl in "main", providing similar (same?) functionality, through GNU libidn bindings:
https://metacpan.org/pod/Net::LibIDN#Net::LibIDN::idn_to_unicode($idn_hostname,-[$charset,-[$flags]]);

Have you considered using this module instead of "libnet-idn-encode-perl", which seems to be a pure perl implementation of similar functionality?

For reference, please also see bug #2003076 as an upgrade path to libnet-libidn2-perl in the future.

Changed in libnet-idn-encode-perl (Ubuntu):
status: New → Incomplete
assignee: Lukas Märdian (slyon) → Miriam España Acebal (mirespace)
Revision history for this message
Miriam España Acebal (mirespace) wrote (last edit ):

Seems reasonable... I will make the changes to Base.pm and run the tests to see how it goes.

I did a basic search in upstream's repository to see if this already came out just in case, with no luck... If the tests go well, I'll submit the change to be reviewed by upstream, although it seems to me they prefer pure perl implementations (I haven't seen perl-xs used in Mail::dmarc directly either).

I'll post here my results on this.

Thanks Lukas!

Changed in libnet-idn-encode-perl (Ubuntu):
status: Incomplete → In Progress
status: In Progress → Incomplete
Revision history for this message
Miriam España Acebal (mirespace) wrote :

Change done, libmail-dmarc-perl using libnet-libidn-perl build at https://launchpad.net/~mirespace/+archive/ubuntu/libmail-dmarc-perl-suggested/+sourcepub/15684761/+listing-archive-extra

Buildlog is https://launchpadlibrarian.net/708408072/buildlog_ubuntu-noble-amd64.libmail-dmarc-perl_1.20230215-1ubuntu1~mirespace7_BUILDING.txt.gz, where test passed:

All tests successful.
Files=20, Tests=652, 5 wallclock secs ( 0.09 usr 0.03 sys + 3.75 cusr 0.51 csys = 4.38 CPU)
Result: PASS

Changed in libnet-idn-encode-perl (Ubuntu):
status: Incomplete → New
assignee: Miriam España Acebal (mirespace) → nobody
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Thereby this isn't needed anymore - right @mirespace?
I'm marking it "Won't Fix", but please correct me if I'm wrong.

Changed in libnet-idn-encode-perl (Ubuntu):
status: New → Won't Fix
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.