https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Bug ID: 1074129 Summary: Review Request: perl-Compress-LZF - Extremely light-weight Lempel-Ziv-Free compression Product: Fedora Version: rawhide Component: Package Review Severity: medium Priority: medium Assignee: nobody@fedoraproject.org Reporter: ddick@cpan.org QA Contact: extras-qa@fedoraproject.org CC: package-review@lists.fedoraproject.org
Spec URL: http://ddick.fedorapeople.org/packages/perl-Compress-LZF.spec SRPM URL: http://ddick.fedorapeople.org/packages/perl-Compress-LZF-3.7-1.fc20.src.rpm Description: Extremely light-weight Lempel-Ziv-Free compression Fedora Account System Username: ddick
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #1 from David Dick ddick@cpan.org --- koji build at http://koji.fedoraproject.org/koji/taskinfo?taskID=6611436
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Petr Pisar ppisar@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |ppisar@redhat.com Assignee|nobody@fedoraproject.org |ppisar@redhat.com Flags| |fedora-review?
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #2 from Petr Pisar ppisar@redhat.com --- URL and Source0 are usable. Ok. Source archive is original (SHA-256: 571389c9ab62d9d0dbae479460d8c2b5132de7467990198532b9f4845b9ecfe4). Ok. XS code presents, architecture dependent package is Ok. Summary verified from LZF.pm. Ok. Description verified from LZF.pm.Ok.
TODO: The description is non-descriptive. It talks about bundling (that will not be true in Fedora) and about free for commercial usage (that should go into license). I'd like to see instead of these statements something useful like `this is Perl binding to LZF compression library'.
Perl code license verified from COPYING.
FIX: Bundled LZF sources (lzf_c.c, lzfP.h, lzf_c_best.c) are licensed under (BSD or GPLv2+). This must be declared in the License tag too. Or unbundle the code.
FIX: Unbundle the LZF library (lzf_c.c, lzfP.h, lzf_c_best.c) and use system implementation (liblzf). Or obtain exception from Fedora Packaging Committee https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries.
Build-time dependencies are Ok.
All tests pass. Ok.
$ rpmlint perl-Compress-LZF.spec ../SRPMS/perl-Compress-LZF-3.7-1.fc21.src.rpm ../RPMS/x86_64/perl-Compress-LZF-3.7-1.fc21.x86_64.rpm perl-Compress-LZF.src: W: spelling-error %description -l en_US memcpy -> memory perl-Compress-LZF.x86_64: W: spelling-error %description -l en_US memcpy -> memory perl-Compress-LZF.x86_64: E: incorrect-fsf-address /usr/share/doc/perl-Compress-LZF/COPYING.GNU 2 packages and 1 specfiles checked; 1 errors, 2 warnings. rpmlint is Ok.
$ rpm -q -lv -p ../RPMS/x86_64/perl-Compress-LZF-3.7-1.fc21.x86_64.rpm drwxr-xr-x 2 root root 0 Mar 11 14:59 /usr/lib64/perl5/vendor_perl/Compress -rw-r--r-- 1 root root 4777 Aug 25 2013 /usr/lib64/perl5/vendor_perl/Compress/LZF.pm drwxr-xr-x 2 root root 0 Mar 11 14:59 /usr/lib64/perl5/vendor_perl/auto/Compress drwxr-xr-x 2 root root 0 Mar 11 14:59 /usr/lib64/perl5/vendor_perl/auto/Compress/LZF -rwxr-xr-x 1 root root 23696 Mar 11 14:59 /usr/lib64/perl5/vendor_perl/auto/Compress/LZF/LZF.so drwxr-xr-x 2 root root 0 Mar 11 14:59 /usr/share/doc/perl-Compress-LZF -rw-r--r-- 1 root root 244 Jun 1 2010 /usr/share/doc/perl-Compress-LZF/COPYING -rw-r--r-- 1 root root 6111 Jun 1 2010 /usr/share/doc/perl-Compress-LZF/COPYING.Artistic -rw-r--r-- 1 root root 17998 Jun 1 2010 /usr/share/doc/perl-Compress-LZF/COPYING.GNU -rw-r--r-- 1 root root 4650 Aug 25 2013 /usr/share/doc/perl-Compress-LZF/Changes -rw-r--r-- 1 root root 4691 Aug 25 2013 /usr/share/doc/perl-Compress-LZF/README -rw-r--r-- 1 root root 3758 Mar 11 14:59 /usr/share/man/man3/Compress::LZF.3pm.gz File layout and permissions are Ok.
$ rpm -q --requires -p ../RPMS/x86_64/perl-Compress-LZF-3.7-1.fc21.x86_64.rpm | sort | uniq -c 1 libc.so.6()(64bit) 1 libc.so.6(GLIBC_2.14)(64bit) 1 libc.so.6(GLIBC_2.2.5)(64bit) 1 libc.so.6(GLIBC_2.4)(64bit) 1 libperl.so.5.18()(64bit) 1 perl(DynaLoader) 1 perl(Exporter) 1 perl(:MODULE_COMPAT_5.18.2) 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-Compress-LZF-3.7-1.fc21.x86_64.rpm | sort | uniq -c 1 perl(Compress::LZF) = 3.7 1 perl-Compress-LZF = 3.7-1.fc21 1 perl-Compress-LZF(x86-64) = 3.7-1.fc21 Binary provides are Ok.
$ resolvedeps rawhide ../RPMS/x86_64/perl-Compress-LZF-3.7-1.fc21.x86_64.rpm Binary dependencies resolvable. Ok.
Package builds in F21 (http://koji.fedoraproject.org/koji/taskinfo?taskID=6621625). Ok.
Otherwise the package is in line with Fedora and Perl packaging guidelines.
Please correct the `FIX' items, and provide new spec file. Resolution: NOT approved.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #3 from David Dick ddick@cpan.org --- Package has been reuploaded with liblzf support which removes the need for lzf_c.c and lzf_d.c. A bug has been filed upstream to clarify the package license as lzf_c_best.c (and lzfP.h) do not contain code that is available in the liblzf library.
https://rt.cpan.org/Ticket/Display.html?id=93776
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #4 from Petr Pisar ppisar@redhat.com --- Spec file changes:
--- perl-Compress-LZF.spec.old 2014-03-08 06:27:17.000000000 +0100 +++ perl-Compress-LZF.spec 2014-03-12 11:00:35.000000000 +0100 @@ -7,6 +7,7 @@ Group: Development/Libraries URL: http://search.cpan.org/dist/Compress-LZF/ Source0: http://www.cpan.org/modules/by-module/Compress/Compress-LZF-%%7Bversion%7D.t... +Patch1: compress_lzf_unbundle.patch BuildRequires: perl BuildRequires: perl(DynaLoader) BuildRequires: perl(Exporter) @@ -15,16 +16,13 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description -LZF is an extremely fast (not that much slower than a pure memcpy) -compression algorithm. It is ideal for applications where you want to save -some space but not at the cost of speed. It is ideal for repetitive data as -well. The module is self-contained and very small (no large library to be -pulled in). It is also free, so there should be no problems incorporating -this module into commercial programs. +This is Perl binding to the LZF compression library
%prep %setup -q -n Compress-LZF-%{version}
+%patch1 + %build %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS" make %{?_smp_mflags}
TODO: The description is non-descriptive.
TODO: Append full-stop mark at the end of the %description.
FIX: Bundled LZF sources (lzf_c.c, lzfP.h, lzf_c_best.c) are licensed under (BSD or GPLv2+). This must be declared in the License tag too. Or unbundle the code.
FIX: You forgot to mention the lzf_c_best.c license in the License tag (because you still use it).
FIX: Unbundle the LZF library (lzf_c.c, lzfP.h, lzf_c_best.c) and use system implementation (liblzf). Or obtain exception from Fedora Packaging Committee https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries.
FIX: Build-require liblzf-devel.
TODO: I strongly recommend to delete the unbundled files in %prep section to make sure they will not be used for building.
FIX: You kept files (lzf_c_best.c) that come from libzf development sources (http://cvs.schmorp.de/liblzf/) and its dependency lzfP.h. This is still considered as a bundling. The best approach is to ask liblzf developers and maintainers to do a new release with these files. Otherwise you need to obtain exception from FPC. Alternatively you can remove support for the "best compression level" from LZF.xs.
Please correct all `FIX' items, and provide new spec file. Resolution: Package NOT approved.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
David Dick ddick@cpan.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Depends On| |1075911
--- Comment #5 from David Dick ddick@cpan.org --- lzfP.h and lzf_c_best.c are currently present in CVS, however, an examination of the Changelog shows that lzf_c_best.c has just (in the yet-to-be-released 3.7 branch) been added. The changelog also notes that lzf_c_best is currently considered broken by the author (line 5 of Changelog file), so it seems a bit harsh to ask the liblzf authors to support a beta, broken version.
Therefore i have asked the liblzf packagers to only include lzfP.h. If they include lzf_best_c.c, fine, otherwise i will remove the best functions from Compress::LZF
Referenced Bugs:
https://bugzilla.redhat.com/show_bug.cgi?id=1075911 [Bug 1075911] liblzf-devel is missing the lzfP.h header file
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #6 from David Dick ddick@cpan.org --- Steve Traylon has only added the lzfP.h header file. Therefore, as discussed, i've stripped out the _best files. Could you please review this again?
koji builds follow;
rawhide at http://koji.fedoraproject.org/koji/taskinfo?taskID=6723429
el6 at http://koji.fedoraproject.org/koji/taskinfo?taskID=6723428
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Petr Pisar ppisar@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|fedora-review? |fedora-review+
--- Comment #7 from Petr Pisar ppisar@redhat.com --- Spec file changes:
--- perl-Compress-LZF.spec.old 2014-03-12 11:00:35.000000000 +0100 +++ perl-Compress-LZF.spec 2014-04-10 13:17:32.000000000 +0200 @@ -8,6 +8,7 @@ URL: http://search.cpan.org/dist/Compress-LZF/ Source0: http://www.cpan.org/modules/by-module/Compress/Compress-LZF-%%7Bversion%7D.t... Patch1: compress_lzf_unbundle.patch +BuildRequires: liblzf-devel BuildRequires: perl BuildRequires: perl(DynaLoader) BuildRequires: perl(Exporter) @@ -16,12 +17,12 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description -This is Perl binding to the LZF compression library +This is Perl binding to the LZF compression library.
%prep %setup -q -n Compress-LZF-%{version}
-%patch1 +%patch1 -p1
%build %{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS"
The patch is good. Ok.
TODO: Append full-stop mark at the end of the %description.
-This is Perl binding to the LZF compression library +This is Perl binding to the LZF compression library. Ok.
FIX: You forgot to mention the lzf_c_best.c license in the License tag (because you still use it).
The lzf_c_best.c has been removed. Ok.
FIX: Build-require liblzf-devel.
+BuildRequires: liblzf-devel Ok.
TODO: I strongly recommend to delete the unbundled files in %prep section to make sure they will not be used for building.
Implemented in the patch. Ok.
FIX: You kept files (lzf_c_best.c) that come from libzf development sources (http://cvs.schmorp.de/liblzf/) and its dependency lzfP.h. This is still considered as a bundling. The best approach is to ask liblzf developers and maintainers to do a new release with these files. Otherwise you need to obtain exception from FPC. Alternatively you can remove support for the "best compression level" from LZF.xs.
The "best compression level" with lzf_c_best.c and lzfP.h have been removed. Ok.
All tests pass. Ok.
$ rpmlint perl-Compress-LZF.spec ../SRPMS/perl-Compress-LZF-3.7-1.fc21.src.rpm ../RPMS/x86_64/perl-Compress-LZF-* perl-Compress-LZF.x86_64: E: incorrect-fsf-address /usr/share/doc/perl-Compress-LZF/COPYING.GNU 3 packages and 1 specfiles checked; 1 errors, 0 warnings. rpmlint is Ok.
Package builds in F21 (http://koji.fedoraproject.org/koji/taskinfo?taskID=6739594). Ok.
Package is in line with Fedora and Perl packaging guidelines.
Resolution: Package APPROVED.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #8 from Petr Pisar ppisar@redhat.com --- I'm glad you managed to unbundle the files.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
David Dick ddick@cpan.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |fedora-cvs?
--- Comment #9 from David Dick ddick@cpan.org --- New Package SCM Request ======================= Package Name: perl-Compress-LZF Short Description: Extremely light-weight Lempel-Ziv-Free compression Owners: ddick Branches: f20 el6 epel7 InitialCC: perl-sig
Thanks for the review Petr. This package was a lot more trouble than i intended.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Jon Ciesla limburgher@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags|fedora-cvs? |fedora-cvs+
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #10 from Jon Ciesla limburgher@gmail.com --- Git done (by process-git-requests).
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Fedora Update System updates@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |MODIFIED
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #11 from Fedora Update System updates@fedoraproject.org --- perl-Compress-LZF-3.7-1.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/perl-Compress-LZF-3.7-1.fc20
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
--- Comment #12 from Fedora Update System updates@fedoraproject.org --- perl-Compress-LZF-3.7-1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/perl-Compress-LZF-3.7-1.el6
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Fedora Update System updates@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|MODIFIED |ON_QA
--- Comment #13 from Fedora Update System updates@fedoraproject.org --- perl-Compress-LZF-3.7-1.el6 has been pushed to the Fedora EPEL 6 testing repository.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Fedora Update System updates@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ON_QA |CLOSED Fixed In Version| |perl-Compress-LZF-3.7-1.fc2 | |0 Resolution|--- |ERRATA Last Closed| |2014-04-26 05:16:50
--- Comment #14 from Fedora Update System updates@fedoraproject.org --- perl-Compress-LZF-3.7-1.fc20 has been pushed to the Fedora 20 stable repository.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129
Fedora Update System updates@fedoraproject.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed In Version|perl-Compress-LZF-3.7-1.fc2 |perl-Compress-LZF-3.7-1.el6 |0 |
--- Comment #15 from Fedora Update System updates@fedoraproject.org --- perl-Compress-LZF-3.7-1.el6 has been pushed to the Fedora EPEL 6 stable repository.
https://bugzilla.redhat.com/show_bug.cgi?id=1074129 Bug 1074129 depends on bug 1075911, which changed state.
Bug 1075911 Summary: liblzf-devel is missing the lzfP.h header file https://bugzilla.redhat.com/show_bug.cgi?id=1075911
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Resolution|--- |NEXTRELEASE
package-review@lists.fedoraproject.org