Bug 721174 - Review Request: cryptominisat - SAT solver
Summary: Review Request: cryptominisat - SAT solver
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Brendan Jones
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-07-13 22:31 UTC by Jerry James
Modified: 2011-12-18 19:47 UTC (History)
3 users (show)

Fixed In Version: cryptominisat-2.9.1-1.fc16
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-12-18 19:47:47 UTC
Type: ---
Embargoed:
brendan.jones.it: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Jerry James 2011-07-13 22:31:45 UTC
Spec URL: http://jjames.fedorapeople.org/cryptominisat/cryptominisat.spec
SRPM URL: http://jjames.fedorapeople.org/cryptominisat/cryptominisat-2.9.1-1.fc15.src.rpm
Description: CryptoMiniSat is a SAT solver that aims to become a premiere SAT solver with all the features and speed of successful SAT solvers, such as MiniSat and PrecoSat.  The long-term goals of CryptoMiniSat are to be an efficient sequential, parallel and distributed solver.  There are solvers that are good at one or the other, e.g. ManySat (parallel) or PSolver (distributed), but we wish to excel at all.

This package is a prerequisite to upgrading stp to the latest version.

Comment 1 Jerry James 2011-11-15 19:35:42 UTC
I added some comments on the license situation and rebuilt for F16.  New URLs:
http://jjames.fedorapeople.org/cryptominisat/cryptominisat.spec
http://jjames.fedorapeople.org/cryptominisat/cryptominisat-2.9.1-1.fc16.src.rpm

Comment 2 Brendan Jones 2011-11-24 07:32:06 UTC
Hi Jerry, good stuff, this package is APPROVED on the proviso:

1) Use of %{name} macro in Source tags and URL


[-] N/A
[+] Good
[?] Attention
[ ] Not performed


Required
========

[+] named according to the Package Naming Guidelines 
[+] The spec file name must match the base package %{name}, in the format
%{name}.spec 
[+] Meet the Packaging Guidelines
unless building for F12 and below  or EPEL   

[+] Be licensed with a Fedora approved license and meet the Licensing
Guidelines 
[+] The License field in the package spec file must match the actual license 
[+] License file must be included in %doc
[+] The spec file must be written in American English
[+] The spec file for the package MUST be legible
[+] The sources used to build the package must match the upstream source
sha1sum 1070ff76edc06d2952d138bc32ab85580add5157
[+] Successfully compile and build into binary rpms on at least one primary
architecture
[-] Proper use of ExcludeArch 
[+] All build dependencies must be listed in BuildRequires

[+] The spec file MUST handle locales properly
[+] Shared library files (not just symlinks) in any of the dynamic linker's
default paths, must call ldconfig in %post and %postun
[+] Packages must NOT bundle copies of system libraries
[-] If the package is designed to be relocatable, the packager must state this
fact in the request for review, along with the rationalization for relocation
of that specific package
[+] A package must own all directories that it creates
directories under this
[+] A Fedora package must not list a file more than once in the spec file's
%files listings
[+] Permissions on files must be set properly. %defattr(...) no longer required
[?] Each package must consistently use macros
*** Use %{name} in Source and URL's

[+] The package must contain code, or permissable content
[-] Large documentation files must go in a -doc subpackage

[+] If a package includes something as %doc, it must not affect the runtime of
the application
[+] Header files must be in a -devel package
[+] Static libraries must be in a -static package
[+] library files that end in .so (without suffix) must go in a -devel package
[+] devel packages must require the base package using a fully versioned
dependency

[+] Packages must NOT contain any .la libtool archives
[-] GUI apps must include a %{name}.desktop file, properly installed with
desktop-file-install in the %install section 
[+] Packages must not own files or directories already owned by other packages
[+] All filenames in rpm packages must be valid UTF-8

[-] Has BuildRequires: python2-devel and/or python3-devel

Should Items
============
[-] the packager SHOULD query upstream for any missing license text files to
include it
[-] Non-English language support for description and summary sections in the
package spec if available
[ ] The reviewer should test that the package builds in mock
[+] The package should compile and build into binary rpms on all supported
architectures
[+] The reviewer should test that the package functions as described
cryptominisat --nosolprint --verbosity=1 AProVE09-12.cnf.gz OK
[-] If scriptlets are used, those scriptlets must be sane
[+] Usually, subpackages other than devel should require the base package using
a fully versioned dependency
[-] The placement of pkgconfig(.pc) should usually be placed in a -devel pkg
[-] If the package has file dependencies outside of /etc, /bin, /sbin,
/usr/bin, or /usr/sbin consider requiring the package which provides the file
instead of the file itself
[+] Should contain man pages for binaries/scripts
None in source although adequate documentation

Comment 3 Brendan Jones 2011-11-24 07:35:59 UTC
Sorry, one last thing:

fedora16:~$ rpmlint rpmbuild/SRPMS/cryptominisat-2.9.1-1.fc16.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
fedora16:~$ rpmlint rpmbuild/RPMS/x86_64/cryptominisat*.rpm 
cryptominisat-devel.x86_64: W: no-documentation
cryptominisat-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/libcryptominisat-2.9.1.so exit.5
4 packages and 0 specfiles checked; 0 errors, 2 warnings.

Comment 4 Jerry James 2011-11-24 18:54:00 UTC
Thanks for the review, Brendan.  I'll fix the places that should use %{name} on import.  But I'm confused....

(In reply to comment #3)
> Sorry, one last thing:
> 
> fedora16:~$ rpmlint rpmbuild/SRPMS/cryptominisat-2.9.1-1.fc16.src.rpm 
> 1 packages and 0 specfiles checked; 0 errors, 0 warnings.
> fedora16:~$ rpmlint rpmbuild/RPMS/x86_64/cryptominisat*.rpm 
> cryptominisat-devel.x86_64: W: no-documentation
> cryptominisat-libs.x86_64: W: shared-lib-calls-exit
> /usr/lib64/libcryptominisat-2.9.1.so exit.5
> 4 packages and 0 specfiles checked; 0 errors, 2 warnings.

Is this just to satisfy the requirement to show the rpmlint output, or do you want me to do something about the library calling exit()?

Comment 5 Brendan Jones 2011-11-24 20:08:55 UTC
Sorry, Jerry, yes, just after some confirmation that the exit warning is OK.

Comment 6 Jerry James 2011-11-24 20:55:30 UTC
Well, no, it isn't really okay.  I'll talk to upstream about it.  Here's a catalog of places where exit() is called:
- Solver/DimacsParser.cpp: if there is a parse error
- Solver/ClauseAllocator.cpp: if a memory allocation fails
- Solver/Solver.cpp: if it is asked to solve a problem that is too large
- Solver/SolverMisc.cpp: if output files cannot be opened

All of those should really either throw exceptions or return error values, so the calling application can cope.  What would you like me to do: import and work with upstream on the side, or wait for upstream to address this issue before importing?

Comment 7 Brendan Jones 2011-11-24 21:38:10 UTC
This isn't a blocker Jerry but you should definitely take it upstream.

Comment 8 Jerry James 2011-12-07 17:49:48 UTC
OK, I've got a patch that I'm discussing with upstream.  I'll tentatively add it to the package for now, and work with upstream on a permanent solution.  Thanks for the review, Brendan!

New Package SCM Request
=======================
Package Name: cryptominisat
Short Description: SAT solver
Owners: jjames
Branches: f16
InitialCC:

Comment 9 Gwyn Ciesla 2011-12-07 17:53:18 UTC
Git done (by process-git-requests).

Comment 10 Fedora Update System 2011-12-08 01:54:26 UTC
cryptominisat-2.9.1-1.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/cryptominisat-2.9.1-1.fc16

Comment 11 Fedora Update System 2011-12-10 19:37:41 UTC
cryptominisat-2.9.1-1.fc16 has been pushed to the Fedora 16 testing repository.

Comment 12 Fedora Update System 2011-12-18 19:47:47 UTC
cryptominisat-2.9.1-1.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.