Bug 849829 - Review Request: perl-Algorithm-SVM - Perl bindings for the libsvm Support Vector Machine library
Summary: Review Request: perl-Algorithm-SVM - Perl bindings for the libsvm Support Vec...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 850641
TreeView+ depends on / blocked
 
Reported: 2012-08-21 05:05 UTC by Mathieu Bridon
Modified: 2012-09-20 04:44 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2012-09-20 04:44:05 UTC
Type: ---
Embargoed:
ppisar: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Mathieu Bridon 2012-08-21 05:05:59 UTC
Spec URL: http://bochecha.fedorapeople.org/packages/perl-Algorithm-SVM.spec
SRPM URL: http://bochecha.fedorapeople.org/packages/perl-Algorithm-SVM-0.13-1.fc18.src.rpm

Description:
Algorithm::SVM implements a Support Vector Machine for Perl. Support Vector
Machines provide a method for creating classifcation functions from a set
of labeled training data, from which predictions can be made for subsequent
data sets.

Fedora Account System Username: bochecha

Comment 1 Petr Pisar 2012-09-12 14:24:39 UTC
Source tar ball is original (verified from <http://search.cpan.org/CPAN/authors/id/L/LA/LAIRDM/Algorithm-SVM-0.13.tar.gz>, SHA-256: f72572df107eb45cd2ff6165c183164f38c7da98417d2242e334e6999fb7e422).
Summary verified from lib/Algorithm/SVM.pm. Ok.
Description verified from lib/Algorithm/SVM.pm. Ok.
Description verified from README. Ok.
Patches are Ok.
There is XS code, default BuildArch is Ok.

TODO: You can drop removing empty directories from %install section. This is default behaviour.

FIX: Build-require `perl(Carp)' for running tests (lib/Algorithm/SVM/DataSet.pm:5).

TODO: Build-require `perl(Exporter)' which can dual-live in the future (lib/Algorithm/SVM.pm:8, http://search.cpan.org/~toddr/Exporter/).
TODO: Build-require `perl(AutoLoader)' which can dual-live in the future (lib/Algorithm/SVM.pm:9, http://search.cpan.org/~smueller/AutoLoader/).
TODO: Build-require `perl(Test)' which can dual-live in the future (test.pl:8, http://search.cpan.org/~sburke/Test/).

All tests pass. Ok.

$ rpmlint perl-Algorithm-SVM.spec ../SRPMS/perl-Algorithm-SVM-0.13-1.fc19.src.rpm ../RPMS/x86_64/perl-Algorithm-SVM-*
perl-Algorithm-SVM.src: W: spelling-error Summary(en_US) libsvm -> Librium
perl-Algorithm-SVM.src: W: spelling-error %description -l en_US classifcation -> classification, clarification, ossification
perl-Algorithm-SVM.x86_64: W: spelling-error Summary(en_US) libsvm -> Librium
perl-Algorithm-SVM.x86_64: W: spelling-error %description -l en_US classifcation -> classification, clarification, ossification
perl-Algorithm-SVM.x86_64: W: private-shared-object-provides /usr/lib64/perl5/vendor_perl/auto/Algorithm/SVM/SVM.so SVM.so()(64bit)
perl-Algorithm-SVM.x86_64: W: private-shared-object-provides /usr/lib64/perl5/vendor_perl/auto/Algorithm/SVM/SVM.so SVM.so()(64bit)
3 packages and 1 specfiles checked; 0 errors, 6 warnings.

TODO: Correct typo `classifcation' in description.

FIX: Do not export private library. Insert `%{?perl_default_filter}' code before %description section (https://fedoraproject.org/wiki/Perl/Tips#private-shared-object-provides).

$ rpm -q -lv -p ../RPMS/x86_64/perl-Algorithm-SVM-0.13-1.fc19.x86_64.rpm 
drwxr-xr-x    2 root    root                        0 Sep 12 16:08 /usr/lib64/perl5/vendor_perl/Algorithm/SVM
-rw-r--r--    1 root    root                    12972 Jan 22  2008 /usr/lib64/perl5/vendor_perl/Algorithm/SVM.pm
-rw-r--r--    1 root    root                     3934 Jan 15  2006 /usr/lib64/perl5/vendor_perl/Algorithm/SVM/DataSet.pm
drwxr-xr-x    2 root    root                        0 Sep 12 16:08 /usr/lib64/perl5/vendor_perl/auto/Algorithm/SVM
-rwxr-xr-x    1 root    root                    57352 Sep 12 16:08 /usr/lib64/perl5/vendor_perl/auto/Algorithm/SVM/SVM.so
-rw-r--r--    1 root    root                       92 Sep 12 16:08 /usr/lib64/perl5/vendor_perl/auto/Algorithm/SVM/autosplit.ix
drwxr-xr-x    2 root    root                        0 Sep 12 16:09 /usr/share/doc/perl-Algorithm-SVM-0.13
-rw-r--r--    1 root    root                     1864 Jan 22  2008 /usr/share/doc/perl-Algorithm-SVM-0.13/Changes
-rw-r--r--    1 root    root                     4446 Jan 22  2008 /usr/share/doc/perl-Algorithm-SVM-0.13/README
-rw-r--r--    1 root    root                    61530 Dec 23  2005 /usr/share/doc/perl-Algorithm-SVM-0.13/sample.model
-rw-r--r--    1 root    root                    61530 Sep 12 16:09 /usr/share/doc/perl-Algorithm-SVM-0.13/sample.model.1
-rw-r--r--    1 root    root                     4541 Sep 12 16:08 /usr/share/man/man3/Algorithm::SVM.3pm.gz
-rw-r--r--    1 root    root                     2873 Sep 12 16:08 /usr/share/man/man3/Algorithm::SVM::DataSet.3pm.gz
File permissions and layout are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/perl-Algorithm-SVM-0.13-1.fc19.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 libgcc_s.so.1()(64bit)
      1 libgcc_s.so.1(GCC_3.0)(64bit)
      1 libm.so.6()(64bit)
      1 libstdc++.so.6()(64bit)
      1 libstdc++.so.6(CXXABI_1.3)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4)(64bit)
      1 libsvm.so.2()(64bit)
      1 perl >= 0:5.006
      1 perl(Algorithm::SVM)
      1 perl(AutoLoader)
      1 perl(Carp)
      1 perl(DynaLoader)
      1 perl(Exporter)
      1 perl(:MODULE_COMPAT_5.16.1)
      1 perl(strict)
      1 perl(vars)
      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-Algorithm-SVM-0.13-1.fc19.x86_64.rpm | sort | uniq -c
      1 perl(Algorithm::SVM) = 0.13
      1 perl-Algorithm-SVM = 0.13-1.fc19
      1 perl(Algorithm::SVM::DataSet)
      1 perl-Algorithm-SVM(x86-64) = 0.13-1.fc19
      1 SVM.so()(64bit)
FIX: Do not export private library `SVM.so()'. Insert `%{?perl_default_filter}' code before %description section (https://fedoraproject.org/wiki/Perl/Tips#private-shared-object-provides).

$ resolvedeps rawhide ../RPMS/x86_64/perl-Algorithm-SVM-0.13-1.fc19.x86_64.rpm
Binary dependencies resolvable. Ok.

Package builds in F19 (http://koji.fedoraproject.org/koji/taskinfo?taskID=4477851). 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 Mathieu Bridon 2012-09-19 02:35:08 UTC
Thanks for the feedback. This should fix all the 'FIX' and 'TODO' items.

Spec URL: http://bochecha.fedorapeople.org/packages/perl-Algorithm-SVM.spec
SRPM URL: http://bochecha.fedorapeople.org/packages/perl-Algorithm-SVM-0.13-2.fc18.src.rpm

Comment 3 Petr Pisar 2012-09-19 06:34:39 UTC
Spec file changes:
--- perl-Algorithm-SVM.spec.old 2012-08-21 07:05:00.000000000 +0200
+++ perl-Algorithm-SVM.spec     2012-09-19 04:33:53.000000000 +0200
@@ -1,6 +1,6 @@
 Name:           perl-Algorithm-SVM
 Version:        0.13
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Perl bindings for the libsvm Support Vector Machine library
 
 # Note: The sources bundle a copy of libsvm which is BSD-licensed,
@@ -16,14 +16,20 @@
 Patch0:         Algorithm-SVM-0.13-Unbundle-libsvm.patch
 Patch1:         Algorithm-SVM-0.13-Port-to-libsvm-3.0.patch
 
+BuildRequires:  perl(AutoLoader)
+BuildRequires:  perl(Carp)
+BuildRequires:  perl(Exporter)
 BuildRequires:  perl(ExtUtils::MakeMaker)
+BuildRequires:  perl(Test)
 BuildRequires:  libsvm-devel
 
 Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
 
+%{?perl_default_filter}
+
 %description
 Algorithm::SVM implements a Support Vector Machine for Perl. Support Vector
-Machines provide a method for creating classifcation functions from a set
+Machines provide a method for creating classification functions from a set
 of labeled training data, from which predictions can be made for subsequent
 data sets.
 
@@ -45,7 +51,6 @@
 
 find %{buildroot} -type f -name .packlist -exec rm -f {} \;
 find %{buildroot} -type f -name '*.bs' -size 0 -exec rm -f {} \;
-find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null \;
 
 %{_fixperms} %{buildroot}/*
 
@@ -62,5 +67,12 @@
 
 
 %changelog
+* Wed Sep 19 2012 Mathieu Bridon <bochecha> - 0.13-2
+- Fix issues based on Petr's review feedback:
+  - Fix typo 'classifcation' in the package description.
+  - Filter the private library out of provides.
+  - Add missing build requirements for the unit tests.
+  - Stop needlessly removing the empty dirs from the buildroot.
+
 * Tue Aug 21 2012 Mathieu Bridon <bochecha> - 0.13-1
 - Initial package, with help from cpanspec.


> TODO: You can drop removing empty directories from %install section. This is default
> behaviour.
-find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null \;
Ok.

> FIX: Build-require `perl(Carp)' for running tests (lib/Algorithm/SVM/DataSet.pm:5).
+BuildRequires:  perl(Carp)
Ok.

> TODO: Build-require `perl(Exporter)' which can dual-live in the future
> (lib/Algorithm/SVM.pm:8, http://search.cpan.org/~toddr/Exporter/).
+BuildRequires:  perl(Exporter)
Ok.

> TODO: Build-require `perl(AutoLoader)' which can dual-live in the future
> (lib/Algorithm/SVM.pm:9, http://search.cpan.org/~smueller/AutoLoader/).
+BuildRequires:  perl(AutoLoader)
Ok.

> TODO: Build-require `perl(Test)' which can dual-live in the future (test.pl:8,
> http://search.cpan.org/~sburke/Test/).
+BuildRequires:  perl(Test)
Ok.

All tests pass. Ok.

> TODO: Correct typo `classifcation' in description.
> FIX: Do not export private library. Insert `%{?perl_default_filter}' code before
> %description section
> (https://fedoraproject.org/wiki/Perl/Tips#private-shared-object-provides).
$ rpmlint perl-Algorithm-SVM.spec ../SRPMS/perl-Algorithm-SVM-0.13-2.fc19.src.rpm ../RPMS/x86_64/perl-Algorithm-SVM-*-2.*
perl-Algorithm-SVM.src: W: spelling-error Summary(en_US) libsvm -> Librium
perl-Algorithm-SVM.x86_64: W: spelling-error Summary(en_US) libsvm -> Librium
3 packages and 1 specfiles checked; 0 errors, 2 warnings.
rpmlint is Ok.

> FIX: Do not export private library `SVM.so()'. Insert `%{?perl_default_filter}' code
> before %description section
> (https://fedoraproject.org/wiki/Perl/Tips#private-shared-object-provides).
$ rpm -q --provides -p ../RPMS/x86_64/perl-Algorithm-SVM-0.13-2.fc19.x86_64.rpm | sort | uniq -c
      1 perl(Algorithm::SVM) = 0.13
      1 perl-Algorithm-SVM = 0.13-2.fc19
      1 perl(Algorithm::SVM::DataSet)
      1 perl-Algorithm-SVM(x86-64) = 0.13-2.fc19
Binary provides are Ok.

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

Resolution: Package APPROVED.

Comment 4 Mathieu Bridon 2012-09-19 06:37:33 UTC
Thanks for the review Petr!

New Package SCM Request
=======================
Package Name: perl-Algorithm-SVM
Short Description: Perl bindings for the libsvm Support Vector Machine library
Owners: bochecha
Branches: devel
InitialCC: perl-sig

Comment 5 Gwyn Ciesla 2012-09-19 11:00:35 UTC
Git done (by process-git-requests).

Comment 6 Mathieu Bridon 2012-09-20 04:44:05 UTC
Thanks for the SCM Jon!

For the record, there's one thing we didn't catch during the review, the package as approved fails to build on i386:
  https://fedoraproject.org/wiki/Perl/Tips#ExtUtils::MakeMaker_overrides_CCFLAGS_with_Perl_5.14

Trivial patch added to the package and submitted upstream:
  https://rt.cpan.org/Public/Bug/Display.html?id=79754

The package is now built in Rawhide, closing.


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