Bug 1810293 - Review Request: seqan3 - The modern C++ library for sequence analysis
Summary: Review Request: seqan3 - The modern C++ library for sequence analysis
Keywords:
Status: CLOSED DUPLICATE of bug 1894895
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1894895
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-03-04 21:52 UTC by Antonio T. (sagitter)
Modified: 2020-11-05 12:37 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-11-05 12:37:56 UTC
Type: ---
Embargoed:
sanjay.ankur: fedora-review+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1888969 0 unspecified CLOSED Cereal Header-only package must not be marked noarch 2021-02-22 00:41:40 UTC

Description Antonio T. (sagitter) 2020-03-04 21:52:45 UTC
Spec URL: https://sagitter.fedorapeople.org/seqan3/seqan3.spec
SRPM URL: https://sagitter.fedorapeople.org/seqan3/seqan3-3.0.1-1.fc31.src.rpm

Description:

SeqAn3 is the new version of the popular SeqAn template
library for the analysis of biological sequences.

Fedora Account System Username: sagitter

Comment 1 Antonio T. (sagitter) 2020-03-22 10:52:27 UTC
`gtest-1.10.0` is now available on Fedora 33.
Unfortunately, this code is not ready for `GCC-10` yet.

Comment 2 Antonio T. sagitter 2020-10-13 20:55:15 UTC
seqan3 is ready for the review.

Spec URL: https://sagitter.fedorapeople.org/seqan3/seqan3.spec
SRPM URL: https://sagitter.fedorapeople.org/seqan3/seqan3-3.0.2-1.fc32.src.rpm

Comment 3 Antonio T. sagitter 2020-10-14 09:23:11 UTC
Add Upstream patches for bug #2209 and #2210.

Spec URL: https://sagitter.fedorapeople.org/seqan3/seqan3.spec
SRPM URL: https://sagitter.fedorapeople.org/seqan3/seqan3-3.0.2-2.fc32.src.rpm

Comment 4 Ankur Sinha (FranciscoD) 2020-10-16 12:43:37 UTC
Hi Antonio,

I'll review this. Putting it through fedora-review now.

Cheers,

Comment 5 Ankur Sinha (FranciscoD) 2020-10-16 14:27:27 UTC
The package cannot currently be installed in rawhide from the looks of it. Could you check this please Antonio?

fedora-review pointed this out and I verified it:

$ sudo dnf --releasever=34 install ./seqan3-devel-3.0.2-2.fc34.x86_64.rpm 
 Problem: conflicting requests
  - nothing provides cereal-devel(x86-64) >= 1.2.3 needed by seqan3-devel-3.0.2-2.fc34.x86_64
  - nothing provides range-v3-devel%{?_isa} >= 0.11.0 needed by seqan3-devel-3.0.2-2.fc34.x86_64


I see both cereal and range-v3-devel have the right versions, though, so not sure what's causing this.

Comment 6 Antonio T. sagitter 2020-10-16 15:13:56 UTC
Spec URL: https://sagitter.fedorapeople.org/seqan3/seqan3.spec
SRPM URL: https://sagitter.fedorapeople.org/seqan3/seqan3-3.0.2-3.fc32.src.rpm

About range-v3-devel, it's a mine typo (double %%) (Requires: range-v3-devel%%{?_isa} >= 0.11.0).
About cereal-devel package, it's unexpectedly not-arched

Comment 7 Antonio T. sagitter 2020-10-17 10:09:17 UTC
cereal-devel is now fixed.

Comment 8 Ankur Sinha (FranciscoD) 2020-10-17 16:32:37 UTC
Thanks, this is the first round of review. A few points there to look into below:


Package Review
==============

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


Issues:
=======
- 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.
  Note: License file LICENSE.TXT is not marked as %license
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/LicensingGuidelines/#_license_text


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[?]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
^
See next point.

[?]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "BSD 3-clause "New" or "Revised"
     License", "*No copyright* Expat License", "zlib/libpng license",
     "Expat License". 1028 files have unknown license. Detailed output of
     licensecheck in /home/asinha/dump/fedora-
     reviews/1810293-seqan3/licensecheck.txt
^
Please take a look at this to double check that all licenses are specified in the spec.

Do the subpackages need the License tag?

[?]: License file installed when any subpackage combination is installed.
^
Please see note above: I think it's one of the bundled sources.

[?]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
^
Please see note above.

[x]: %build honors applicable compiler flags or justifies otherwise.
[?]: Package contains no bundled libraries without FPC exception.
^
Is the package using the bundled range-v3 sources? There's a comment that seems
to indicate so. If yes, it should be mentioned as bundled (and then you don't
need it as a BR and Require?).
https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling

[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.
[x]: 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.
[?]: Package is not known to require an ExcludeArch tag.
^
Is this upstream's restriction? Please make a note.

[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 1 files.
[?]: Package complies to the Packaging Guidelines
^
A few nitpicks above.

[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]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[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 must not depend on deprecated() packages.
[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:
[!]: Uses parallel make %{?_smp_mflags} macro.
^
False positive: this is only for the docs.

[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[?]: Final provides and requires are sane (see attachments).
^
See notes about bundling etc.

[-]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     seqan3-devel
^
False positive.

[?]: Package functions as described.
^
I haven't been able to test this.

[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[?]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
^
Could you please include the links to the issues/bugs just for verbosity?

[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[?]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define _lto_cflags %{nil},
     %define __cmake_in_source_build .
^
Any reason for using the in source build and then doing pushed/popd there
instead of just using what the cmake macro now does automatically?
https://docs.fedoraproject.org/en-US/packaging-guidelines/CMake/

[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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Package should compile and build into binary rpms on all supported
     architectures.

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

Generic:
[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: seqan3-devel-3.0.2-3.fc34.x86_64.rpm
          seqan3-doc-3.0.2-3.fc34.noarch.rpm
          seqan3-3.0.2-3.fc34.src.rpm
seqan3-devel.x86_64: W: only-non-binary-in-usr-lib
seqan3-devel.x86_64: E: version-control-internal-file /usr/include/sdsl/.gitignore
3 packages and 0 specfiles checked; 1 errors, 1 warnings.

^ We should remove that one.


Rpmlint (installed packages)
----------------------------
seqan3-devel.x86_64: W: invalid-url URL: http://www.seqan.de/ <urlopen error [Errno -3] Temporary failure in name resolution>
seqan3-devel.x86_64: W: only-non-binary-in-usr-lib
seqan3-devel.x86_64: E: version-control-internal-file /usr/include/sdsl/.gitignore
seqan3-doc.noarch: W: invalid-url URL: http://www.seqan.de/ <urlopen error [Errno -3] Temporary failure in name resolution>
2 packages and 0 specfiles checked; 1 errors, 3 warnings.



Source checksums
----------------
https://github.com/seqan/seqan3/releases/download/3.0.2/seqan3-3.0.2-Source.tar.xz :
  CHECKSUM(SHA256) this package     : bab1a9cd0c01fd486842e0fa7a5b41c1bf6d2c43fdadf4c543956923deb62ee9
  CHECKSUM(SHA256) upstream package : bab1a9cd0c01fd486842e0fa7a5b41c1bf6d2c43fdadf4c543956923deb62ee9


Requires
--------
seqan3-devel (rpmlib, GLIBC filtered):
    bzip2-devel(x86-64)
    cereal-devel
    cmake(x86-64)
    cmake-filesystem(x86-64)
    range-v3-devel(x86-64)
    zlib-devel(x86-64)

seqan3-doc (rpmlib, GLIBC filtered):



Provides
--------
seqan3-devel:
    SDSL-devel(x86-64)
    cmake(seqan3)
    sdsl-devel(x86-64)
    sdsl-lite-devel(x86-64)
    seqan3-devel
    seqan3-devel(x86-64)

seqan3-doc:
    seqan3-doc



Generated by fedora-review 0.7.5 (5fa5b7e) last change: 2020-02-16
Command line :/usr/bin/fedora-review -b 1810293
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, C/C++, Shell-api
Disabled plugins: Ocaml, Python, Haskell, Java, Perl, fonts, SugarActivity, PHP, R
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 9 Antonio T. sagitter 2020-10-18 09:00:12 UTC
> Please take a look at this to double check that all licenses are specified in the spec.

> Is the package using the bundled range-v3 sources? There's a comment that seems
> to indicate so. If yes, it should be mentioned as bundled (and then you don't
> need it as a BR and Require?).
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling

It's a legacy of old releases, erased it.
CMake in-source-build macros should be more explicative, now.

Spec URL: https://sagitter.fedorapeople.org/seqan3/seqan3.spec
SRPM URL: https://sagitter.fedorapeople.org/seqan3/seqan3-3.0.2-4.fc32.src.rpm

Comment 10 Antonio T. sagitter 2020-10-18 09:00:53 UTC
Rawhide build: https://koji.fedoraproject.org/koji/taskinfo?taskID=53660423

Comment 11 Ankur Sinha (FranciscoD) 2020-11-02 13:17:17 UTC
Sorry, missed the ping, will complete review later today

Comment 12 Ankur Sinha (FranciscoD) 2020-11-02 21:10:46 UTC
Looks pretty good:

- Please add comments about the upstream patches, with their URLs (without them, it's hard for a reader to see where these come from or what they do).
- Please remove the License tag from the doc sub-package,
- Please remove the /usr/include/sdsl/.gitignore file


You cannot include the sdsl-lite bits in this package and provide it in the -devel subpackage, each srpm/package should only provide one software, no?
sdsl-lite needs to be either:

- packaged separately and included as a BR,
- or bundled, but then it should not provide the publicly usable headers in this package,

Cheers!

Comment 13 Antonio T. sagitter 2020-11-03 16:31:40 UTC
Spec URL: https://sagitter.fedorapeople.org/seqan3/seqan3.spec
SRPM URL: https://sagitter.fedorapeople.org/seqan3/seqan3-3.0.2-5.fc33.src.rpm

- Bundle sdsl header files

Comment 14 Ankur Sinha (FranciscoD) 2020-11-03 20:44:56 UTC
OK, looks good. XXX APPROVED XXX

Please keep in mind that whenever sddl is packaged, the headers bundled here (which aren't private) will conflict with the package.

Comment 15 Antonio T. sagitter 2020-11-04 10:11:26 UTC
Thank you Ankur.

Comment 16 Antonio T. sagitter 2020-11-05 11:36:47 UTC
@Ankur,

i'm duplicating this review ticket because my FAS mail in changed since 2020 April 03 when i opened this review.
I can't create a new repo: https://pagure.io/releng/fedora-scm-requests/issue/30242#comment-699630

New review for seqan3 will need to be approved.

Thank you again.

Comment 17 Antonio T. sagitter 2020-11-05 12:37:56 UTC

*** This bug has been marked as a duplicate of bug 1894895 ***


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