Bug 829865 - Review Request: perl-MARC-XML - Read and write XML serialization of MARC data
Review Request: perl-MARC-XML - Read and write XML serialization of MARC data
Status: CLOSED CURRENTRELEASE
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-07 13:37 EDT by Dan Scott
Modified: 2012-11-17 18:51 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-11-17 18:51:04 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
iarnell: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Dan Scott 2012-06-07 13:37:34 EDT
Spec URL: http://bzr.coffeecode.net/scratch/perl-MARC-XML/perl-MARC-XML.spec
SRPM URL: http://bzr.coffeecode.net/scratch/perl-MARC-XML/perl-MARC-XML-0.93-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 is one of the core requirements for library systems as it deals with an XML serialization of the binary MARC21 format that has existed since the 70's. The XML serialization gives us access to general XML tools for working with the data. Making this package available in Fedora will benefit not just Evergreen, but also Koha and other library systems that use Perl.

I work closely with my peers in the code4lib community and speak with the previous and current maintainers of the Perl MARC packages on a nearly-daily basis.

Fedora Account System Username: dscott
Comment 1 Iain Arnell 2012-06-10 15:39:20 EDT
Again, a mostly clean and simple package. A couple of minor nits that you know about already. My only real complaint with this one is the %description - just use the first paragraph of MARC::File::XML's description or the first two paragraphs of README. Should be easy to approve once you've fixed the nits.
Comment 2 Dan Scott 2012-06-11 00:24:23 EDT
Thanks again, Iain! The updated spec and SRPM live at:

Spec URL: http://bzr.coffeecode.net/scratch/perl-MARC-XML/perl-MARC-XML.spec
SRPM URL: http://bzr.coffeecode.net/scratch/perl-MARC-XML/perl-MARC-XML-0.93-1.fc17.src.rpm

I've also submitted an updated spec and srpm for perl-MARC-Record at 827801, building in the lessons I've learned from your extremely helpful reviews in the hopes that we can bump it to a modern version.
Comment 3 Iain Arnell 2012-06-12 21:54:35 EDT
I'm going to wait for MARC-Charset to hit rawhide before formally reviewing this one.

In the meantime, though, 

  %attr(0755, - -) %{_bindir}/*

is bugging me - it works, but it's inconsistent - should be all commas, or all spaces - I generally prefer commas. But more importantly, it shouldn't be necessary to specify %attr at all in this case - just having %{_bindir}/* in %files ought to be enough (I didn't check - but unless something weird's happening, every other package I've touched automagically ends up with the correct 0755 permissions under %_bindir).

And this package also needs to BuildRequire: perl(ExtUtils::MakeMaker).

I noticed bug 827801 - perl-MARC-Record is probably something that spot just inherited at some point in the past. It might be an idea to add a comment in the bug that you'd be willing to be co-maintainer and request permissions in pkgdb.
Comment 4 Dan Scott 2012-06-13 01:11:24 EDT
Thanks, BuildRequires: perl(ExtUtils::MakeMaker) added.

The permissions problem is indeed weird, and actually matches what's happening in perl-MARC-Record. If you remove the %attr specification for %{_bindir} here, you get:

perl-MARC-XML.noarch: E: non-standard-executable-perm /usr/bin/xml2marc 0555L

(This is weird because ExtUtil::MakeMaker says that the default permission for EXE_FILES is supposed to be 755, and I don't see anything overriding that default in Makefile.PL for this module).

Over in perl-MARC-Record, the solution I inherited had been to "chmod -R u+w $RPM_BUILD_ROOT/*". That seemed a bit bunt, which is why I went with the %attr approach to resolve the problem specifically with the contents of %{_bindir}.

That said, I agree that %attr{755,-,-} is much cleaner than a mix of commas and spaces, and I've made that change.

Spec URL: http://bzr.coffeecode.net/scratch/perl-MARC-XML/perl-MARC-XML.spec
SRPM URL: http://bzr.coffeecode.net/scratch/perl-MARC-XML/perl-MARC-XML-0.93-1.fc17.src.rpm

Also, good catch of bug 827801 - that's actually the bug that started my whole crazy quest to get this set of modules packaged, as I initially simply wanted to get perl-MARC-Record updated and thought I would help out by offering a spec file :) I'll comment over there accordingly. Thanks again, Iain!
Comment 5 Iain Arnell 2012-06-15 08:46:31 EDT
(In reply to comment #4)
> Thanks, BuildRequires: perl(ExtUtils::MakeMaker) added.
> 
> The permissions problem is indeed weird, and actually matches what's
> happening in perl-MARC-Record. If you remove the %attr specification for
> %{_bindir} here, you get:
> 
> perl-MARC-XML.noarch: E: non-standard-executable-perm /usr/bin/xml2marc 0555L
> 
> (This is weird because ExtUtil::MakeMaker says that the default permission
> for EXE_FILES is supposed to be 755, and I don't see anything overriding
> that default in Makefile.PL for this module).
> 
> Over in perl-MARC-Record, the solution I inherited had been to "chmod -R u+w
> $RPM_BUILD_ROOT/*". That seemed a bit bunt, which is why I went with the
> %attr approach to resolve the problem specifically with the contents of
> %{_bindir}.

Aha. That rings a bell. The standard approach is to add

%{_fixperms} %{buildroot}/*

to the end of %install section.
Comment 6 Iain Arnell 2012-06-15 08:47:55 EDT
or %{_fixperms} $RPM_BUILD_ROOT/* - you need to use %{buildroot} or $RPM_BUILD_ROOT consistently in the spec file.
Comment 7 Iain Arnell 2012-08-19 10:43:55 EDT
Package Review
==============

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



==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[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.
     Note: Using prebuilt rpms
[-]: 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.
     Note: Using prebuilt rpms.
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[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
[-]: MUST Macros in Summary, %description expandable at SRPM build time.
[-]: MUST Package contains desktop file if it is a GUI application.
[-]: MUST Development files must be in a -devel package
[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 Package complies to the Packaging Guidelines
[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
[-]: 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.
[x]: MUST License field in the package spec file matches the actual license.
     Note: Checking original sources for licenses No licenses found. Please
     check the source files for licenses manually.
[x]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[-]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[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.
     Note: Using prebuilt rpms
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: No rpmlint messages.
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[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 systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL5 is required
[-]: 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 tarball generation or download is documented.
[-]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0 (MARC-XML-0.93.tar.gz)
[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.

Rpmlint
-------
Checking: perl-MARC-XML-0.93-1.fc19.src.rpm
          perl-MARC-XML-0.93-1.fc19.noarch.rpm
2 packages and 0 specfiles checked; 0 errors, 0 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint perl-MARC-XML
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
# echo 'rpmlint-done:'

Requires
--------
perl-MARC-XML-0.93-1.fc19.noarch.rpm (rpmlib, GLIBC filtered):
    
    /usr/bin/perl  
    perl(:MODULE_COMPAT_5.16.1)  
    perl(Carp)  
    perl(Data::Dumper)  
    perl(Encode)  
    perl(IO::File)  
    perl(MARC::Batch)  
    perl(MARC::Charset)  
    perl(MARC::Field)  
    perl(MARC::File)  
    perl(MARC::File::SAX)  
    perl(MARC::File::XML)  
    perl(MARC::Record)  
    perl(XML::SAX)  
    perl(XML::SAX::Base)  
    perl(base)  
    perl(strict)  
    perl(vars)  
    perl(warnings)  

Provides
--------
perl-MARC-XML-0.93-1.fc19.noarch.rpm:
    
    perl(MARC::File::SAX)  
    perl(MARC::File::XML) = 0.93
    perl-MARC-XML = 0.93-1.fc19

MD5-sum check
-------------
http://search.cpan.org/CPAN/authors/id/G/GM/GMCHARLT/MARC-XML-0.93.tar.gz :
  CHECKSUM(SHA256) this package     : 897c256f4a4231a7d9ce54dd5924f7b291c07ed5e77fcac0cae3dcc9681421bd
  CHECKSUM(SHA256) upstream package : 897c256f4a4231a7d9ce54dd5924f7b291c07ed5e77fcac0cae3dcc9681421bd


Sorry, Dan. I was sure I did this a while back. Better late than never, though.

Approved.
Comment 8 Dan Scott 2012-08-31 18:05:08 EDT
Thanks Iain! I hope to be able to take the next steps this weekend.
Comment 9 Dan Scott 2012-11-05 21:41:56 EST
New Package SCM Request
=======================
Package Name: perl-MARC-XML
Short Description: An extension to MARC::Record that supports an XML serialization of MARC
Owners: dscott
Branches: f18 f17
InitialCC: iarnell perl-sig
Comment 10 Jon Ciesla 2012-11-06 07:26:42 EST
Git done (by process-git-requests).
Comment 11 Fedora Update System 2012-11-06 10:57:48 EST
perl-MARC-XML-0.93-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/perl-MARC-XML-0.93-1.fc17
Comment 12 Fedora Update System 2012-11-06 11:01:10 EST
perl-MARC-XML-0.93-1.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/perl-MARC-XML-0.93-1.fc18
Comment 13 Fedora Update System 2012-11-06 13:53:33 EST
perl-MARC-XML-0.93-1.fc18 has been pushed to the Fedora 18 testing repository.
Comment 14 Fedora Update System 2012-11-17 18:51:06 EST
perl-MARC-XML-0.93-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.