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.
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.5 lrslib-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrsgmp.so.4.2 exit.5 lrslib-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrslong.so.4.2 exit.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
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.)
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.
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.
Ah, yes, you're right.
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.
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.
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
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.
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.
Yes, that sounds perfectly reasonable to me.
New URLs: Spec URL: http://jjames.fedorapeople.org/lrslib/lrslib.spec SRPM URL: http://jjames.fedorapeople.org/lrslib/lrslib-4.2c-3.fc16.src.rpm
[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.5 lrslib.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrsgmp.so.4.2 exit.5 lrslib.x86_64: W: shared-lib-calls-exit /usr/lib64/liblrslong.so.4.2 exit.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.
Please fill out your SCM request info and set the cvs request flag to ? in order to proceed.
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:
Git done (by process-git-requests).
lrslib-4.2c-3.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/lrslib-4.2c-3.fc17
lrslib-4.2c-3.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/lrslib-4.2c-3.fc16
lrslib-4.2c-3.fc17 has been pushed to the Fedora 17 testing repository.
lrslib-4.2c-3.fc17 has been pushed to the Fedora 17 stable repository.
lrslib-4.2c-3.fc16 has been pushed to the Fedora 16 stable repository.