Bug 1531955 - Review Request: seqan2 - C++ library of efficient algorithms and data structures
Summary: Review Request: seqan2 - C++ library of efficient algorithms and data structures
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Alec Leamas
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: mailto:nobody@fedoraproject.org
Depends On:
Blocks: 1331187
TreeView+ depends on / blocked
 
Reported: 2018-01-06 20:05 UTC by Antonio T. (sagitter)
Modified: 2018-01-26 18:09 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-01-26 17:56:00 UTC
Type: ---
Embargoed:
leamas.alec: fedora-review+


Attachments (Terms of Use)

Description Antonio T. (sagitter) 2018-01-06 20:05:01 UTC
Spec URL: https://sagitter.fedorapeople.org/seqan2.spec
SRPM URL: 
https://sagitter.fedorapeople.org/seqan2-2.3.2-2.20180103git8a875d.fc27.src.rpm

Description:
SeqAn (version 2.x.x) is an open source C++ library of efficient algorithms
and data structures for the analysis of sequences with the focus on
biological data. 
Our library applies a unique generic design that guarantees high performance, 
generality, extensibility, and integration with other libraries. 

Fedora Account System Username: sagitter

Note:
SeqAn (1.4.2) is already in Fedora's repositories but i can't upgrade to the recent versions because it needed by OpenMS.

An OpenMS update for using SeqAn-2* is expected within an indeterminate time, so i have created new "seqan2" rpms that provide latest SeqAn versions.

Comment 1 Antonio T. (sagitter) 2018-01-06 20:09:00 UTC
Relevant upstream bug regarding SeqAn and OpenMS:
https://github.com/OpenMS/OpenMS/issues/1313#issuecomment-291078025

Comment 2 Alec Leamas 2018-01-07 19:44:56 UTC
Taking this one

Comment 3 Alec Leamas 2018-01-08 06:50:55 UTC
At a glance, here are bundling issues. The library util/py_lib/seqan/dox/tpl/lib includes several bundled libraries whih needs to be dealt with. In particular, shouldn't the bundled font be unbundled even under current, somewhat relaxed rules?

Also the license situation is somewhat more complicated than what could be expressed in a few comments. I suggest that you run fedora-review and use the license-check.txt file created, review it and use it as license clarification.

This is just some initial findings.  seqan2 is quite a large package, and I expect there is more. Please take a stab at this for now.

Comment 4 Antonio T. (sagitter) 2018-01-08 13:40:30 UTC
(In reply to Alec Leamas from comment #3)
> At a glance, here are bundling issues. The library
> util/py_lib/seqan/dox/tpl/lib includes several bundled libraries whih needs
> to be dealt with. In particular, shouldn't the bundled font be unbundled
> even under current, somewhat relaxed rules?

It's a false problem. Those files are not involved during the compilation neither packed in the binary rpms.

> 
> Also the license situation is somewhat more complicated than what could be
> expressed in a few comments. I suggest that you run fedora-review and use
> the license-check.txt file created, review it and use it as license
> clarification.
> 
> This is just some initial findings.  seqan2 is quite a large package, and I
> expect there is more. Please take a stab at this for now.

Many apps are released under BSD, others under LGPv3+ and GPLv3+. These licenses are compatible among them, therefore the resultant binary rpm can be licensed under a single collective license (GPLv3+).


Spec URL: https://sagitter.fedorapeople.org/seqan2.spec
SRPM URL: 
https://sagitter.fedorapeople.org/seqan2-2.3.2-3.20180103git8a875d.fc27.src.rpm

Comment 5 Alec Leamas 2018-01-08 23:06:28 UTC
(In reply to Antonio Trande from comment #4)

> It's a false problem. Those files are not involved during the compilation
> neither packed in the binary rpms.

Does this also apply to the bundled headers in include/seqan/stream? In any case they should then be removed in %prep, right? [1]

> Many apps are released under BSD, others under LGPv3+ and GPLv3+. These
> licenses are compatible among them, therefore the resultant binary rpm can
> be licensed under a single collective license (GPLv3+).

I have no overall problem with that conclusion. However, a statement describing the grounds for it is required  - that is, the actual license for the different files. This is a bit convoluted as of now, but would become clearer after removing unused stuff in %prep.

[1] https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries

Comment 6 Alec Leamas 2018-01-09 18:06:45 UTC
Here comes the full list of issues I see after making a full review:

- seqan2 obsoletes seqan without providing seqan.
- seqan2-devel does not depend on seqan2 = %{version}-%{release}.
- A binary zip file is present in the examples package.
- Several bundled files/directories in util/py_lib/seqan/dox/tpl/lib and
  include/seqan/stream. Please either remove these in %prep and/or bundle
  properly using Provides: bundled(...)
- The License field comment does not match the actual file licenses in the
  sources. My proposal: Remove in %prep, add a text document describing 
  the licensing situation.
- ps2pswLinks.gawk and plot.awk in /usr/bin are executable but have no
  shebang.
- There are tests available. Why are these not run?
- The pkg-config file is not shipped with the -devel package for no obvious reason.
- Likewise for seqan-config.cmake.

Thoughts?

Comment 7 Alec Leamas 2018-01-09 20:15:02 UTC
Oops... there is more:
- There is no BR against gcc, gcc-c++ or clang [1].
- Note that this being a library might need also a similar Requires: [1]


[1] https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B

Comment 8 Antonio T. (sagitter) 2018-01-10 11:01:19 UTC
(In reply to Alec Leamas from comment #6)
> Here comes the full list of issues I see after making a full review:
> 
> - seqan2 obsoletes seqan without providing seqan.

It's not needed. seqan2 and seqan must coexist for now.

> - seqan2-devel does not depend on seqan2 = %{version}-%{release}.

Why?

> - A binary zip file is present in the examples package.
> - Several bundled files/directories in util/py_lib/seqan/dox/tpl/lib and
>   include/seqan/stream. Please either remove these in %prep and/or bundle
>   properly using Provides: bundled(...)

I have already said why it's not needed. And why 'include/seqan/stream'?

> - The License field comment does not match the actual file licenses in the
>   sources. My proposal: Remove in %prep, add a text document describing 
>   the licensing situation.

https://bugzilla.redhat.com/show_bug.cgi?id=1531955#c4

> - There are tests available. Why are these not run?

Tests are performed in %check.

> - The pkg-config file is not shipped with the -devel package for no obvious
> reason.
> - Likewise for seqan-config.cmake.
> 

Why? Is it indispensable?

Comment 9 Alec Leamas 2018-01-10 13:08:20 UTC
(In reply to Antonio Trande from comment #8)

> > - seqan2 obsoletes seqan without providing seqan.
> 
> It's not needed. seqan2 and seqan must coexist for now.

Well, if they should coexist the Obsoletes: is obsolete(sic!). Perhaps you just should drop that?

> > - seqan2-devel does not depend on seqan2 = %{version}-%{release}.
> 
> Why?

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

> > - A binary zip file is present in the examples package.

No comment on this?

> > - Several bundled files/directories in util/py_lib/seqan/dox/tpl/lib and
> >   include/seqan/stream. Please either remove these in %prep and/or bundle
> >   properly using Provides: bundled(...)
> 
> I have already said why it's not needed. 

GL says something else: Bundled libraries must be treated as such:

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

Not bundled code must be removed in %prep:

https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries#Treatment_of_Bundled_Libraries

> And why 'include/seqan/stream'?

Some of those headers carry specific licenses and comes from other projects. I don't have the code at my current box, and the srpm link is broken (could you please fix?) so I don't have the details. That said, several headers are definitely bundled code.

> > - The License field comment does not match the actual file licenses in the
> >   sources. My proposal: Remove in %prep, add a text document describing 
> >   the licensing situation.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1531955#c4

This is not about the overall License: tag, it's about the comment. That said,  note that the GL strongly recommends using an AND type of licensing in cases like this

https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios

But either way, a clarification of what code has what license is needed, even if  you choose to go for a common license. 

I might wan't to refer to fedora-devel before using a common license, though. My gut feeling somewhat bad.

> > - There are tests available. Why are these not run?
> 
> Tests are performed in %check.

Indeed, my bad. Sorry for the noise.

> > - The pkg-config file is not shipped with the -devel package for no obvious
> > reason.
> > - Likewise for seqan-config.cmake.
> > 
> 
> Why? Is it indispensable?

That's certainly subjective. But using my version of common sense, if upstream makes efforts to create .pc and cmake macro files we need a compelling reason to *not* include them. After all, they save a lot of work for those who use the package.

Comment 10 Alec Leamas 2018-01-10 16:53:05 UTC
Some follow-up from another box:

The bundled headers are iostream_bgzf.h, iostream_bzip2.h, iostream_bzip2_impl.h,  iostream_zip.h and iostream_zip_impl.h. I assume this is bundled code from https://www.codeproject.com/Articles/4457/zipstream-bzip-stream-iostream-wrappers-for-the-zl

As for licensing,  yy bad gut feeling about a single license is actually perfectly right. Reading the reference I see this: "If your package contains files which are under multiple, distinct, and independent licenses, then the spec must reflect this by using "and" as a separator"

So, even if I understand your way of reasoning, a single license is not applicable here. You need to declare all licenses present in the code using AND. Removing unused stuff such as the SIL-licensed font in %prep could simplify this.

Also note the GL on break-down: "In addition, the package must contain a comment explaining the multiple licensing breakdown". Which is what I have been trying to explain.

Comment 11 Antonio T. (sagitter) 2018-01-11 17:43:26 UTC
(In reply to Alec Leamas from comment #10)
> Some follow-up from another box:
> 
> The bundled headers are iostream_bgzf.h, iostream_bzip2.h,
> iostream_bzip2_impl.h,  iostream_zip.h and iostream_zip_impl.h. I assume
> this is bundled code from
> https://www.codeproject.com/Articles/4457/zipstream-bzip-stream-iostream-
> wrappers-for-the-zl
> 
> As for licensing,  yy bad gut feeling about a single license is actually
> perfectly right. Reading the reference I see this: "If your package contains
> files which are under multiple, distinct, and independent licenses, then the
> spec must reflect this by using "and" as a separator"

It's right too; above all when you use different *incompatible* licenses.


Spec URL: https://sagitter.fedorapeople.org/seqan2.spec
SRPM URL: 
https://sagitter.fedorapeople.org/seqan2-2.4.0-0.1.20180103git8a875d.fc27.src.rpm

- Pre-released as seqan-2.4.0
- Add gcc-c++ BR
- Remove unnecessary R files
- Unbundle font-awesome
- Apps/libraries licensing commented

Comment 12 Alec Leamas 2018-01-12 10:05:27 UTC
Hi!

Things begin to take shape... with issues below fix I'm ready to approve


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

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


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 is not marked as %license
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text
- License: contains a typo (and and)
- According to GL referenced in comment #9, bundled code must be removed 
  in %prep. However, the awesome font files are removed in %install 
  instead.
- The iostream  header files mentioned in comment #10  are bundled, and
  thus needs a Provides(...).
- The devel package has no R: %{name}%{?_isa} = %{version}-%{release}
  (GL reference in comment #9)
- The scripts /usr/bin/plot.awk and /usr/bin/ps2pswLinks.gawk are
  executable but has no shebang. Looking at them, it seems that they are
  no scripts, should be 444 and thus live somewhere else (/usr/share?)


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[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.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Apache (v2.0)", "MIT/X11 (BSD like) GPL (v3 or later)", "SIL
     (v1.1)", "GPL (v3 or later)", "Unknown or generated", "*No copyright*
     LGPL (v3)", "MIT/X11 (BSD like)", "MIT/X11 (BSD like) BSD (3 clause)",
     "*No copyright* CC0 (v5)", "BSL (v1.0) BSD (3 clause)", "zlib/libpng",
     "BSD (unspecified)", "LGPL (v3 or later)", "GPL (v3)", "*No copyright*
     CC0", "*No copyright* BSD (unspecified)", "BSD (3 clause)", "BSD (2
     clause)", "MIT/X11 (BSD like) Apache (v2.0)", "*No copyright* BSD (3
     clause)", "LGPL (v3)". 3263 files have unknown license. Detailed
     output of licensecheck in
     /home/mk/tmp/FedoraReview/1531955-seqan2/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[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.
[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.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 61440 bytes in 4 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]: 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 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:
[x]: Avoid bundling fonts in non-fonts packages.
     Note: Package contains font files
[-]: 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).
[ ]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     seqan2-devel , seqan2-examples , seqan2-doc , seqan2-debuginfo
[?]: Package functions as described.
[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.
[-]: 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.
     See: https://copr.fedorainfracloud.org/coprs/leamas/seqan2/
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[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]: The placement of pkgconfig(.pc) files are correct.
[x]: Sources can be downloaded from URI in Source: tag
[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: There are rpmlint messages (see attachment).
[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: seqan2-2.4.0-0.1.20180103git8a875d.fc28.x86_64.rpm
          seqan2-devel-2.4.0-0.1.20180103git8a875d.fc28.x86_64.rpm
          seqan2-examples-2.4.0-0.1.20180103git8a875d.fc28.x86_64.rpm
          seqan2-doc-2.4.0-0.1.20180103git8a875d.fc28.noarch.rpm
          seqan2-debuginfo-2.4.0-0.1.20180103git8a875d.fc28.x86_64.rpm
          seqan2-2.4.0-0.1.20180103git8a875d.fc28.src.rpm
seqan2.x86_64: W: only-non-binary-in-usr-lib
seqan2.x86_64: E: script-without-shebang /usr/bin/plot.awk
seqan2.x86_64: E: script-without-shebang /usr/bin/ps2pswLinks.gawk
seqan2.x86_64: W: no-manual-page-for-binary alf
[ Several more no-manual-page removed]
seqan2-devel.x86_64: W: invalid-license and MIT
seqan2-devel.x86_64: W: only-non-binary-in-usr-lib
seqan2-examples.x86_64: W: no-documentation
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/css/css /usr/share/font-awesome/css
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/fonts/fonts /usr/share/font-awesome/fonts
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/less/less /usr/share/font-awesome/less
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/scss/scss /usr/share/font-awesome/scss
seqan2-debuginfo.x86_64: E: useless-provides debuginfo(build-id)
seqan2.src:62: W: unversioned-explicit-provides bundled(gnulib)
6 packages and 0 specfiles checked; 3 errors, 58 warnings.


Rpmlint (debuginfo)
-------------------
Checking: seqan2-debuginfo-2.4.0-0.1.20180103git8a875d.fc28.x86_64.rpm
seqan2-debuginfo.x86_64: E: useless-provides debuginfo(build-id)
1 packages and 0 specfiles checked; 1 errors, 0 warnings.



Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
seqan2.x86_64: W: invalid-url URL: http://www.seqan.de/ <urlopen error [Errno -2] Name or service not known>
seqan2.x86_64: W: only-non-binary-in-usr-lib
seqan2.x86_64: E: script-without-shebang /usr/bin/plot.awk
seqan2.x86_64: E: script-without-shebang /usr/bin/ps2pswLinks.gawk
seqan2.x86_64: W: no-manual-page-for-binary alf
[ no-manual-page warnings removed]
seqan2-devel.x86_64: W: invalid-license and MIT
seqan2-devel.x86_64: W: only-non-binary-in-usr-lib
seqan2-debuginfo.x86_64: W: invalid-url URL: http://www.seqan.de/ <urlopen error [Errno -2] Name or service not known>
seqan2-debuginfo.x86_64: E: useless-provides debuginfo(build-id)
seqan2-examples.x86_64: W: invalid-url URL: http://www.seqan.de/ <urlopen error [Errno -2] Name or service not known>
seqan2-examples.x86_64: W: no-documentation
seqan2-doc.noarch: W: invalid-url URL: http://www.seqan.de/ <urlopen error [Errno -2] Name or service not known>
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/css/css /usr/share/font-awesome/css
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/fonts/fonts /usr/share/font-awesome/fonts
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/less/less /usr/share/font-awesome/less
seqan2-doc.noarch: W: dangling-symlink /usr/share/doc/seqan2/html/lib/font-awesome/scss/scss /usr/share/font-awesome/scss
5 packages and 0 specfiles checked; 3 errors, 62 warnings.



Requires
--------
seqan2 (rpmlib, GLIBC filtered):
    /bin/bash
    gawk(x86-64)
    ld-linux-x86-64.so.2()(64bit)
    libbz2.so.1()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.4)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.2)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

seqan2-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    cmake-filesystem(x86-64)
    pkgconfig(zlib)

seqan2-debuginfo (rpmlib, GLIBC filtered):

seqan2-examples (rpmlib, GLIBC filtered):
    seqan2(x86-64)

seqan2-doc (rpmlib, GLIBC filtered):
    fontawesome-fonts-web



Provides
--------
seqan2:
    bundled(gnulib)
    seqan
    seqan2
    seqan2(x86-64)

seqan2-devel:
    cmake(seqan)
    pkgconfig(seqan-2)
    seqan2-devel
    seqan2-devel(x86-64)

seqan2-debuginfo:
    debuginfo(build-id)
    seqan2-debuginfo
    seqan2-debuginfo(x86-64)

seqan2-examples:
    seqan2-examples
    seqan2-examples(x86-64)

seqan2-doc:
    bundled(3l)
    bundled(bootstrap)
    bundled(less)
    seqan-doc
    seqan2-doc



Source checksums
----------------
https://github.com/seqan/seqan/archive/8a875d71478a464de5ac3bcf2707f46819285a1f.zip#/seqan-8a875d71478a464de5ac3bcf2707f46819285a1f.zip :
  CHECKSUM(SHA256) this package     : 54bf294953505ca9efa750d1cc27e1ad5dc33a7db20c3f75226c08b646a21d2e
  CHECKSUM(SHA256) upstream package : 54bf294953505ca9efa750d1cc27e1ad5dc33a7db20c3f75226c08b646a21d2e


Generated by fedora-review 0.6.1 (68aeafa) last change: 2017-09-14
Command line :./try-fedora-review -c -b 1531955
Buildroot used: fedora-rawhide-x86_64
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 13 Antonio T. (sagitter) 2018-01-12 11:44:17 UTC
(In reply to Alec Leamas from comment #12)
> Hi!
> 
> Things begin to take shape... with issues below fix I'm ready to approve
> 
> 
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> 
> 
> 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 is not marked as %license
>   See:
>   http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text

It is as GPLv3+, BSD and LGPLv3+

> - The devel package has no R: %{name}%{?_isa} = %{version}-%{release}
>   (GL reference in comment #9)

Devel sub-package does not need 'seqan'. They're independant. 

> - The scripts /usr/bin/plot.awk and /usr/bin/ps2pswLinks.gawk are
>   executable but has no shebang. Looking at them, it seems that they are
>   no scripts, should be 444 and thus live somewhere else (/usr/share?)
> 

Here i don't know how manage these files. Let me check.

Comment 14 Alec Leamas 2018-01-12 13:52:56 UTC
(In reply to Antonio Trande from comment #13)
> (In reply to Alec Leamas from comment #12)
> > Hi!

> > =======
> > - 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 is not marked as %license
> >   See:
> >   http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text
> 
> It is as GPLv3+, BSD and LGPLv3+

Yes, no doubt. But the GL doesn't really seem to care - they just require that these files should be included, full stop. You'll need include all of them. I agree this is a mess, but GL being what they are I see no alternative. Debian has a better system here, and IIRC there has been Fedora discussions on hardlinking these files. But I'm not aware of any conclusion.

> > - The devel package has no R: %{name}%{?_isa} = %{version}-%{release}
> >   (GL reference in comment #9)
> 
> Devel sub-package does not need 'seqan'. They're independant. 

OK, this is nothing like usual. Are you sure -devel is the proper name? That said, this is C++ and you can do a lot in headers. If you are sure you can do useful things with -devel without the base package, then you're certainly right. 

That said, it looks weird.
 
> > - The scripts /usr/bin/plot.awk and /usr/bin/ps2pswLinks.gawk are
> >   executable but has no shebang. Looking at them, it seems that they are
> >   no scripts, should be 444 and thus live somewhere else (/usr/share?)
> > 
> 
> Here i don't know how manage these files. Let me check.

I would just have made them 444 and moved them to /usr/share/seqan2 in %install, checking references and add a note to README.fedora

Comment 15 Antonio T. (sagitter) 2018-01-12 21:07:54 UTC
(In reply to Alec Leamas from comment #14)
> (In reply to Antonio Trande from comment #13)
> > (In reply to Alec Leamas from comment #12)
> > > Hi!
> 
> > > =======
> > > - 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 is not marked as %license
> > >   See:
> > >   http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text
> > 
> > It is as GPLv3+, BSD and LGPLv3+
> 
> Yes, no doubt. But the GL doesn't really seem to care - they just require
> that these files should be included, full stop. You'll need include all of
> them. I agree this is a mess, but GL being what they are I see no
> alternative. Debian has a better system here, and IIRC there has been Fedora
> discussions on hardlinking these files. But I'm not aware of any conclusion.

All LICENSE files are already included:

## Renamed each single license file 
cp -p apps/rep_sep/LICENSE LGPLv3+.txt
cp -p apps/rabema/LICENSE GPLv3+.txt
cp -p LICENSE BSD.txt

They're different licenses with same file name, here why i chose to rename them.  There is not problem in my opinion.

>  
> > > - The scripts /usr/bin/plot.awk and /usr/bin/ps2pswLinks.gawk are
> > >   executable but has no shebang. Looking at them, it seems that they are
> > >   no scripts, should be 444 and thus live somewhere else (/usr/share?)
> > > 
> > 
> > Here i don't know how manage these files. Let me check.
> 
> I would just have made them 444 and moved them to /usr/share/seqan2 in
> %install, checking references and add a note to README.fedora

'plot.awk' and 'ps2pswLinks.gawk' are used as input files by other seqan scripts; see 'roi_plot_9.sh' script.

To be used, 'roi_plot_9.sh' needs them inside /usr/bin.

Comment 16 Alec Leamas 2018-01-13 01:18:34 UTC
(In reply to Antonio Trande from comment #15)

> 
> All LICENSE files are already included:
> 
> ## Renamed each single license file 
> cp -p apps/rep_sep/LICENSE LGPLv3+.txt
> cp -p apps/rabema/LICENSE GPLv3+.txt
> cp -p LICENSE BSD.txt

Not really. I see:

$ cd BUILD
$ find . -name LICENSE\* | wc -l
39

So, here is at least 39 license files. Looking at size, many are unique:

ls -l $(find . -iname LICENSE\* ) | awk '{print $5}' | sort | uniq | wc -l
30


> They're different licenses with same file name, here why i chose to rename
> them.  There is not problem in my opinion.

GL at https://fedoraproject.org/wiki/Packaging:LicensingGuidelines says:

"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 must be included in %license."

I see no exceptions here. All of them should go into %license, >= 40 files. 
 
> 'plot.awk' and 'ps2pswLinks.gawk' are used as input files by other seqan
> scripts; see 'roi_plot_9.sh' script.
> 
> To be used, 'roi_plot_9.sh' needs them inside /usr/bin.

That still doesn't make them to binaries, for sure. They should be 444, and such files does not belong in /usr/bin. I think I'd move them to /usr/share/seqan2 and either patch the scripts using them or add a symlink to /usr/bin (a symlink  is OK).

Comment 17 Antonio T. (sagitter) 2018-01-13 10:44:57 UTC
(In reply to Alec Leamas from comment #16)
> (In reply to Antonio Trande from comment #15)
> 
> > 
> > All LICENSE files are already included:
> > 
> > ## Renamed each single license file 
> > cp -p apps/rep_sep/LICENSE LGPLv3+.txt
> > cp -p apps/rabema/LICENSE GPLv3+.txt
> > cp -p LICENSE BSD.txt
> 
> Not really. I see:
> 
> $ cd BUILD
> $ find . -name LICENSE\* | wc -l
> 39
> 
> So, here is at least 39 license files. Looking at size, many are unique:
> 
> ls -l $(find . -iname LICENSE\* ) | awk '{print $5}' | sort | uniq | wc -l
> 30
> 

find . -name LICENSE | xargs licensecheck 
./apps/pair_align/LICENSE: LGPL (v3 or later)
./apps/sam2matrix/LICENSE: BSD (3 clause)
./apps/splazers/LICENSE: LGPL (v3)
./apps/razers3/LICENSE: UNKNOWN
./apps/snp_store/LICENSE: *No copyright* LGPL (v3)
./apps/dfi/LICENSE: UNKNOWN
./apps/fiona/LICENSE: UNKNOWN
./apps/yara/LICENSE: BSD (3 clause)
./apps/stellar/LICENSE: LGPL (v3)
./apps/alf/LICENSE: BSD (3 clause)
./apps/sgip/LICENSE: LGPL (v3)
./apps/seqcons2/LICENSE: BSD (3 clause)
./apps/bs_tools/LICENSE: BSD (3 clause)
./apps/fx_tools/LICENSE: BSD (3 clause)
./apps/searchjoin/LICENSE: BSD (3 clause)
./apps/tree_recon/LICENSE: LGPL (v3 or later)
./apps/insegt/LICENSE: BSD (3 clause)
./apps/param_chooser/LICENSE: LGPL (v3)
./apps/mason2/LICENSE: BSD (3 clause)
./apps/micro_razers/LICENSE: LGPL (v3)
./apps/gustaf/LICENSE: BSD (3 clause)
./apps/razers/LICENSE: UNKNOWN
./apps/seqan_tcoffee/LICENSE: LGPL (v3 or later)
./apps/ngs_roi/tool_shed/LICENSE: BSD (3 clause)
./apps/ngs_roi/LICENSE: BSD (3 clause)
./apps/ngs_roi/R/ngsroi/LICENSE: BSD (3 clause)
./apps/samcat/LICENSE: UNKNOWN
./apps/sak/LICENSE: LGPL (v3 or later)
./demos/LICENSE: BSD (3 clause)
./include/seqan/LICENSE: BSD (3 clause)
./util/cmake/ctd/LICENSE: BSD (3 clause)
./util/py_lib/seqan/LICENSE: BSD (3 clause)
./util/skel/app_template/LICENSE: BSD (3 clause)


> 
> > They're different licenses with same file name, here why i chose to rename
> > them.  There is not problem in my opinion.
> 
> GL at https://fedoraproject.org/wiki/Packaging:LicensingGuidelines says:
> 
> "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 must
> be included in %license."
> 
> I see no exceptions here. All of them should go into %license, >= 40 files. 

I don't want copy >= 40 files identical.

Comment 18 Alec Leamas 2018-01-13 15:05:53 UTC
Again, I think I understand your reasoning. That said, my position is that you will need to copy all of them. There are a formal and a practical aspect of this.

Formally, the GL reguires you to include all license files, no exceptions.

Practically, as an example look at e. g., /apps/seqcons2/LICENSE  and /apps/bs_tools/LICENSE. These are both BSD (3-clause) and, as  I understand it, you deem them as the same. However:

$ diff apps/seqcons2/LICENSE apps/bs_tools/LICENSE

< //              Seqcons2 - Compute consensus from sequences.
---
> //                 SeqAn - The Library for Sequence Analysis
4c4
< // Copyright (c) 2011-2015, Manuel Holtgrewe, FU Berlin
---
> // Copyright (c) 2006-2016, Knut Reinert, FU Berlin
15c15
< //     * Neither the name of Manuel Holtgrewe or the FU Berlin nor the names of
---
> //     * Neither the name of Knut Reinert or the FU Berlin nor the names of
22c22
< // ARE DISCLAIMED. IN NO EVENT SHALL MANUEL HOLTGREWE OR THE FU BERLIN BE LIABLE
---
> // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
31,32d30
< // ==========================================================================
< // Author: Manuel Holtgrewe <manuel.holtgrewe>


They are *not* the same. Excluding any of these actually means excluding the copyright notice, the very point of the license file. Of course, we cannot do that. Also note that the very condition of BSD code is that you must always distribute the license together with the code. 

Sorry, but both from a formal and practical standpoint I cannot see any other solution than distributing all these files.

Comment 19 Antonio T. (sagitter) 2018-01-13 15:39:31 UTC
Spec URL: https://sagitter.fedorapeople.org/seqan2.spec
SRPM URL: 
https://sagitter.fedorapeople.org/seqan2-2.4.0-0.2.20180103git8a875d.fc27.src.rpm

- plot.awk/ps2pswLinks.gawk installed in a private share datadir
- plot.awk/ps2pswLinks.gawk symliked in '_bindir'
- Renamed each single license file

Comment 20 Alec Leamas 2018-01-13 16:00:40 UTC
Seems that almost everything from comment #12 is fixed. However:

- According to GL referenced in comment #9, bundled code must be removed 
  in %prep. However, the awesome font files are removed in %install 
  instead.
- One single license file apps/rabema/COPYING is missing a %license
  statement.

close, but no cigar...

Comment 21 Antonio T. (sagitter) 2018-01-13 17:14:13 UTC
Everything should be okay now (without packaging release bump).

Spec URL: https://sagitter.fedorapeople.org/seqan2.spec
SRPM URL: 
https://sagitter.fedorapeople.org/seqan2-2.4.0-0.2.20180103git8a875d.fc27.src.rpm

Comment 22 Alec Leamas 2018-01-13 19:16:40 UTC
All looks good. Thanks for your work!

Comment 23 Gwyn Ciesla 2018-01-14 19:38:42 UTC
(fedrepo-req-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/seqan2

Comment 24 Fedora Update System 2018-01-17 09:38:35 UTC
seqan2-2.4.0-0.3.20180103git8a875d.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-e1b5369a2c

Comment 25 Fedora Update System 2018-01-17 09:38:47 UTC
seqan2-2.4.0-0.3.20180103git8a875d.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2018-ad26aa004e

Comment 26 Fedora Update System 2018-01-17 18:53:24 UTC
seqan2-2.4.0-0.4.20180103git8a875d.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2018-d8c7f694e9

Comment 27 Fedora Update System 2018-01-17 18:53:33 UTC
seqan2-2.4.0-0.4.20180103git8a875d.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-136a004437

Comment 28 Fedora Update System 2018-01-18 01:18:00 UTC
seqan2-2.4.0-0.4.20180103git8a875d.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-d8c7f694e9

Comment 29 Fedora Update System 2018-01-18 02:11:52 UTC
seqan2-2.4.0-0.4.20180103git8a875d.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-136a004437

Comment 30 Fedora Update System 2018-01-26 17:56:00 UTC
seqan2-2.4.0-0.4.20180103git8a875d.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 31 Fedora Update System 2018-01-26 18:09:49 UTC
seqan2-2.4.0-0.4.20180103git8a875d.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.


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