Bug 1256100

Summary: Review Request: cryptominisat4 - SAT solver
Product: [Fedora] Fedora Reporter: Jerry James <loganjerry>
Component: Package ReviewAssignee: gil cattaneo <puntogil>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: ashleelkama, package-review, puntogil
Target Milestone: ---Flags: puntogil: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-11 03:12:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jerry James 2015-08-23 23:06:09 UTC
Spec URL: https://jjames.fedorapeople.org/cryptominisat4/cryptominisat4.spec
SRPM URL: https://jjames.fedorapeople.org/cryptominisat4/cryptominisat4-4.2.0-1.fc24.src.rpm
Fedora Account System Username: jjames
Description: CryptoMiniSat is a modern, multi-threaded, feature-rich, simplifying SAT solver. Highlights:
- Instance simplification at every point of the search (inprocessing)
- Over 100 configurable parameters to tune to specific needs
- Collection of statistical data to MySQL database + javascript-based visualization of it
- Clean C++ and python interfaces

Note that this is not just a later version of the existing cryptominisat (2.x) package.  In fact, the latest version of the stp package wants to link against both cryptominisat 2.x and cryptominisat 4.x, so this really is a distinct package.

Comment 3 gil cattaneo 2015-08-28 15:43:49 UTC
can you take this for me?
https://bugzilla.redhat.com/show_bug.cgi?id=1228203
regards

Comment 4 gil cattaneo 2015-08-28 16:18:06 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed



===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "LGPL", "GPL (v3 or later)", "Unknown or generated", "MIT/X11
     (BSD like)", "BSD (2 clause)", "GPL (v2)", "*No copyright* MIT/X11
     (BSD like)". 44 files have unknown license. Detailed output of
     licensecheck in /home/gil/1256100-cryptominisat4/licensecheck.txt

*No copyright* MIT/X11 (BSD like)
---------------------------------
cryptominisat-4.5.3/python/test_pycryptosat.py

BSD (2 clause)
--------------
cryptominisat-4.5.3/src/MersenneTwister.h

GPL (v2)
--------
cryptominisat-4.5.3/scripts/debuglib.py
cryptominisat-4.5.3/scripts/fuzz_test.py
cryptominisat-4.5.3/scripts/intersperse.py

GPL (v3 or later)
-----------------
cryptominisat-4.5.3/scripts/optionfuzzer.sh

LGPL
----
cryptominisat-4.5.3/src/GitSHA1.h
cryptominisat-4.5.3/src/avgcalc.h
cryptominisat-4.5.3/src/bitarray.h
cryptominisat-4.5.3/src/bva.cpp
cryptominisat-4.5.3/src/bva.h
cryptominisat-4.5.3/src/calcdefpolars.cpp
cryptominisat-4.5.3/src/calcdefpolars.h
cryptominisat-4.5.3/src/clabstraction.h
cryptominisat-4.5.3/src/clause.h
cryptominisat-4.5.3/src/clauseallocator.cpp
cryptominisat-4.5.3/src/clauseallocator.h
cryptominisat-4.5.3/src/clausecleaner.cpp
cryptominisat-4.5.3/src/clausecleaner.h
cryptominisat-4.5.3/src/clausedumper.cpp
cryptominisat-4.5.3/src/clausedumper.h
cryptominisat-4.5.3/src/clauseusagestats.cpp
cryptominisat-4.5.3/src/cleaningstats.cpp
cryptominisat-4.5.3/src/cleaningstats.h
cryptominisat-4.5.3/src/cnf.cpp
cryptominisat-4.5.3/src/cnf.h
cryptominisat-4.5.3/src/compfinder.cpp
cryptominisat-4.5.3/src/compfinder.h
cryptominisat-4.5.3/src/comphandler.cpp
cryptominisat-4.5.3/src/comphandler.h
cryptominisat-4.5.3/src/completedetachreattacher.cpp
cryptominisat-4.5.3/src/completedetachreattacher.h
cryptominisat-4.5.3/src/constants.h
cryptominisat-4.5.3/src/cryptominisat.cpp
cryptominisat-4.5.3/src/cset.h
cryptominisat-4.5.3/src/datasync.cpp
cryptominisat-4.5.3/src/datasync.h
cryptominisat-4.5.3/src/distiller.cpp
cryptominisat-4.5.3/src/distiller.h
cryptominisat-4.5.3/src/drup.h
cryptominisat-4.5.3/src/features.cpp
cryptominisat-4.5.3/src/features.h
cryptominisat-4.5.3/src/gatefinder.cpp
cryptominisat-4.5.3/src/gatefinder.h
cryptominisat-4.5.3/src/gaussian.cpp
cryptominisat-4.5.3/src/gaussian.h
cryptominisat-4.5.3/src/gaussianconfig.h
cryptominisat-4.5.3/src/hyperengine.cpp
cryptominisat-4.5.3/src/hyperengine.h
cryptominisat-4.5.3/src/implcache.cpp
cryptominisat-4.5.3/src/implcache.h
cryptominisat-4.5.3/src/intree.cpp
cryptominisat-4.5.3/src/intree.h
cryptominisat-4.5.3/src/main.h
cryptominisat-4.5.3/src/mysqlstats.cpp
cryptominisat-4.5.3/src/mysqlstats.h
cryptominisat-4.5.3/src/mystack.h
cryptominisat-4.5.3/src/occsimplifier.cpp
cryptominisat-4.5.3/src/occsimplifier.h
cryptominisat-4.5.3/src/packedmatrix.h
cryptominisat-4.5.3/src/packedrow.cpp
cryptominisat-4.5.3/src/packedrow.h
cryptominisat-4.5.3/src/prober.cpp
cryptominisat-4.5.3/src/prober.h
cryptominisat-4.5.3/src/propby.h
cryptominisat-4.5.3/src/propbyforgraph.h
cryptominisat-4.5.3/src/propengine.cpp
cryptominisat-4.5.3/src/propengine.h
cryptominisat-4.5.3/src/reducedb.cpp
cryptominisat-4.5.3/src/reducedb.h
cryptominisat-4.5.3/src/sccfinder.cpp
cryptominisat-4.5.3/src/sccfinder.h
cryptominisat-4.5.3/src/searcher.cpp
cryptominisat-4.5.3/src/searcher.h
cryptominisat-4.5.3/src/shareddata.h
cryptominisat-4.5.3/src/solutionextender.cpp
cryptominisat-4.5.3/src/solutionextender.h
cryptominisat-4.5.3/src/solutionextender_old.cpp
cryptominisat-4.5.3/src/solutionextender_old.h
cryptominisat-4.5.3/src/solver.cpp
cryptominisat-4.5.3/src/solver.h
cryptominisat-4.5.3/src/solvertypes.h
cryptominisat-4.5.3/src/sqlitestats.cpp
cryptominisat-4.5.3/src/sqlitestats.h
cryptominisat-4.5.3/src/sqlstats.cpp
cryptominisat-4.5.3/src/sqlstats.h
cryptominisat-4.5.3/src/stamp.cpp
cryptominisat-4.5.3/src/stamp.h
cryptominisat-4.5.3/src/strengthener.cpp
cryptominisat-4.5.3/src/strengthener.h
cryptominisat-4.5.3/src/subsumeimplicit.cpp
cryptominisat-4.5.3/src/subsumeimplicit.h
cryptominisat-4.5.3/src/subsumestrengthen.cpp
cryptominisat-4.5.3/src/subsumestrengthen.h
cryptominisat-4.5.3/src/touchlist.h
cryptominisat-4.5.3/src/vardata.h
cryptominisat-4.5.3/src/varreplacer.cpp
cryptominisat-4.5.3/src/varreplacer.h
cryptominisat-4.5.3/src/varupdatehelper.h
cryptominisat-4.5.3/src/watchalgos.h
cryptominisat-4.5.3/src/watcharray_handrolled.cpp
cryptominisat-4.5.3/src/watcharray_handrolled.h
cryptominisat-4.5.3/src/watched.h
cryptominisat-4.5.3/src/xorfinder.cpp
cryptominisat-4.5.3/src/xorfinder.h
cryptominisat-4.5.3/src/xorfinderabst.h

MIT/X11 (BSD like)
------------------
cryptominisat-4.5.3/python/pycryptosat.cpp
cryptominisat-4.5.3/src/Vec.h
cryptominisat-4.5.3/src/XAlloc.h
cryptominisat-4.5.3/src/alg.h
cryptominisat-4.5.3/src/boundedqueue.h
cryptominisat-4.5.3/src/clauseusagestats.h
cryptominisat-4.5.3/src/cloffset.h
cryptominisat-4.5.3/src/dimacsparser.cpp
cryptominisat-4.5.3/src/dimacsparser.h
cryptominisat-4.5.3/src/heap.h
cryptominisat-4.5.3/src/main.cpp
cryptominisat-4.5.3/src/main_common.h
cryptominisat-4.5.3/src/main_simple.cpp
cryptominisat-4.5.3/src/minisat_rnd.h
cryptominisat-4.5.3/src/solverconf.cpp
cryptominisat-4.5.3/src/solverconf.h
cryptominisat-4.5.3/src/sql_tablestructure.h
cryptominisat-4.5.3/src/streambuffer.h
cryptominisat-4.5.3/src/time_mem.h
cryptominisat-4.5.3/src/watcharray.h
cryptominisat-4.5.3/tests/clause_test.cpp
cryptominisat-4.5.3/tests/library_speed_test.cpp
cryptominisat-4.5.3/tests/readme_test.cpp

Unknown or generated
--------------------
cryptominisat-4.5.3/.travis-cmake.sh
cryptominisat-4.5.3/cmsat_mysql_setup.sh
cryptominisat-4.5.3/desc/satcomp14/cmsv4.tex
cryptominisat-4.5.3/desc/satcomp15/cmsv4.tex
cryptominisat-4.5.3/scripts/aws/RequestSpotClient.py
cryptominisat-4.5.3/scripts/aws/build_cryptominisat.sh
cryptominisat-4.5.3/scripts/aws/build_lingeling_ayv.sh
cryptominisat-4.5.3/scripts/aws/build_swdia5by.sh
cryptominisat-4.5.3/scripts/aws/build_swdia5by_old.sh
cryptominisat-4.5.3/scripts/aws/client.py
cryptominisat-4.5.3/scripts/aws/common_aws.py
cryptominisat-4.5.3/scripts/aws/launch_server.py
cryptominisat-4.5.3/scripts/aws/local_test.sh
cryptominisat-4.5.3/scripts/aws/pre-server.py
cryptominisat-4.5.3/scripts/aws/server.py
cryptominisat-4.5.3/scripts/aws/test_spot_req.py
cryptominisat-4.5.3/scripts/cactusplots/convert_to_cactusplot.py
cryptominisat-4.5.3/scripts/cactusplots/solvetimes_from_output.sh
cryptominisat-4.5.3/scripts/cactusplots/solvetimes_from_output_glucose.sh
cryptominisat-4.5.3/scripts/cactusplots/solvetimes_from_output_lingeling.sh
cryptominisat-4.5.3/scripts/gen_cnf.py
cryptominisat-4.5.3/scripts/reconf/generate_reconf.sh
cryptominisat-4.5.3/scripts/reconf/reconf.py
cryptominisat-4.5.3/scripts/reconf/tocpp.py
cryptominisat-4.5.3/scripts/single_machine_script/single_machine_script.sh
cryptominisat-4.5.3/src/features_calc.cpp
cryptominisat-4.5.3/src/features_calc.h
cryptominisat-4.5.3/src/features_to_reconf.cpp
cryptominisat-4.5.3/src/features_to_reconf.h
cryptominisat-4.5.3/src/ipasir.cpp
cryptominisat-4.5.3/src/ipasir.h
cryptominisat-4.5.3/src/trim.h
cryptominisat-4.5.3/tests/assump_test.cpp
cryptominisat-4.5.3/tests/basic_test.cpp
cryptominisat-4.5.3/tests/heap_test.cpp
cryptominisat-4.5.3/web/drawgraphs.js
cryptominisat-4.5.3/web/file_creator.py
cryptominisat-4.5.3/web/get_files_for_version.php
cryptominisat-4.5.3/web/get_versions.php
cryptominisat-4.5.3/web/getdata.php
cryptominisat-4.5.3/web/index.php
cryptominisat-4.5.3/web/install_web.sh
cryptominisat-4.5.3/web/mysql_connect.php
cryptominisat-4.5.3/web/selectdata.js


[x]: License file installed when any subpackage combination is installed.
[!]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/lib/cmake(cmake,
     qt5-qtlocation, qt5-qtbase)

 Please, use: %{_libdir}/cmake/cryptominisat4
 
[x]: %build honors applicable compiler flags or justifies otherwise.
[?]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 30720 bytes in 3 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     cryptominisat4-devel , cryptominisat4-libs , python-cryptominisat4
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Scriptlets must be sane, if used.
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[?]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: cryptominisat4-4.5.3-1.fc24.i686.rpm
          cryptominisat4-devel-4.5.3-1.fc24.i686.rpm
          cryptominisat4-libs-4.5.3-1.fc24.i686.rpm
          python-cryptominisat4-4.5.3-1.fc24.i686.rpm
          cryptominisat4-4.5.3-1.fc24.src.rpm
cryptominisat4.i686: W: spelling-error %description -l en_US multi -> mulch, mufti
cryptominisat4.i686: W: spelling-error %description -l en_US inprocessing -> in processing, in-processing, processing
cryptominisat4.i686: W: spelling-error %description -l en_US javascript -> java script, java-script, JavaScript
cryptominisat4.i686: W: no-manual-page-for-binary cryptominisat4_simple
cryptominisat4-devel.i686: W: no-documentation
cryptominisat4-libs.i686: W: spelling-error Summary(en_US) Cryptominisat -> Discriminatory
cryptominisat4-libs.i686: W: shared-lib-calls-exit /usr/lib/libcryptominisat4.so.4.5 exit
cryptominisat4.src: W: spelling-error %description -l en_US multi -> mulch, mufti
cryptominisat4.src: W: spelling-error %description -l en_US inprocessing -> in processing, in-processing, processing
cryptominisat4.src: W: spelling-error %description -l en_US javascript -> java script, java-script, JavaScript
cryptominisat4.src:68: W: rpm-buildroot-usage %prep sed -ri 's|install |&--root %{buildroot} |' python/CMakeLists.txt
cryptominisat4.src:71: W: rpm-buildroot-usage %build %cmake -DCMAKE_INSTALL_PREFIX=%{buildroot}%{_prefix} \
cryptominisat4.src:87: E: hardcoded-library-path in %{_prefix}/lib/lib%{name}*
cryptominisat4.src:88: E: hardcoded-library-path in %{_prefix}/lib/cmake
cryptominisat4.src:89: E: hardcoded-library-path in %{_prefix}/lib/|%{_libdir}/|'
5 packages and 0 specfiles checked; 3 errors, 12 warnings.




Rpmlint (debuginfo)
-------------------
Checking: cryptominisat4-debuginfo-4.5.3-1.fc24.i686.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
cryptominisat4.i686: W: no-manual-page-for-binary cryptominisat4_simple
cryptominisat4-devel.i686: W: no-documentation
cryptominisat4-libs.i686: W: shared-lib-calls-exit /usr/lib/libcryptominisat4.so.4.5 exit
5 packages and 0 specfiles checked; 0 errors, 3 warnings.



Requires
--------
cryptominisat4 (rpmlib, GLIBC filtered):
    cryptominisat4-libs(x86-32)
    libboost_program_options.so.1.58.0
    libc.so.6
    libcryptominisat4.so.4.5
    libgcc_s.so.1
    libgcc_s.so.1(GCC_3.0)
    libm.so.6
    libm4ri-0.0.20140914.so
    libpthread.so.0
    libstdc++.so.6
    libstdc++.so.6(CXXABI_1.3)
    libstdc++.so.6(CXXABI_1.3.1)
    libz.so.1
    rtld(GNU_HASH)

python-cryptominisat4 (rpmlib, GLIBC filtered):
    cryptominisat4-libs(x86-32)
    libc.so.6
    libcryptominisat4.so.4.5
    libgcc_s.so.1
    libgcc_s.so.1(GCC_3.0)
    libm.so.6
    libpython2.7.so.1.0
    libstdc++.so.6
    libstdc++.so.6(CXXABI_1.3)
    python(abi)
    rtld(GNU_HASH)

cryptominisat4-devel (rpmlib, GLIBC filtered):
    cryptominisat4-libs(x86-32)
    libcryptominisat4.so.4.5
    m4ri-devel(x86-32)
    tbb-devel(x86-32)

cryptominisat4-libs (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6
    libgcc_s.so.1
    libgcc_s.so.1(GCC_3.0)
    libgcc_s.so.1(GCC_3.4)
    libm.so.6
    libm4ri-0.0.20140914.so
    libpthread.so.0
    libstdc++.so.6
    libstdc++.so.6(CXXABI_1.3)
    rtld(GNU_HASH)



Provides
--------
cryptominisat4:
    cryptominisat4
    cryptominisat4(x86-32)

python-cryptominisat4:
    python-cryptominisat4
    python-cryptominisat4(x86-32)

cryptominisat4-devel:
    cmake(cryptominisat4)
    cryptominisat4-devel
    cryptominisat4-devel(x86-32)

cryptominisat4-libs:
    cryptominisat4-libs
    cryptominisat4-libs(x86-32)
    libcryptominisat4.so.4.5



Unversioned so-files
--------------------
python-cryptominisat4: /usr/lib/python2.7/site-packages/pycryptosat.so

Source checksums
----------------
https://github.com/msoos/cryptominisat/archive/4.5.3.tar.gz :
  CHECKSUM(SHA256) this package     : 114da20e25734dc368dada47afd8cb7d44717f2159ad66d5bac742062fa3eb4c
  CHECKSUM(SHA256) upstream package : 114da20e25734dc368dada47afd8cb7d44717f2159ad66d5bac742062fa3eb4c


Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20
Command line :/bin/fedora-review -b 1256100 -m fedora-rawhide-i386
Buildroot used: fedora-rawhide-i386
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 5 gil cattaneo 2015-08-28 16:27:44 UTC
ISSUES:
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "LGPL", "GPL (v3 or later)", "Unknown or generated", "MIT/X11
     (BSD like)", "BSD (2 clause)", "GPL (v2)", "*No copyright* MIT/X11
     (BSD like)". 44 files have unknown license. Detailed output of
     licensecheck in /home/gil/1256100-cryptominisat4/licensecheck.txt

see above, license field should be: 
BSD and GPLv2+ LGPLv2+ and MIT

[!]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/lib/cmake(cmake,
     qt5-qtlocation, qt5-qtbase)

 Please, use: %{_libdir}/cmake/cryptominisat4

Suggestion:
cryptominisat4.src:87: E: hardcoded-library-path in %{_prefix}/lib/lib%{name}*
cryptominisat4.src:88: E: hardcoded-library-path in %{_prefix}/lib/cmake
cryptominisat4.src:89: E: hardcoded-library-path in %{_prefix}/lib/|%{_libdir}/|'
can you patch cmake file, chaging the hardcoded ${dir}/lib with ${LIB_INSTALL_DIR}
e.g. %{__cmake} -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -DALSO_BUILD_STATIC_LIB=OFF .

Comment 6 gil cattaneo 2015-08-28 16:30:01 UTC
(In reply to gil cattaneo from comment #5)

> Suggestion:
> cryptominisat4.src:87: E: hardcoded-library-path in
> %{_prefix}/lib/lib%{name}*
> cryptominisat4.src:88: E: hardcoded-library-path in %{_prefix}/lib/cmake
> cryptominisat4.src:89: E: hardcoded-library-path in
> %{_prefix}/lib/|%{_libdir}/|'
> can you patch cmake file, chaging the hardcoded ${dir}/lib with
> ${LIB_INSTALL_DIR}
> e.g. %{__cmake} -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix}
> -DLIB_INSTALL_DIR:PATH=%{_libdir} -DALSO_BUILD_STATIC_LIB=OFF .

make install DESTDIR=%{buildroot}

Comment 7 Jerry James 2015-08-28 21:25:12 UTC
(In reply to gil cattaneo from comment #4)
> [!]: License field in the package spec file matches the actual license.
>      Note: Checking patched sources after %prep for licenses. Licenses
>      found: "LGPL", "GPL (v3 or later)", "Unknown or generated", "MIT/X11
>      (BSD like)", "BSD (2 clause)", "GPL (v2)", "*No copyright* MIT/X11
>      (BSD like)". 44 files have unknown license. Detailed output of
>      licensecheck in /home/gil/1256100-cryptominisat4/licensecheck.txt

https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License:_field says that the license field applies to the binary RPM, so some of these licenses don't matter, as they are files that do not contribute to the contents of the binary RPM.  The MIT python test file, and the GPL scripts are not packaged in any of the binary RPMs, so their licenses don't matter.  The files that are compiled into the binary RPMs have the following licenses: BSD (2 clause), LGPL v2, and MIT/X11 (BSD like).

In that case, the effective license (see https://fedoraproject.org/wiki/Licensing:FAQ?rd=Licensing/FAQ#What_is_.22effective_license.22_and_do_I_need_to_know_that_for_the_License:_tag.3F) is LGPLv2, since its terms are stricter than BSD and MIT.  So the License field is still wrong.  I'm not sure where I got LGPLv3+ from.  The license should be LGPLv2.  Fixed.

> [!]: Package does not own files or directories owned by other packages.
>      Note: Dirs in package are owned also by: /usr/lib/cmake(cmake,
>      qt5-qtlocation, qt5-qtbase)
> 
>  Please, use: %{_libdir}/cmake/cryptominisat4

No, the spec file is correct.  %{_libdir}/cmake is owned by the cmake package, which is not required by cryptominisat4-devel.  If I made this change, then somebody who does not have cmake installed and does not have %{_libdir}/cmake present on her system could install cryptominisat4-devel, then remove it, and now has an empty, unowned %{_libdir}/cmake directory on her system.  This case is covered here:

https://fedoraproject.org/wiki/Packaging:Guidelines#The_directory_is_owned_by_a_package_which_is_not_required_for_your_package_to_function

(In reply to gil cattaneo from comment #5)
> Suggestion:
> cryptominisat4.src:87: E: hardcoded-library-path in
> %{_prefix}/lib/lib%{name}*
> cryptominisat4.src:88: E: hardcoded-library-path in %{_prefix}/lib/cmake
> cryptominisat4.src:89: E: hardcoded-library-path in
> %{_prefix}/lib/|%{_libdir}/|'
> can you patch cmake file, chaging the hardcoded ${dir}/lib with
> ${LIB_INSTALL_DIR}
> e.g. %{__cmake} -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix}
> -DLIB_INSTALL_DIR:PATH=%{_libdir} -DALSO_BUILD_STATIC_LIB=OFF .

No, it's not so simple, I'm afraid.  Following that path has, so far, led me to make these changes, but they aren't enough.  The build is still failing:

# Fix installation on systems with lib64
if [ "%{_libdir}" = "%{_prefix}/lib64" ]; then
  sed -e 's,${CMAKE_CURRENT_BINARY_DIR}/lib,&64,' \
      -e 's,DEF_INSTALL_CMAKE_DIR lib,&64,' \
      -i CMakeLists.txt
  sed -i 's,${dir}/lib,${LIB_INSTALL_DIR},g' cmake/FindPkgMacros.cmake
  sed -i 's,${CMAKE_INSTALL_PREFIX}/lib,&64,' src/CMakeLists.txt
  sed -i 's,'${PROJECT_BINARY_DIR}/lib',&64,' python/setup.py.in
  sed -i 's,--rpath ../lib,&64,' python/CMakeLists.txt
fi

Can we stick with the scheme I already have working?  This approach looks to be at least as complicated and more fragile.

(In reply to gil cattaneo from comment #6)
> make install DESTDIR=%{buildroot}

I have made this change.  New URLs:

Spec URL: https://jjames.fedorapeople.org/cryptominisat4/cryptominisat4.spec
SRPM URL: https://jjames.fedorapeople.org/cryptominisat4/cryptominisat4-4.5.3-2.fc24.src.rpm

Comment 8 gil cattaneo 2015-08-28 21:49:05 UTC
(In reply to Jerry James from comment #7)
> (In reply to gil cattaneo from comment #4)

> The files that are compiled into the binary RPMs have the following
> licenses: BSD (2 clause), LGPL v2, and MIT/X11 (BSD like).
So the license field should be: BSD and LGPLv2

> is still wrong.  I'm not sure where I got LGPLv3+ from.  The license should be > LGPLv2.  Fixed.
from cryptominisat-4.5.3/LICENSE-LGPL LGPL v3
from cryptominisat-4.5.3/python/LICENSE MIT but says "CryptoMiniSat is under an LGPLv2 license. Please see LICENSE-LGPL file" ... seem outdate and everything is pretty confused ...

thank you for your explanation, it seems all right. approved

Comment 9 Jerry James 2015-08-28 22:17:16 UTC
The license situation really is confusing.  I'm going to write to upstream and ask them to do something about that.  Thank you for the review!

Comment 10 Jerry James 2015-08-28 22:19:43 UTC
New Package SCM Request
=======================
Package Name: cryptominisat4
Short Description: SAT solver
Upstream URL: http://www.msoos.org/cryptominisat4/
Owners: jjames
Branches: f22 f23
InitialCC:

Comment 11 Gwyn Ciesla 2015-08-30 14:19:43 UTC
Git done (by process-git-requests).

Comment 12 ashleel 2015-12-10 09:14:03 UTC
I'm using CBMC as one that generating DIMAC format and using that as input in file named "foo" to use that on crypominisat as file input, first :

cryptominisat4_simple --verb 0 foo

ERROR! unknown flag --verb

cryptominisat4_simple foo working perfectly

cryptominisat4_simple foo

c CryptoMiniSat version 4.5.3
c compiled with gcc version 4.9.1
c -- header says num vars: 1111485
c -- header says num clauses: 4152266

PARSE ERROR! Unexpected char (dec: '
) At line 212083 we expected a number

Line 212083 has only numbers, whether there is constrained on length of input / file line length ??? 
Is there any limit .

Comment 13 gil cattaneo 2015-12-10 09:54:28 UTC
(In reply to ashleel from comment #12)
> I'm using CBMC as one that generating DIMAC format and using that as input
> in file named "foo" to use that on crypominisat as file input, first :
> 
> cryptominisat4_simple --verb 0 foo
> 
> ERROR! unknown flag --verb
> 
> cryptominisat4_simple foo working perfectly
> 
> cryptominisat4_simple foo
> 
> c CryptoMiniSat version 4.5.3
> c compiled with gcc version 4.9.1
> c -- header says num vars: 1111485
> c -- header says num clauses: 4152266
> 
> PARSE ERROR! Unexpected char (dec: '
> ) At line 212083 we expected a number
> 
> Line 212083 has only numbers, whether there is constrained on length of
> input / file line length ??? 
> Is there any limit .

Please, open a bug here https://apps.fedoraproject.org/packages/cryptominisat4/bugs

Comment 14 Jerry James 2015-12-11 03:12:38 UTC
(In reply to ashleel from comment #12)
> I'm using CBMC as one that generating DIMAC format and using that as input
> in file named "foo" to use that on crypominisat as file input, first :
> 
> cryptominisat4_simple --verb 0 foo
> 
> ERROR! unknown flag --verb

As gil noted, you should not hijack bugs.  Open a new bug for a new issue, please.

This particular question would be better asked on upstream's mailing list anyway.  It isn't really a bug, but a question about the program's limits.