Bug 830221 - Review Request: perl-Library-CallNumber-LC - Normalizes Library of Congress call numbers for sorting
Review Request: perl-Library-CallNumber-LC - Normalizes Library of Congress c...
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
17
All Linux
unspecified Severity medium
: ---
: ---
Assigned To: Iain Arnell
Fedora Extras Quality Assurance
:
Depends On: 829860
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-08 10:57 EDT by Dan Scott
Modified: 2012-07-08 16:54 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-07-08 16:54:33 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
iarnell: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Dan Scott 2012-06-08 10:57:37 EDT
Spec URL: http://bzr.coffeecode.net/scratch/perl-Library-CallNumber-LC/perl-Library-CallNumber-LC.spec
SRPM URL: http://bzr.coffeecode.net/scratch/perl-Library-CallNumber-LC/perl-Library-CallNumber-LC-0.22-1.fc17.src.rpm
Description: 

Hi, I'm in the process of packaging dependencies for the Evergreen library system (http://evergreen-ils.org) in the hopes that one day we will be able to install Evergreen via yum.

This package provides a generally useful algorithm for generating sort keys from Library of Congress call numbers.

I work with Dan Wells (current maintainer of Library::CallNumber::LC) on a regular basis, and have made small contributions to the module in the past.

Fedora Account System Username: dscott
Comment 1 Iain Arnell 2012-06-10 15:25:35 EDT
This looks to be a nice clean package with no major blockers - just a couple of minor nits:

you should explicitly BuildRequire:
  perl(Math::BigInt)
  perl(strict)
  perl(warnings)

Use DESTDIR instead of PERL_INSTALL_ROOT in %install section.

You don't need to explicitly Require: perl(Math::BigInt) - rpm detects this dependency automatically.

Fix the nits and I'll approve once we've got you sponsored in bug 829860.
Comment 2 Iain Arnell 2012-06-10 15:29:12 EDT
I must be getting forgetful in my old age. The comment from bug 829860 regarding BuildRoot tag applies here too, of course.
Comment 3 Dan Scott 2012-06-10 23:50:59 EDT
Thanks again, Iain! I've reposted the updated spec file and srpm to:

Spec URL: http://bzr.coffeecode.net/scratch/perl-Library-CallNumber-LC/perl-Library-CallNumber-LC.spec
SRPM URL: http://bzr.coffeecode.net/scratch/perl-Library-CallNumber-LC/perl-Library-CallNumber-LC-0.22-1.fc17.src.rpm

Along with the changes you recommended, I added a note to the ChangeLog accordingly.
Comment 4 Dan Scott 2012-06-12 00:22:01 EDT
Obligatory link to koji build success: http://koji.fedoraproject.org/koji/taskinfo?taskID=4153353
Comment 5 Iain Arnell 2012-06-12 21:21:45 EDT
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== Generic ====
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[-]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[x]: MUST Large documentation files are in a -doc subpackage, if required.
[-]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.
[!]: MUST License field in the package spec file matches the actual license.
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint output is silent.

rpmlint perl-Library-CallNumber-LC-0.22-1.fc18.src.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint perl-Library-CallNumber-LC-0.22-1.fc18.noarch.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
/home/iarnell/rpmbuild/perl-Library-CallNumber-LC/Library-CallNumber-LC-0.22.tar.gz :
  MD5SUM this package     : b25acaa6354e38b7623e084a1f9ce40a
  MD5SUM upstream package : b25acaa6354e38b7623e084a1f9ce40a

[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains a SysV-style init script if in need of one.
[x]: MUST File names are valid UTF-8.
[-]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[-]: SHOULD If the source package does not include license text(s) as a
     separate file from upstream, the packager SHOULD query upstream to
     include it.
[x]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[-]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[x]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.



There's one MUST issue here. 

[!]: MUST License field in the package spec file matches the actual license.

According to Library/CallNumber/LC.pm, this is actually same-as-perl or new-BSD (i.e. GPL+ or Artistic or BSD). The Changes file claims to have clarified the licensing as "both same-as-perl and BSD". The README file and META.yml still only say same-as-perl, though. There is a (closed) upstream bug at https://rt.cpan.org/Public/Bug/Display.html?id=70038 that clarifies the issue, but you should open a new one to have README and META.yml fixed as well. Not a blocker, though, as upstream's intent is clear.

This package is APPROVED. But when checking in, you need to 
* change the License tag to "GPL+ or Artistic or BSD"
* add a BuildRequires: perl(ExtUtils::MakeMaker) - same applies for MARC-Record and MARC-XML.
Comment 6 Dan Scott 2012-06-13 00:20:45 EDT
Thanks Iain!

On the BSD vs. GPL+ or Artistic licensing ambiguity, I had filed an issue with upstream at http://code.google.com/p/library-callnumber-lc/issues/detail?id=6 (which is where the README directs people to file issues) while creating the package. Note that the previous issue I filed 9#5) was that the code on CPAN doesn't match the code in the http://code.google.com/p/library-callnumber-lc repository -- which is why I didn't notice the added BSD option in the README.

I'll work with upstream to resolve the licensing problem on all fronts, and also to help them sort out their repository syncing.

I'll also add BuildRequires: perl(ExtUtils::MakeMaker).
Comment 7 Dan Scott 2012-06-13 01:41:34 EDT
Hmm. Actually, I think it should be BuildRequires: perl(Module::Build), not ExtUtils::MakeMaker for this one.

One further problem - with the license as "GPL+ or Artistic or BSD", rpmlint complains with:

perl-Library-CallNumber-LC.src: W: invalid-license Artistic

It seems that, unfortunately, rpmlint doesn't recognize "GPL+ or Artistic" as a single name once "or BSD" is tacked on; it looks like each phrase separated by "or" is parsed as a separate license. And unfortunately, there is no "Artistic" license listed at http://fedoraproject.org/wiki/Licensing - of the closest matches by name, "Artistic clarified" and "Artistic 2.0", their actual text doesn't match the text of the Artistic license as linked from http://dev.perl.org/licenses/ for the Perl "GPL+ or Artistic" entry in the licensing wiki.

Time to call in Fedora Legal? Or time to teach rpmlint to try harder to match "GPL+ or Artistic" (and its variants) for the corner cases of tri-licensed software?

In any case, I've updated http://bzr.coffeecode.net/scratch/perl-Library-CallNumber-LC/ with the new spec & srpm.
Comment 8 Iain Arnell 2012-06-13 07:43:23 EDT
(In reply to comment #7)
> Hmm. Actually, I think it should be BuildRequires: perl(Module::Build), not
> ExtUtils::MakeMaker for this one.

Well, you have a choice - but since you're using Makefile.PL and that has 'use ExtUtils::MakeMaker;' it's perl(ExtUtils::MakeMaker) that you need to buildrequire.


> One further problem - with the license as "GPL+ or Artistic or BSD", rpmlint
> complains with:
> 
> perl-Library-CallNumber-LC.src: W: invalid-license Artistic

Ah, good catch. Not something to worry too much about - the license is good, so we could ignore the rpmlint warning. But you can also silence the warning by forcing it to parse the license better:
  License: (GPL+ or Artistic) or BSD
Comment 9 Dan Scott 2012-06-13 09:08:45 EDT
(In reply to comment #8)
> (In reply to comment #7)
> > Hmm. Actually, I think it should be BuildRequires: perl(Module::Build), not
> > ExtUtils::MakeMaker for this one.
> 
> Well, you have a choice - but since you're using Makefile.PL and that has
> 'use ExtUtils::MakeMaker;' it's perl(ExtUtils::MakeMaker) that you need to
> buildrequire.

Oops. Per http://fedoraproject.org/wiki/Perl/Tips#Makefile.PL_vs_Build.PL I should be using Build.PL - so I have updated the spec and srpm accordingly.

> > One further problem - with the license as "GPL+ or Artistic or BSD", rpmlint
> > complains with:
> > 
> > perl-Library-CallNumber-LC.src: W: invalid-license Artistic
> 
> Ah, good catch. Not something to worry too much about - the license is good,
> so we could ignore the rpmlint warning. But you can also silence the warning
> by forcing it to parse the license better:
>   License: (GPL+ or Artistic) or BSD

Thanks for the tip; I had been trying quotes but in retrospect parentheses are the obvious solution. Note to self: no more working past 1:00 AM!

Once again, I have updated http://bzr.coffeecode.net/scratch/perl-Library-CallNumber-LC/ with the new spec & srpm
Comment 10 Iain Arnell 2012-06-15 08:55:49 EDT
Okay. The change to use Build.PL looks good. Review flag is still set, so you can proceed with SCM request on this one.
Comment 11 Dan Scott 2012-06-17 00:20:45 EDT
New Package SCM Request
=======================
Package Name: perl-Library-CallNumber-LC
Short Description: Normalize Library of Congress call numbers for sorting
Owners: dscott
Branches: f17
InitialCC: perl-sig iarnell
Comment 12 Gwyn Ciesla 2012-06-18 09:04:26 EDT
Git done (by process-git-requests).
Comment 13 Fedora Update System 2012-06-18 14:31:07 EDT
perl-Library-CallNumber-LC-0.22-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/perl-Library-CallNumber-LC-0.22-1.fc17
Comment 14 Fedora Update System 2012-06-19 20:22:55 EDT
perl-Library-CallNumber-LC-0.22-1.fc17 has been pushed to the Fedora 17 testing repository.
Comment 15 Fedora Update System 2012-07-08 16:54:33 EDT
perl-Library-CallNumber-LC-0.22-1.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.