Bug 1874286

Summary: Review Request: perl-Acme-Alien-DontPanic2 - Test module for Alien::Base + Alien::Build
Product: [Fedora] Fedora Reporter: Jitka Plesnikova <jplesnik>
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: perl-Acme-Alien-DontPanic2-2.290.1-1.fc34 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-02 06:14:08 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:
Bug Depends On: 1874274    
Bug Blocks: 1873584    

Description Jitka Plesnikova 2020-08-31 22:16:49 UTC
Spec URL: 
https://jplesnik.fedorapeople.org/perl-Acme-Alien-DontPanic2/perl-Acme-Alien-DontPanic2.spec
SRPM URL: https://jplesnik.fedorapeople.org/perl-Acme-Alien-DontPanic2/perl-Acme-Alien-DontPanic2-2.290.1-1.fc34.src.rpm

Description:
Alien::Base comprises base classes to help in the construction of Alien::
modules. Modules in the Alien namespace are used to locate and install (if
necessary) external libraries needed by other Perl modules.

Fedora Account System Username: jplesnik

Comment 1 Petr Pisar 2020-09-01 14:22:55 UTC
The URL and Source0 addresses are usable. Ok.
TODO: Remove a trailing slash from the URL value.

Source0 archive (SHA-256: eb15ac418262a05d824c23c365a3c61911ff16f1fd51964d13847317c6e2681c) is original. Ok.
Summary verified from lib/Acme/Alien/DontPanic2.pm. Ok.

FIX: The description talks about Alien::Build. Not about Acme::Alien::DontPanic2. Please use the second paragraph from the POD like this:

  This module is a toy module to test the efficacy of the Alien::Base
  system.

License verified from: Build.PL, README, LICENSE, and lib/Acme/Alien/DontPanic2.pm. Ok.

FIX: Build-require 'coreutils' (perl-Acme-Alien-DontPanic2.spec:61).
FIX: Build-require 'base' (lib/Acme/Alien/DontPanic2.pm:5).
FIX: Do not build-require 'perl(Sort::Versions)'. It's not used anywhere.

If you build-require some Alien::Build plugins, please buil-require all of them:
FIX: Build-require 'perl(Alien::Build::Plugin::PkgConfig)' (alienfile:3).
FIX: Build-require 'perl(Alien::Build::Plugin::Download)' (alienfile:12).
FIX: Build-require 'perl(Alien::Build::Plugin::Extract)' (alienfile:16).

All tests pass. Ok.

$ rpmlint perl-Acme-Alien-DontPanic2.spec ../SRPMS/perl-Acme-Alien-DontPanic2-2.290.1-1.fc34.src.rpm ../RPMS/x86_64/perl-Acme-Alien-DontPanic2-2.290.1-1.fc34.x86_64.rpm 
sh: /usr/bin/python2: No such file or directory
2 packages and 1 specfiles checked; 0 errors, 0 warnings.
rpmlint is Ok.

$ rpm -q -lv -p ../RPMS/x86_64/perl-Acme-Alien-DontPanic2-2.290.1-1.fc34.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/Acme
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/Acme/Alien
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/Acme/Alien/DontPanic2
-rw-r--r--    1 root     root                     1337 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/Acme/Alien/DontPanic2.pm
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/Acme/Alien/DontPanic2/Install
-rw-r--r--    1 root     root                      169 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/Acme/Alien/DontPanic2/Install/Files.pm
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/Acme
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/Acme/Alien
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/Acme/Alien/DontPanic2
-rw-r--r--    1 root     root                       65 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/Acme/Alien/DontPanic2/DontPanic2.txt
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/share
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/share/dist
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/share/dist/Acme-Alien-DontPanic2
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/share/dist/Acme-Alien-DontPanic2/_alien
-rw-r--r--    1 root     root                      664 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/share/dist/Acme-Alien-DontPanic2/_alien/alien.json
-rw-r--r--    1 root     root                      879 Sep  1 16:05 /usr/lib64/perl5/vendor_perl/auto/share/dist/Acme-Alien-DontPanic2/_alien/alienfile
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/share/doc/perl-Acme-Alien-DontPanic2
-rw-r--r--    1 root     root                     1563 Aug 28 18:37 /usr/share/doc/perl-Acme-Alien-DontPanic2/Changes
-rw-r--r--    1 root     root                     1053 Aug 28 18:37 /usr/share/doc/perl-Acme-Alien-DontPanic2/README
drwxr-xr-x    2 root     root                        0 Sep  1 16:05 /usr/share/licenses/perl-Acme-Alien-DontPanic2
-rw-r--r--    1 root     root                    18352 Aug 28 18:37 /usr/share/licenses/perl-Acme-Alien-DontPanic2/LICENSE
-rw-r--r--    1 root     root                     2358 Sep  1 16:05 /usr/share/man/man3/Acme::Alien::DontPanic2.3pm.gz
File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/perl-Acme-Alien-DontPanic2-2.290.1-1.fc34.x86_64.rpm | sort -f | uniq -c
      1 perl(:MODULE_COMPAT_5.32.0)
      1 perl(Acme::Alien::DontPanic2)
      1 perl(Alien::Base) >= 0.038
      1 perl(base)
      1 perl(strict)
      1 perl(warnings)
      1 pkgconfig(dontpanic)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
Binary requires are Ok.

$ rpm -q --provides -p ../RPMS/x86_64/perl-Acme-Alien-DontPanic2-2.290.1-1.fc34.x86_64.rpm | sort -f | uniq -c
      1 perl(Acme::Alien::DontPanic2) = 2.2901
      1 perl(Acme::Alien::DontPanic2::Install::Files)
      1 perl-Acme-Alien-DontPanic2 = 2.290.1-1.fc34
      1 perl-Acme-Alien-DontPanic2(x86-64) = 2.290.1-1.fc34
Binary provides are Ok.

$ resolvedeps f34-build ../RPMS/x86_64/perl-Acme-Alien-DontPanic2-2.290.1-1.fc34.x86_64.rpm 
Binary dependencies are resolvable. Ok.

The package build in Fedora 34 (https://koji.fedoraproject.org/koji/taskinfo?taskID=50569245). Ok.
Otherwise the package is in line with Fedora and Perl packaging guidelines.
Please correct the 'FIX' items, and consider fixing the 'TODO' item before buidling this packaage.
Resolution: Package APPROVED.

Comment 2 Gwyn Ciesla 2020-09-01 20:21:09 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-Acme-Alien-DontPanic2

Comment 3 Jitka Plesnikova 2020-09-02 06:14:08 UTC
Thank you for the review and the repository.

Comment 4 Fedora Update System 2020-09-03 07:24:43 UTC
FEDORA-2020-66b75466bb has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-66b75466bb

Comment 5 Fedora Update System 2020-09-03 18:10:00 UTC
FEDORA-2020-66b75466bb has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-66b75466bb`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-66b75466bb

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Petr Pisar 2020-09-04 06:22:11 UTC
(In reply to Petr Pisar from comment #1)
> If you build-require some Alien::Build plugins, please buil-require all of
> them:
> FIX: Build-require 'perl(Alien::Build::Plugin::PkgConfig)' (alienfile:3).
> FIX: Build-require 'perl(Alien::Build::Plugin::Download)' (alienfile:12).
> FIX: Build-require 'perl(Alien::Build::Plugin::Extract)' (alienfile:16).
> 
Those modules do not exist. There are perl(Alien::Build::Plugin::*::Negotiate) modules instead. First Alien::Build->apply_plugin() attempts to load the Negotiate modules, and then it tries the original name:

  if($name !~ /::/ && !$found)
  {
    foreach my $inc (@INC)
    { 
      # TODO: allow negotiators to work with @INC hooks
      next if ref $inc;
      my $file = Path::Tiny->new("$inc/Alien/Build/Plugin/$name/Negotiate.pm");
      if(-r $file)
      { 
        $class = "Alien::Build::Plugin::${name}::Negotiate";
        $pm    = "Alien/Build/Plugin/$name/Negotiate.pm";
        $found = 1;
        last;
      }
    }
  }

  unless($found)
  {
    $class = "Alien::Build::Plugin::$name";
    $pm    = "Alien/Build/Plugin/$name.pm";
    $pm    =~ s{::}{/}g;
  }

Perhaps perl-Alien-Module package could provide perl-Alien-Module(PkgConfig) and then the alienfile users could require it. Or provide an artificial perl(Alien::Build::Plugin::PkgConfig). perl-Alien-Module is becoming pretty big with many dependencies, like cmake and libffi. Splitting it into many plugin-specific subpackages could make the dependency tree smaller.

Comment 7 Fedora Update System 2020-09-25 16:44:08 UTC
FEDORA-2020-66b75466bb has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.