Bug 723752 - Review Request: lrslib - Reverse search for vertex enumeration/convex hull problems
Summary: Review Request: lrslib - Reverse search for vertex enumeration/convex hull pr...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Doug Ledford
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 790560
TreeView+ depends on / blocked
 
Reported: 2011-07-21 02:58 UTC by Jerry James
Modified: 2012-03-17 23:39 UTC (History)
4 users (show)

Fixed In Version: lrslib-4.2c-3.fc16
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-03-09 04:51:52 UTC
Type: ---
dledford: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Jerry James 2011-07-21 02:58:10 UTC
Spec URL: http://jjames.fedorapeople.org/lrslib/lrslib.spec
SRPM URL: http://jjames.fedorapeople.org/lrslib/lrslib-4.2c-1.fc15.src.rpm
Description: lrslib is a self-contained ANSI C implementation as a callable library of the reverse search algorithm for vertex enumeration/convex hull problems and comes with a choice of three arithmetic packages.  Input file formats are compatible with Komei Fukuda's cdd package (cddlib).  All computations are done exactly in either multiple precision or fixed integer arithmetic.  Output is not stored in memory, so even problems with very large output sizes can sometimes be solved.

This package is a prerequisite for polymake, my real target.  This package comes with a makefile that builds only binaries, but polymake needs access to the innards.  The polymake team's solution is to copy some of the lrslib sources into their source tree.  This RPM builds a library, which I will link against polymake instead.

Comment 1 Volker Fröhlich 2011-08-22 19:42:56 UTC
Just a few basic notes:

[makerpm@lenovo SRPMS]$ rpmlint ~/rpmbuild/SRPMS/lrslib-4.2c-1.fc15.src.rpm ~/rpmbuild/RPMS/x86_64
lrslib.x86_64: W: no-documentation
lrslib.x86_64: W: no-manual-page-for-binary lrs-setupnash2
lrslib.x86_64: W: no-manual-page-for-binary lrs
lrslib.x86_64: W: no-manual-page-for-binary lrs-float2rat
lrslib.x86_64: W: no-manual-page-for-binary lrs-nash
lrslib.x86_64: W: no-manual-page-for-binary lrs-rat2float
lrslib.x86_64: W: no-manual-page-for-binary lrs-fourier
lrslib.x86_64: W: no-manual-page-for-binary lrs-redund
lrslib.x86_64: W: no-manual-page-for-binary lrs-setupnash
lrslib.x86_64: W: no-manual-page-for-binary lrs-2gnash
lrslib.x86_64: W: no-manual-page-for-binary lrs-buffer
lrslib-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/lrslib-042c/lrslib.c
lrslib-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/lrslib-042c/lrslib.h
lrslib-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/lrslib-042c/lrsmp.c
lrslib-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/lrslib-042c/lrsgmp.h
lrslib-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/lrslib-042c/lrsmp.h
lrslib-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/lrslib-042c/lrslong.h
lrslib-devel.x86_64: E: incorrect-fsf-address /usr/include/lrslib/lrslib.h
lrslib-devel.x86_64: E: incorrect-fsf-address /usr/include/lrslib/lrsgmp.h
lrslib-devel.x86_64: E: incorrect-fsf-address /usr/include/lrslib/lrslong.h
lrslib-devel.x86_64: E: incorrect-fsf-address /usr/include/lrslib/lrsmp.h
lrslib-libs.x86_64: W: spelling-error %description -l en_US cdd -> dd, cad, add
lrslib-libs.x86_64: W: spelling-error %description -l en_US cddlib -> puddling
lrslib-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrsmp.so.4.2 exit@GLIBC_2.2.5
lrslib-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrsgmp.so.4.2 exit@GLIBC_2.2.5
lrslib-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrslong.so.4.2 exit@GLIBC_2.2.5
lrslib-libs.x86_64: E: incorrect-fsf-address /usr/share/doc/lrslib-libs-4.2c/COPYING
5 packages and 0 specfiles checked; 11 errors, 16 warnings.

Please ask the developers to update the FSF address and also let them know about the lib calling exit.

Use the name macro instead of always writing "lrslib". E. g. Requires:       %{name}-libs%{?_isa} = %{version}-%{release}

If you use it in the description as well, is up to you.

Use %global instead of %define. See http://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define

Comment 2 Jerry James 2011-08-24 23:07:20 UTC
Thanks for the notes, Volker.  I let upstream know about the FSF address and exit() issues on May 31, when I also sent Patch0.  So far I have not received a response.  I suspect that upstream is either dead or mortally wounded.  In any case, I still need this library for polymake, which is actively developed.

I figured that %define was okay, because the two uses of it are inside the only script that uses the defined names.  However, I won't insist.  I changed those to %global and added more uses of %name.  New URLs:

Spec URL: http://jjames.fedorapeople.org/lrslib/lrslib.spec
SRPM URL: http://jjames.fedorapeople.org/lrslib/lrslib-4.2c-2.fc15.src.rpm

(Please forgive a personal addendum.  My older brother married a Fröhlich, although she was born in the United States.  It is not a surname I have otherwise encountered here in the US, so it was fun to see your name.)

Comment 3 Volker Fröhlich 2011-09-02 22:11:36 UTC
I guess, everybody had a hard time pronouncing her name. 30 years back, my parents were called for on an US airport but didn't realize. They were joking about whatever that call was supposed to mean.


What is that for:

Requires:       gmp-devel%{?_isa}

As far as I can see, this is not necessary.

Comment 4 Jerry James 2011-09-08 21:14:25 UTC
That is because the lrslib-devel package includes /usr/include/lrslib/lrsgmp.h, which says this:

#include <gmp.h>

So programs that #include <lrslib/lrsgmp.h> will also need gmp-devel installed.

Comment 5 Volker Fröhlich 2011-09-08 22:03:47 UTC
Ah, yes, you're right.

Comment 6 Volker Fröhlich 2011-10-10 21:49:36 UTC
Do you think putting the libraries in the main package would be more straight forward?

"lrslib" would carry all shared objects
"lrslib-devel" as it is now
"lrslib-samples" or something would contain the binaries

This approach would result in one sub-package less, straight forward names and a simpler spec file.

Comment 7 Jerry James 2011-10-11 02:50:13 UTC
I packaged it this way so that the lrslib-libs package could be multilib, as described here:

https://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks#Splitting_libraries_into_separate_packages

I'm not set on making this package multilib, but I'd want a good reason not to do so.  Also, the "-libs" naming convention is already pretty well established in Fedora; try this:

$ repoquery -q \*-libs

I count 273 x86_64 "-libs" packages in Fedora 15.

Comment 8 Jerry James 2011-11-15 19:45:10 UTC
I have rebuilt this package for F16.  New URLs:

Spec URL: http://jjames.fedorapeople.org/lrslib/lrslib.spec
SRPM URL: http://jjames.fedorapeople.org/lrslib/lrslib-4.2c-2.fc16.src.rpm

Comment 9 Doug Ledford 2012-02-08 19:31:12 UTC
I think I agree with Volker.  This package is better suited as a lib* package.  There are two conventions for libs to be multilib, one is to use foo-libs and the other is to use libfoo and to put the binaries in libfoo-utils or libfoo-examples or whatever is appropriate.  The decision on which to use, IMO, is best decided by the usage of the package.  If the libs themselves are the main goal and the primary use, then libfoo is to be preferred.  If the binaries shipped are useful in their own right, and you are only separating the libs out so that other binaries might benefit from them in addition to the binaries you are shipping, then foo and foo-libs is preferred.

So, like I said, multilib is still possible.  The difference is that libfoo, the base package, requires nothing, while libfoo-utils or libfoo-examples does a Requires: libfoo = %{version}-%{release} and then you can install one or both versions of the libs, and whichever version of the utils you want.

Comment 10 Jerry James 2012-02-12 01:05:31 UTC
OK, I understand your reasoning.  Where the upstream name already has "lib" in it, would you be happy with "lrslib" containing the libraries, and "lrslib-utils" containing the binaries?  If so, I'll make it happen.  Thanks.

Comment 11 Doug Ledford 2012-02-13 01:03:55 UTC
Yes, that sounds perfectly reasonable to me.

Comment 13 Doug Ledford 2012-02-29 04:43:40 UTC
[dledford@schwoop SPECS]$ sudo rpm -ivh ../RPMS/x86_64/lrslib-4.2c-3.fc15.x86_64.rpm ../RPMS/x86_64/lrslib-utils-4.2c-3.fc15.x86_64.rpm ../RPMS/x86_64/lrslib-devel-4.2c-3.fc15.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:lrslib                 ########################################### [ 33%]
   2:lrslib-utils           ########################################### [ 67%]
   3:lrslib-devel           ########################################### [100%]
[dledford@schwoop rpmbuild]$ rpmlint lrslib*
lrslib.x86_64: W: spelling-error %description -l en_US cdd -> dd, cad, add
lrslib.x86_64: W: spelling-error %description -l en_US cddlib -> puddling
lrslib.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrsmp.so.4.2 exit@GLIBC_2.2.5
lrslib.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrsgmp.so.4.2 exit@GLIBC_2.2.5
lrslib.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrslong.so.4.2 exit@GLIBC_2.2.5
3 packages and 0 specfiles checked; 0 errors, 5 warnings.
[dledford@schwoop rpmbuild]$ 

rpmlint output acceptable, although upstream should fix calling exit in libs in the future.

All of the MUST requirements as listed in the packager reviewers responsiblities have been met to my satisfaction.

The should requirements have as well.  I attempted to run lrs, and it ran (although I don't really know what to do with it, but it didn't segfault).

I'm satisfied the review requests have been met.  Approved.

Comment 14 Doug Ledford 2012-02-29 04:44:24 UTC
Please fill out your SCM request info and set the cvs request flag to ? in order to proceed.

Comment 15 Jerry James 2012-03-01 21:45:39 UTC
Thanks for the review, Doug.

New Package SCM Request
=======================
Package Name: lrslib
Short Description: Reverse search for vertex enumeration/convex hull problems
Owners: jjames
Branches: f16 f17
InitialCC:

Comment 16 Gwyn Ciesla 2012-03-02 02:18:40 UTC
Git done (by process-git-requests).

Comment 17 Fedora Update System 2012-03-02 16:46:35 UTC
lrslib-4.2c-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/lrslib-4.2c-3.fc17

Comment 18 Fedora Update System 2012-03-02 16:46:43 UTC
lrslib-4.2c-3.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/lrslib-4.2c-3.fc16

Comment 19 Fedora Update System 2012-03-05 20:56:27 UTC
lrslib-4.2c-3.fc17 has been pushed to the Fedora 17 testing repository.

Comment 20 Fedora Update System 2012-03-09 04:51:52 UTC
lrslib-4.2c-3.fc17 has been pushed to the Fedora 17 stable repository.

Comment 21 Fedora Update System 2012-03-17 23:39:42 UTC
lrslib-4.2c-3.fc16 has been pushed to the Fedora 16 stable repository.


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