Bug 876405 - Review Request: perl-Module-Build-WithXSpp - XS++ enhanced flavor of Module::Build
Summary: Review Request: perl-Module-Build-WithXSpp - XS++ enhanced flavor of Module::...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 876403 891952
Blocks: 876408 887913
TreeView+ depends on / blocked
 
Reported: 2012-11-14 02:57 UTC by Miro Hrončok
Modified: 2013-03-02 20:19 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-01-12 15:10:24 UTC
Type: ---
Embargoed:
ppisar: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Miro Hrončok 2012-11-14 02:57:00 UTC
Spec URL: https://github.com/hroncok/SPECS/raw/master/perl-Module-Build-WithXSpp.spec
SRPM URL: https://github.com/downloads/hroncok/SPECS/perl-Module-Build-WithXSpp-0.12-1.fc17.src.rpm

Description:

This subclass of Module::Build adds some tools and processes to make it
easier to use for wrapping C++ using XS++ (ExtUtils::XSpp).

Fedora Account System Username: churchyard

Comment 1 Petr Pisar 2012-12-20 16:21:31 UTC
The standalone spec file is older than the the one from SRPM file. I will use file from SRPM for this review.

Source file is original (SHA-256: dd51f9e41b641de535b7073310600f6a04e7466eacc87c2692b0df75d31e5048). Ok.
URL and Source0 are usable. Ok.
Summary verified from lib/Module/Build/WithXSpp.pm. Ok.
Description verified from lib/Module/Build/WithXSpp.pm. Ok.
License verified from lib/Module/Build/WithXSpp.pm and README. Ok.
No XS code. noarch BuildArch is Ok.

TODO: Remove deleting empty directories in %install section. Modern Module::Build does not leave empty directories.

TODO: Do not package META.json. It's useful only for this package packager.

TODO: Sort (build-)requires lexicographically. It will ease future maintenance.

FIX: Remove useless `perl(XSLoader)' (build-)dependency.
FIX: Remove useless `perl(Digest::MD5)' (build-)dependency.
FIX: Remove useless `perl(ExtUtils::CBuilder)' (build-)dependency.

FIX: Remove BuildRequires `perl(ExtUtils::CppGuess)'. It's not needed at build-time.
FIX: Remove BuildRequires `perl(ExtUtils::ParseXS))'. It's not needed at build-time.
FIX: Remove BuildRequires `perl(ExtUtils::Typemaps)'. It's not needed at build-time.
FIX: Remove BuildRequires `perl(ExtUtils::XSpp)'. It's not needed at build-time.

All tests pass. Ok.

$ rpmlint perl-Module-Build-WithXSpp.spec ../SRPMS/perl-Module-Build-WithXSpp-0.12-1.fc19.src.rpm ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-1.fc19.noarch.rpm 
2 packages and 1 specfiles checked; 0 errors, 0 warnings.
rpmlint is Ok.

$ rpm -q -lv -p ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-1.fc19.noarch.rpm 
drwxr-xr-x    2 root    root                        0 Dec 20 16:56 /usr/share/doc/perl-Module-Build-WithXSpp-0.12
-rw-r--r--    1 root    root                     1366 Oct  6 11:51 /usr/share/doc/perl-Module-Build-WithXSpp-0.12/Changes
-rw-r--r--    1 root    root                     1331 Oct  6 11:51 /usr/share/doc/perl-Module-Build-WithXSpp-0.12/META.json
-rw-r--r--    1 root    root                     9432 Oct  6 11:51 /usr/share/doc/perl-Module-Build-WithXSpp-0.12/README
-rw-r--r--    1 root    root                     5650 Dec 20 16:55 /usr/share/man/man3/Module::Build::WithXSpp.3pm.gz
drwxr-xr-x    2 root    root                        0 Dec 20 16:56 /usr/share/perl5/vendor_perl/Module
drwxr-xr-x    2 root    root                        0 Dec 20 16:56 /usr/share/perl5/vendor_perl/Module/Build
-rw-r--r--    1 root    root                    22010 Dec 20 16:55 /usr/share/perl5/vendor_perl/Module/Build/WithXSpp.pm
File permissions and layout is Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-1.fc19.noarch.rpm | sort | uniq -c
      1 perl(Digest::MD5)
      1 perl(ExtUtils::CBuilder)
      1 perl(ExtUtils::CppGuess)
      1 perl(ExtUtils::CppGuess) >= 0.04
      1 perl(ExtUtils::ParseXS) >= 2.2205
      1 perl(ExtUtils::Typemaps) >= 1.00
      1 perl(ExtUtils::XSpp) >= 0.11
      1 perl(File::Basename)
      1 perl(File::Spec)
      1 perl(Module::Build)
      1 perl(Module::Build) >= 0.26
      1 perl(:MODULE_COMPAT_5.16.2)
      1 perl(strict)
      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
FIX: Remove unneeded `perl(Digest::MD5)', `perl(ExtUtils::CBuilder)', `perl(XSLoader)'.
TODO: Filter unversioned `perl(ExtUtils::CppGuess)' run-time dependency.
TODO: Filter unversioned `perl(Module::Build)' run-time dependency.

$ rpm -q --provides -p ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-1.fc19.noarch.rpm | sort | uniq -c
      1 perl(Module::Build::WithXSpp) = 0.12
      1 perl-Module-Build-WithXSpp = 0.12-1.fc19
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-1.fc19.noarch.rpm 
Binary dependencies resolvable. Ok.

Package builds in F19 (http://koji.fedoraproject.org/koji/taskinfo?taskID=4807259). Ok.

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


Please correct all `FIX' issues, consider fixing `TODO' items, and provide new spec file.
Resolution: Package NOT approved.

Comment 2 Miro Hrončok 2012-12-20 16:56:14 UTC
(In reply to comment #1)
> FIX: Remove BuildRequires `perl(ExtUtils::CppGuess)'. It's not needed at
> build-time.
It doesn't build without it.

+ ./Build test
#   Failed test 'use Module::Build::WithXSpp;'
#   at t/001_load.t line 6.
#     Tried to use 'Module::Build::WithXSpp'.
#     Error:  Can't locate ExtUtils/CppGuess.pm...

> TODO: Filter unversioned `perl(ExtUtils::CppGuess)' run-time dependency.
> TODO: Filter unversioned `perl(Module::Build)' run-time dependency.

Could you give me a hint? Because this doesn't work:

%filter_from_requires /perl(Module::Build)/d
%filter_from_requires /perl(ExtUtils::CppGuess)/d

Thansk for the review.

Comment 3 Petr Pisar 2012-12-21 08:40:23 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > FIX: Remove BuildRequires `perl(ExtUtils::CppGuess)'. It's not needed at
> > build-time.
> It doesn't build without it.
> 
> + ./Build test
> #   Failed test 'use Module::Build::WithXSpp;'
> #   at t/001_load.t line 6.
> #     Tried to use 'Module::Build::WithXSpp'.
> #     Error:  Can't locate ExtUtils/CppGuess.pm...
>
You are right. It's used from lib/Module/Build/WithXSpp.pm:6. Then it must be build-required.
 
> > TODO: Filter unversioned `perl(ExtUtils::CppGuess)' run-time dependency.
> > TODO: Filter unversioned `perl(Module::Build)' run-time dependency.
> 
> Could you give me a hint? Because this doesn't work:
> 
> %filter_from_requires /perl(Module::Build)/d
> %filter_from_requires /perl(ExtUtils::CppGuess)/d
> 
It's not yet properly documented, see <https://fedorahosted.org/fpc/ticket/76>, but should write:

%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Module::Build\\)$

It appends extended regular expression which matches symbols to remove from list or run-requires found by dependency generator.

Comment 4 Miro Hrončok 2012-12-22 19:35:37 UTC
Spec URL: https://github.com/hroncok/SPECS/raw/master/perl-Module-Build-WithXSpp.spec
SRPM URL: https://github.com/downloads/hroncok/SPECS/perl-Module-Build-WithXSpp-0.12-3.fc17.src.rpm

- Removed deleting empty dirs in %install section
- Do not package META.json
- Removed (B)Rs: perl(XSLoader), perl(Digest::MD5), perl(ExtUtils::CBuilder)
- Removed BRs: perl(ExtUtils::ParseXS), perl(ExtUtils::Typemaps), perl(ExtUtils::XSpp)
- Filter unversioned Requires: perl(Module::Build), perl(ExtUtils::CppGuess)
- Sort (B)Rs lexicografically

Comment 5 Petr Pisar 2013-01-02 09:45:15 UTC
Spec file changes:

--- perl-Module-Build-WithXSpp.spec.old 2013-01-02 10:23:19.413000000 +0100
+++ perl-Module-Build-WithXSpp.spec     2013-01-02 10:16:35.566000000 +0100
@@ -1,36 +1,29 @@
 Name:           perl-Module-Build-WithXSpp
 Version:        0.12
-Release:        1%{?dist}
+Release:        3%{?dist}
 Summary:        XS++ enhanced flavor of Module::Build
 License:        GPL+ or Artistic
 Group:          Development/Libraries
 URL:            http://search.cpan.org/dist/Module-Build-WithXSpp/
 Source0:        http://www.cpan.org/authors/id/S/SM/SMUELLER/Module-Build-WithXSpp-%{version}.tar.gz
 BuildArch:      noarch
-BuildRequires:  perl(Digest::MD5)
-BuildRequires:  perl(ExtUtils::CBuilder)
 BuildRequires:  perl(ExtUtils::CppGuess) >= 0.04
-BuildRequires:  perl(ExtUtils::ParseXS) >= 2.2205
-BuildRequires:  perl(ExtUtils::Typemaps) >= 1.00
-BuildRequires:  perl(ExtUtils::XSpp) >= 0.11
+BuildRequires:  perl(File::Spec)
 BuildRequires:  perl(Module::Build) >= 0.26
 BuildRequires:  perl(Test::More)
-BuildRequires:  perl(warnings)
-BuildRequires:  perl(File::Spec)
-BuildRequires:  perl(File::Basename)
-BuildRequires:  perl(XSLoader)
-Requires:       perl(Digest::MD5)
-Requires:       perl(ExtUtils::CBuilder)
 Requires:       perl(ExtUtils::CppGuess) >= 0.04
 Requires:       perl(ExtUtils::ParseXS) >= 2.2205
 Requires:       perl(ExtUtils::Typemaps) >= 1.00
 Requires:       perl(ExtUtils::XSpp) >= 0.11
-Requires:       perl(Module::Build) >= 0.26
-Requires:       perl(File::Spec)
 Requires:       perl(File::Basename)
-Requires:       perl(XSLoader)
+Requires:       perl(File::Spec)
+Requires:       perl(Module::Build) >= 0.26
 Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))

+# Filtering unversioned requires
+%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(Module::Build\\)$
+%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^perl\\(ExtUtils::CppGuess\\)$
+
 %description
 This subclass of Module::Build adds some tools and processes to make it
 easier to use for wrapping C++ using XS++ (ExtUtils::XSpp).
@@ -44,7 +37,6 @@

 %install
 ./Build install destdir=%{buildroot} create_packlist=0
-find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null \;

 %{_fixperms} %{buildroot}/*

@@ -52,11 +44,22 @@
 ./Build test

 %files
-%doc Changes META.json README
+%doc Changes README
 %{perl_vendorlib}/*
 %{_mandir}/man3/*

 %changelog
+* Thu Dec 20 2012 Miro Hrončok <miro> - 0.12-3
+- Removed deleting empty dirs in %%install section
+- Do not package META.json
+- Removed (B)Rs: perl(XSLoader), perl(Digest::MD5), perl(ExtUtils::CBuilder)
+- Removed BRs: perl(ExtUtils::ParseXS), perl(ExtUtils::Typemaps), perl(ExtUtils::XSpp)
+- Filter unversioned Requires: perl(Module::Build), perl(ExtUtils::CppGuess)
+- Sort (B)Rs lexicografically
+
+* Fri Nov 16 2012 Miro Hrončok <miro> - 0.12-2
+- Removed BRs provided by perl package
+
 * Wed Nov 14 2012 Miro Hrončok <miro> 0.12-1
 - New version.

> TODO: Remove deleting empty directories in %install section. Modern Module::Build does not leave empty directories.
-find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null \;
Ok.

> TODO: Do not package META.json. It's useful only for this package packager.
-%doc Changes META.json README
+%doc Changes README
Ok.

> TODO: Sort (build-)requires lexicographically. It will ease future maintenance.
Ok.

> FIX: Remove useless `perl(XSLoader)' (build-)dependency.
-BuildRequires:  perl(XSLoader)
Ok.

> FIX: Remove useless `perl(Digest::MD5)' (build-)dependency.
-BuildRequires:  perl(Digest::MD5)
Ok.

> FIX: Remove useless `perl(ExtUtils::CBuilder)' (build-)dependency.
-BuildRequires:  perl(ExtUtils::CBuilder)
Ok.

> FIX: Remove BuildRequires `perl(ExtUtils::ParseXS))'. It's not needed at build-time.
-BuildRequires:  perl(ExtUtils::ParseXS) >= 2.2205
Ok.

> FIX: Remove BuildRequires `perl(ExtUtils::Typemaps)'. It's not needed at build-time.
-BuildRequires:  perl(ExtUtils::Typemaps) >= 1.00
Ok.

> FIX: Remove BuildRequires `perl(ExtUtils::XSpp)'. It's not needed at build-time.
-BuildRequires:  perl(ExtUtils::XSpp) >= 0.11
Ok.

All tests pass. Ok.

$ rpmlint perl-Module-Build-WithXSpp.spec ../SRPMS/perl-Module-Build-WithXSpp-0.12-3.fc19.src.rpm ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-3.fc19.noarch.rpm 
2 packages and 1 specfiles checked; 0 errors, 0 warnings.
rpmlint is Ok.

> FIX: Remove unneeded `perl(Digest::MD5)', `perl(ExtUtils::CBuilder)', `perl(XSLoader)'.
-Requires:       perl(Digest::MD5)
Ok.

> TODO: Filter unversioned `perl(ExtUtils::CppGuess)' run-time dependency.
> TODO: Filter unversioned `perl(Module::Build)' run-time dependency.
$ rpm -q --requires -p ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-3.fc19.noarch.rpm |sort |uniq -c
      1 perl(ExtUtils::CppGuess) >= 0.04
      1 perl(ExtUtils::ParseXS) >= 2.2205
      1 perl(ExtUtils::Typemaps) >= 1.00
      1 perl(ExtUtils::XSpp) >= 0.11
      1 perl(File::Basename)
      1 perl(File::Spec)
      1 perl(Module::Build) >= 0.26
      1 perl(:MODULE_COMPAT_5.16.2)
      1 perl(strict)
      1 perl(warnings)
      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
Binary requires are Ok.

$ resolvedeps rawhide ../RPMS/noarch/perl-Module-Build-WithXSpp-0.12-3.fc19.noarch.rpm
Binary dependencies resolvable. Ok.

Package builds in F19 (http://koji.fedoraproject.org/koji/taskinfo?taskID=4831139). Ok.

Package is good.

Resolution: Package APPROVED.

Comment 6 Miro Hrončok 2013-01-02 15:04:50 UTC
New Package SCM Request
=======================
Package Name: perl-Module-Build-WithXSpp
Short Description: XS++ enhanced flavor of Module::Build
Owners: churchyard
Branches: f17 f18
InitialCC: perl-sig

Comment 7 Gwyn Ciesla 2013-01-02 15:12:16 UTC
Git done (by process-git-requests).

Comment 8 Fedora Update System 2013-01-03 17:48:30 UTC
perl-Module-Build-WithXSpp-0.12-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/perl-Module-Build-WithXSpp-0.12-3.fc17

Comment 9 Fedora Update System 2013-01-03 23:03:51 UTC
perl-Module-Build-WithXSpp-0.12-3.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/perl-Module-Build-WithXSpp-0.12-3.fc18

Comment 10 Fedora Update System 2013-01-04 20:28:53 UTC
perl-Module-Build-WithXSpp-0.12-3.fc18 has been pushed to the Fedora 18 testing repository.

Comment 11 Fedora Update System 2013-01-12 15:10:26 UTC
perl-Module-Build-WithXSpp-0.12-3.fc18 has been pushed to the Fedora 18 stable repository.

Comment 12 Fedora Update System 2013-02-19 20:15:11 UTC
perl-Module-Build-WithXSpp-0.12-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/perl-Module-Build-WithXSpp-0.12-3.fc17

Comment 13 Fedora Update System 2013-03-02 20:19:00 UTC
perl-Module-Build-WithXSpp-0.12-3.fc17 has been pushed to the Fedora 17 stable repository.


Note You need to log in before you can comment on or make changes to this bug.