Bug 1437588

Summary: Review Request: perl-List-MoreUtils-XS - Provide compiled List::MoreUtils functions
Product: [Fedora] Fedora Reporter: Paul Howarth <paul>
Component: Package ReviewAssignee: Petr Pisar <ppisar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: package-review, ppisar
Target Milestone: ---Flags: ppisar: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-15 18:28:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Paul Howarth 2017-03-30 15:29:59 UTC
Spec URL: http://subversion.city-fan.org/repos/cfo-repo/perl-List-MoreUtils-XS/branches/fedora/perl-List-MoreUtils-XS.spec
SRPM URL: http://www.city-fan.org/~paul/extras/perl-List-MoreUtils-XS/perl-List-MoreUtils-XS-0.418-2.fc27.src.rpm
Description:

This module provides accelerated versions of functions in List::MoreUtils.

Fedora Account System Username: pghmcfc

The XS functionality has been split out from the main perl-List-MoreUtils package, hence this review request. There's some debate going on upstream (https://github.com/perl5-utils/List-MoreUtils/issues/25) about how to manage the interdependencies between List::MoreUtils and List::MoreUtils::XS, so I don't intend doing anything with this outside Rawhide to start with.

Comment 1 Petr Pisar 2017-04-03 11:36:35 UTC
FIX: The URL is wrong. It points to List-MoreUtils distribution.

Source address is usable. Ok.
Source archive (SHA-256: 0aa41a90337bb1ec48db50e5c73875b960685ff4dd49c26ed39dea0d52752d4f) is original. Ok.
Summary verified from lib/List/MoreUtils/XS.pm. Ok.
Description is Ok.
License verified from XS.xs, t/lib/Test/LMU.pm, t/lib/LMU/Test/XS.pm, t/lib/LMU/Test/Import.pm, t/lib/LMU/Test/Functions.pm, t/lib/LMU/Test/ab.pm, README.md, ppport.h, lib/List/MoreUtils/XS.pm, inc/latest/private.pm, inc/inc_Config-AutoConf/Config/AutoConf.pm, inc/inc_Capture-Tiny/Capture/Tiny.pm, t/LICENSE, LICENSE, ARTISTIC-1.0, GPL-1. Ok.
Notice: File::Path is not used. Ok.
All tests pass. Ok.

$ rpmlint perl-List-MoreUtils-XS.spec ../SRPMS/perl-List-MoreUtils-XS-0.418-2.fc27.src.rpm ../RPMS/x86_64/perl-List-MoreUtils-XS-*
perl-List-MoreUtils-XS.x86_64: W: hidden-file-or-dir /usr/lib/.build-id
perl-List-MoreUtils-XS.x86_64: W: hidden-file-or-dir /usr/lib/.build-id
3 packages and 1 specfiles checked; 0 errors, 2 warnings.
rpmlint is Ok.

$ rpm -q -lv -p ../RPMS/x86_64/perl-List-MoreUtils-XS-0.418-2.fc27.x86_64.rpm 
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/lib/.build-id
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/lib/.build-id/48
lrwxrwxrwx    1 root    root                       68 Apr  3 13:28 /usr/lib/.build-id/48/66d04df647b74a489fb3e3da79ba11ac1059e1 -> ../../../../usr/lib64/perl5/vendor_perl/auto/List/MoreUtils/XS/XS.so
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/lib64/perl5/vendor_perl/List
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/lib64/perl5/vendor_perl/List/MoreUtils
-rw-r--r--    1 root    root                     1754 Mar 29 19:49 /usr/lib64/perl5/vendor_perl/List/MoreUtils/XS.pm
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/lib64/perl5/vendor_perl/auto/List
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/lib64/perl5/vendor_perl/auto/List/MoreUtils
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/lib64/perl5/vendor_perl/auto/List/MoreUtils/XS
-rwxr-xr-x    1 root    root                    85856 Apr  3 13:28 /usr/lib64/perl5/vendor_perl/auto/List/MoreUtils/XS/XS.so
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/share/doc/perl-List-MoreUtils-XS
-rw-r--r--    1 root    root                      307 Mar 29 19:50 /usr/share/doc/perl-List-MoreUtils-XS/Changes
-rw-r--r--    1 root    root                    22947 Feb 18 20:22 /usr/share/doc/perl-List-MoreUtils-XS/README.md
drwxr-xr-x    2 root    root                        0 Apr  3 13:28 /usr/share/licenses/perl-List-MoreUtils-XS
-rw-r--r--    1 root    root                     6320 Mar  7  2016 /usr/share/licenses/perl-List-MoreUtils-XS/ARTISTIC-1.0
-rw-r--r--    1 root    root                    12633 Mar  7  2016 /usr/share/licenses/perl-List-MoreUtils-XS/GPL-1
-rw-r--r--    1 root    root                    11357 Feb 18 19:01 /usr/share/licenses/perl-List-MoreUtils-XS/LICENSE
-rw-r--r--    1 root    root                     1720 Apr  3 13:28 /usr/share/man/man3/List::MoreUtils::XS.3pm.gz
File permissions and layout are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/perl-List-MoreUtils-XS-0.418-2.fc27.x86_64.rpm | sort -f | uniq -c
      1 libc.so.6()(64bit)
      1 libc.so.6(GLIBC_2.2.5)(64bit)
      1 libc.so.6(GLIBC_2.4)(64bit)
      1 libperl.so.5.24()(64bit)
      1 perl(:MODULE_COMPAT_5.24.1)
      1 perl(:VERSION) >= 5.8.0
      1 perl(List::MoreUtils) >= 0.418
      1 perl(strict)
      1 perl(vars)
      1 perl(warnings)
      1 perl(XSLoader)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1
      1 rtld(GNU_HASH)
Binary requires are Ok.

$ rpm -q --provides -p ../RPMS/x86_64/perl-List-MoreUtils-XS-0.418-2.fc27.x86_64.rpm | sort -f | uniq -c
      1 perl(List::MoreUtils::XS) = 0.418
      1 perl-List-MoreUtils-XS = 0.418-2.fc27
      1 perl-List-MoreUtils-XS(x86-64) = 0.418-2.fc27
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/x86_64/perl-List-MoreUtils-XS-0.418-2.fc27.x86_64.rpm 
Binary dependencies resolvable. Ok.

Package builds in F27 (https://koji.fedoraproject.org/koji/taskinfo?taskID=18761781). Ok.

Otherwise the package is in line with Fedora and Perl packaging guidelines.

Please correct the `FIX' item before building this package.
Resolution: Package APPROVED.

Comment 2 Petr Pisar 2017-04-03 11:46:34 UTC
Yet another thing: I checked all the ./inc modules and all of them are available in Fedora. Only inc/Config/AutoConf/LMU.pm file is a one-shot code that is genuine to List-MoreUtils-XS. I recommend to unbundle them so that you can simplify build-requires and bring this package closer to the the build-from-source philosophy.

Comment 3 Paul Howarth 2017-04-03 13:59:13 UTC
(In reply to Petr Pisar from comment #2)
> Yet another thing: I checked all the ./inc modules and all of them are
> available in Fedora. Only inc/Config/AutoConf/LMU.pm file is a one-shot code
> that is genuine to List-MoreUtils-XS. I recommend to unbundle them so that
> you can simplify build-requires and bring this package closer to the the
> build-from-source philosophy.

I'm struggling to make this work. I added BRs for inc::latest, Capture::Tiny and Config::AutoConf, and deleted the files under inc/ other than LMU.pm, but when running Makefile.PL, it falls over with:

Capture::Tiny is not installed at /usr/share/perl5/vendor_perl/inc/latest.pm line 91.

I can't find any other examples of unbundling inc::latest, unlike inc::Module::Install, which looks to be done fairly commonly.

Any tips for making this work?

Comment 4 Petr Pisar 2017-04-03 15:51:51 UTC
The tip is to remove the inc::latest call from Makefile.PL.

The reason is the inc::latest uses a packlist to locate installed distributions by a module name to bundle them under ./inc. Because Fedora does not maintain the packlist (we delete it actively), inc::latest does not work.

Once a time I was thinking about maintaining packlist using postscriptlets, but since it would add a performance penalty and scriptlets are deemed bad (OSTree), I abandoned the idea.

Comment 5 Paul Howarth 2017-04-03 18:10:24 UTC
(In reply to Petr Pisar from comment #4)
> The tip is to remove the inc::latest call from Makefile.PL.

Thanks, fixed in -3:

Spec URL: http://subversion.city-fan.org/repos/cfo-repo/perl-List-MoreUtils-XS/branches/fedora/perl-List-MoreUtils-XS.spec
SRPM URL: http://www.city-fan.org/~paul/extras/perl-List-MoreUtils-XS/perl-List-MoreUtils-XS-0.418-3.fc27.src.rpm

Comment 6 Gwyn Ciesla 2017-04-03 18:24:06 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/perl-List-MoreUtils-XS

Comment 7 Fedora Update System 2017-04-14 10:08:24 UTC
perl-List-MoreUtils-XS-0.418-3.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-44c3afb24f

Comment 8 Fedora Update System 2017-04-15 01:50:38 UTC
perl-List-MoreUtils-XS-0.418-3.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-44c3afb24f

Comment 9 Fedora Update System 2017-04-15 18:28:03 UTC
perl-List-MoreUtils-XS-0.418-3.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.