Bug 1091770 - Review Request: ctlib - A fast generic C++ library for applied and computational topology
Summary: Review Request: ctlib - A fast generic C++ library for applied and computatio...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1091769 (view as bug list)
Depends On:
Blocks: FE-DEADREVIEW
TreeView+ depends on / blocked
 
Reported: 2014-04-28 00:48 UTC by Ryan H. Lewis (rhl)
Modified: 2020-08-10 00:48 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-08-10 00:48:53 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Ryan H. Lewis (rhl) 2014-04-28 00:48:12 UTC
Spec URL: http://rhl.fedorapeople.org/ctlib/ctlib.spec
SRPM URL: http://rhl.fedorapeople.org/ctlib/ctlib-0.1-4.fc20.src.rpm     
Description:  The Computational Topology Library is a  collection of fast generic algorithms written in C++ for various problems in computational topology.
Fedora Account System Username: rhl

Comment 1 Ryan H. Lewis (rhl) 2014-04-28 01:08:27 UTC
I should mention that I am the main upstream developer. This is the initial release of the library. The project website and public documentation is not yet available, but, it will be before this RPM will be pushed publically.

Successful Scratch Builds:
f21 scratch builds: http://koji.fedoraproject.org/koji/taskinfo?taskID=6787953
f20 scratch builds: http://koji.fedoraproject.org/koji/taskinfo?taskID=6787979

Presently we do not support building in f19 or below due to some changes in tbb. We have required versions of all build requirements greater than or equal to that of f20 since I have not verified if there are other build issues in f19 or below. 

and the output of rpmlint everywhere:
[makerpm@bond SRPMS]$ rpmlint -v ctlib-0.1-4.fc20.src.rpm 
ctlib.src: I: checking
ctlib.src: I: checking-url http://www.ctl.appliedtopology.org (timeout 10 seconds)
ctlib.src: I: checking-url http://ctl.appliedtopology.org/r/v0.1.tgz (timeout 10 seconds)
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

[makerpm@bond SPECS]$ rpmlint -v ctlib.spec 
ctlib.spec: I: checking-url http://ctl.appliedtopology.org/r/v0.1.tgz (timeout 10 seconds)
0 packages and 1 specfiles checked; 0 errors, 0 warnings.

Comment 2 Ryan H. Lewis (rhl) 2014-04-28 02:19:29 UTC
Woops. Forgot to put a GPL header on two of my files in the source. I've updated everything, but, I didn't bumpspec since I didn't change the spec at all. The underlying source has changed so the srpms in the scratch builds are different.

Updated: Successful Scratch Builds
f21: http://koji.fedoraproject.org/koji/taskinfo?taskID=6788115
f20: http://koji.fedoraproject.org/koji/taskinfo?taskID=6788129

And finally, for the aide of my lucky future Reviewer: 

$ fedora-review -b 1091770

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

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



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

C/C++:
[ ]: Package does not contain kernel modules.
[ ]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[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.
[ ]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "MIT/X11 (BSD like)", "GPL (v2 or later)". Detailed output of
     licensecheck in /home/rhl/code/ctl/1091770-ctlib/licensecheck.txt
[ ]: License file installed when any subpackage combination is installed.
[ ]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/doc/examples
[ ]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/doc/examples
[ ]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/include/ctl(libctl-devel)
[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.
[ ]: Sources contain only permissible code or content.
[ ]: Package contains desktop file if it is a GUI application.
[ ]: Development files must be in a -devel package
[ ]: Package uses nothing in %doc for runtime.
[ ]: Package consistently uses macros (instead of hard-coded directory names).
[ ]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[ ]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: Requires correct, justified where necessary.
[ ]: Spec file is legible and written in American English.
[ ]: Package contains systemd file(s) if in need.
[ ]: Useful -debuginfo package or justification otherwise.
[ ]: 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 225280 bytes in 41 files.
[ ]: 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: No rpmlint messages.
[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 %doc.
[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]: 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 do not use a name that already exist
[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.
[ ]: Final provides and requires are sane (see attachments).
[ ]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in ctlib-devel
     , ctlib-docs , ctlib-examples
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: 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]: Dist tag is present (not strictly required in GL).
[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 all installed packages.
     Note: No rpmlint messages.
[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: ctlib-0.1-4.fc20.x86_64.rpm
          ctlib-devel-0.1-4.fc20.x86_64.rpm
          ctlib-docs-0.1-4.fc20.x86_64.rpm
          ctlib-examples-0.1-4.fc20.x86_64.rpm
          ctlib-0.1-4.fc20.src.rpm
5 packages and 0 specfiles checked; 0 errors, 0 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint ctlib-devel ctlib-docs ctlib-examples ctlib
4 packages and 0 specfiles checked; 0 errors, 0 warnings.
# echo 'rpmlint-done:'



Requires
--------
ctlib-devel (rpmlib, GLIBC filtered):
    ctlib

ctlib-docs (rpmlib, GLIBC filtered):
    ctlib

ctlib-examples (rpmlib, GLIBC filtered):
    ctlib

ctlib (rpmlib, GLIBC filtered):
    libboost_program_options.so.1.54.0()(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)
    libm.so.6()(64bit)
    libmetis.so.0()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libtbb.so.2()(64bit)
    rtld(GNU_HASH)



Provides
--------
ctlib-devel:
    ctlib-devel
    ctlib-devel(x86-64)
    ctlib-static

ctlib-docs:
    ctlib-docs
    ctlib-docs(x86-64)

ctlib-examples:
    ctlib-examples
    ctlib-examples(x86-64)

ctlib:
    ctlib
    ctlib(x86-64)



Source checksums
----------------
http://ctl.appliedtopology.org/r/v0.1.tgz :
  CHECKSUM(SHA256) this package     : 7690dab330972e9fb88386a6fe7c11f8819e62a3c8e5afe812ccc5ec44e3313b
  CHECKSUM(SHA256) upstream package : 7690dab330972e9fb88386a6fe7c11f8819e62a3c8e5afe812ccc5ec44e3313b


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13

Comment 3 Ryan H. Lewis (rhl) 2014-04-28 02:35:23 UTC
I also forgot CFLAGS="%{optflags}" which I have now updating the spec to contain.
 
Spec URL: http://rhl.fedorapeople.org/ctlib/ctlib.spec
SRPM URL: http://rhl.fedorapeople.org/ctlib/ctlib-0.1-5.fc20.src.rpm  

f21 scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=6788150
f20 scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=6788154

Comment 4 Ryan H. Lewis (rhl) 2014-04-28 02:45:05 UTC
In making the last fix I accidently added a %{_isa} tag in a terrible place, due to a weird comment made in the fedora-review. This is a regression and should not exist. I deleted it and updated the spec and .src.rpm and rpms. I will not run more scratch builds because they take too long and I think you theoretical reviewers have gotten the point by now. 

Spec URL: http://rhl.fedorapeople.org/ctlib/ctlib.spec
SRPM URL: http://rhl.fedorapeople.org/ctlib/ctlib-0.1-6.fc20.src.rpm

Comment 5 Ryan H. Lewis (rhl) 2014-04-28 02:47:39 UTC
*** Bug 1091769 has been marked as a duplicate of this bug. ***

Comment 6 Ryan H. Lewis (rhl) 2014-04-28 02:50:48 UTC
Ok I gave in:

f20 scratch: http://koji.fedoraproject.org/koji/taskinfo?taskID=6788165
f21 scratch: http://koji.fedoraproject.org/koji/taskinfo?taskID=6788169

Comment 7 Michael Schwendt 2014-05-04 20:15:48 UTC
A brief look:


> Name: ctlib
> Group: Development/Libraries

The Group tag for library base package has been "System Environment/Libraries" for many years. Alternatively, drop it since it's optional nowadays.

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


> License: GPLv3+	

Any comment on fedora-review licensecheck.txt output?


> %description 

It's not a full sentence yet.


> %package devel
> Summary: Computational Topology Library Headers 
> Group: Development/Libraries
> Requires: %{name} = %{version}-%{release}

Probably the spec file has not been updated yet, because the base package dependency is not arch-specific yet.


> %package docs
> Summary: Computational Topology Documentation package
> Group: Development/Libraries

If at all, it's "Group: Documentation".

Plus, the guidelines suggest -doc not -docs as the subpackage name:
https://fedoraproject.org/wiki/Packaging:Guidelines#Documentation

Currently this subpackage is only 6K small. How much documentation will there be?

> Requires: %{name} = %{version}-%{release}

Please re-review this dependency. If the documentation can be displayed with any doc file browser (e.g. PDF, HTML, TXT), a dependency on the base package is not needed and only makes it more difficult to install this without having to install dependencies.

> %description docs
> Documentation in HTML format for CTL.




> %package examples
> Summary: Source examples for CTL
> Requires: %{name} = %{version}-%{release}

Questionable dep here. Compiling the examples would need the ctlib-devel package currently.

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


> make %{?_smp_mflags} CFLAGS="%{optflags}"

The build output is non-verbose, however. In the build.log one cannot verify what preprocessor and compiler options are used during build.


> %files  
> %doc %{_mandir}/man1/*

Files in %_mandir are marked as %doc implicitly. See "rpm -E %__docdir_path".

This package does not include the license file.

Notice:
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#License_Text
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing


> %files devel
> %{_includedir}/*
> %doc %{_docdir}/LICENSE

Same as above for %_docdir. The license could be moved to the base package.


> %files examples
> %doc %{_docdir}/examples/*

Same as above for %_docdir.

Directory /usr/share/doc/examples is not included yet.

https://fedoraproject.org/wiki/Packaging:Guidelines#File_and_Directory_Ownership
https://fedoraproject.org/wiki/Packaging:UnownedDirectories

Comment 8 Ryan H. Lewis (rhl) 2014-05-09 22:55:36 UTC
Alright i'll address this.

Quick comments,

The documentation is not around yet. I'm still writing it, and I plan to use Sphinx (which will make it much larger). I just wanted to put the subpackage there so I don't need to re-review later. Similar for examples.

I'll post what license check said, but, since I wrote this software, and I am releasing it, I wrote in every single header GPLv2 (or at your discretion, a later version). So GPLv3+ seems perfectly reasonable. If you'd like I can make it GPLv2+ 

I'll take care of the rest soon.

Thanks for adding your comments.

Comment 9 Ryan H. Lewis (rhl) 2014-05-09 22:56:51 UTC
Probably the spec file has not been updated yet, because the base package dependency is not arch-specific yet.


I'm not sure what you mean here. What are you looking for this to say?

Comment 10 Michael Schwendt 2014-05-11 23:25:47 UTC
> I just wanted to put the subpackage there so I don't need to
> re-review later. Similar for examples.

Adding sub-packages doesn't need a re-review. You could push a simpler package through review and add sub-packages once it's in Fedora dist git.


> I'm not sure what you mean here. What are you looking for this to say?

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


> I wrote in every single header GPLv2 (or at your discretion, a later version).
> So GPLv3+ seems perfectly reasonable. If you'd like I can make it GPLv2+

If the source file headers say GPLv2+ and the COPYING file says GPLv3, that's ambiguous - and GPLv3+ licensing doesn't permit the same things (such as copying from GPLv2+ sources into a GPLv2 project).

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

Comment 11 Ryan H. Lewis (rhl) 2014-05-12 20:09:18 UTC
Alright, I'll fix this all this week then.

Thanks.

Comment 12 Package Review 2020-07-10 00:49:24 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time. We're sorry
it is taking so long. If you're still interested in packaging this software
into Fedora repositories, please respond to this comment clearing the
NEEDINFO flag.

You may want to update the specfile and the src.rpm to the latest version
available and to propose a review swap on Fedora devel mailing list to increase
chances to have your package reviewed. If this is your first package and you
need a sponsor, you may want to post some informal reviews. Read more at
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group.

Without any reply, this request will shortly be considered abandoned
and will be closed.
Thank you for your patience.

Comment 13 Package Review 2020-08-10 00:48:53 UTC
This is an automatic action taken by review-stats script.

The ticket submitter failed to clear the NEEDINFO flag in a month.
As per https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews
we consider this ticket as DEADREVIEW and proceed to close it.


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