Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1540335 - Review Request: primesieve - Fast C/C++ prime number generator
Summary: Review Request: primesieve - Fast C/C++ prime number generator
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Petr Menšík
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-01-30 19:36 UTC by Kim Walisch
Modified: 2019-05-06 00:45 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-05-04 01:17:21 UTC
Type: ---
Embargoed:
pemensik: fedora-review+


Attachments (Terms of Use)

Description Kim Walisch 2018-01-30 19:36:03 UTC
Spec URL: https://github.com/kimwalisch/primesieve-rpm/blob/master/primesieve.spec
SRPM URL: https://github.com/kimwalisch/primesieve-rpm/raw/master/primesieve-6.4-1.fc27.src.rpm

Description: primesieve is a command-line program and C/C++ library for generating prime numbers and prime k-tuplets (twin primes, prime triplets, ...). The primesieve program is mainly used by students interested in primes and by Overclockers for stress testing their CPU (e.g. primesieve has been integrated into the phoronix test suite).

The C/C++ primesieve library is mostly used by students and research scientists for speeding up their C/C++ math programs. primesieve has already been packaged for Debian/Ubuntu, macOS (Homebrew) and Windows (Chocolatey). Now I am trying to also get it packaged for Fedora...

primesieve also has a homepage: http://primesieve.org

Fedora Account System Username: walki

This is my first package and I need a sponsor. Hers's the link to successful koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=24575881

Comment 1 Artur Frenszek-Iwicki 2018-01-31 13:24:12 UTC
>Group: Development/Libraries
The "Group:" tag is not used in Fedora.

>%clean
%clean should not be used in Fedora.
https://fedoraproject.org/wiki/Packaging:Guidelines#Tags_and_Sections

>pushd [...]
>popd
rpmbuild resets the working directory at the start of %build, %check and %install, so these are not needed.

Comment 2 Kim Walisch 2018-01-31 18:11:07 UTC
Thanks for your feedback. I have fixed the issues you pointed out and pushed a new version of the spec and SRPM to GitHub:

Spec URL: https://github.com/kimwalisch/primesieve-rpm/blob/master/primesieve.spec
SRPM URL: https://github.com/kimwalisch/primesieve-rpm/raw/master/primesieve-6.4-1.fc27.src.rpm

Hers's the link to the successful koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=24601545

Comment 3 Kim Walisch 2018-01-31 18:23:54 UTC
Reading through the documentation:

> Use a Release: tag starting with 1 (never 0). Append the Dist tag. Increment the release (by 1) for each update you make. Reset to 1 whenever you change Version:.

OK, I missed this. But I have now increased the release to 2%{?dist}.

Comment 4 Michael Schwendt 2018-02-06 19:14:04 UTC
> %check
> make test
> 
> %install

During rpmbuild, %check gets executed _after_ %install, so putting %check below %install in the spec file is common practice. Sometimes tests are run on buildroot contents, btw, which explains the order of those sections.


> %package static
> Requires: %{name}-devel = %{version}-%{release}

Make it arch-specific as explained in the base package guidelines:
https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package


> %{_includedir}/primesieve/PrimeSieve.hpp

If you list individual files like that (which may be beneficial because the build would abort for added/removed files), you need to specify also directories:

  %dir %{_includedir}/primesieve

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

Comment 5 Kim Walisch 2018-02-06 20:41:09 UTC
Hi Micheal,

Thanks for your feedback. I have fixed the issues you pointed out and pushed a new version of the spec and SRPM to GitHub:

Spec URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/master/primesieve.spec
SRPM URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/master/primesieve-6.4-3.fc27.src.rpm

Note that I have also fixed the following issues pointed out by Jerry James:

> %post -p /sbin/ldconfig
> %postun -p /sbin/ldconfig

> should be replaced with this:
> %ldconfig_scriptlets

1) Done, use ldconfig_scriptlets.

> Also, the spec file at the URL given in the review bug has release
> number 2, but the one inside the SRPM has release number 1. 
> Make sure those match.

2) Done, spec release number now matches SRPM release number.

> ...it is a good idea for the binary and the library to
be in separate packages.

3) I have now put the binary in the primesieve package, the shared libprimesieve and the header files are in the libprimesieve-devel package and the static libprimesieve is in the libprimesieve-static package. The naming of the packages is similar to Debian/Ubuntu where the binary is in primesieve and the libraries and header in libprimesieve-dev.

Comment 6 Michael Schwendt 2018-02-12 13:49:01 UTC
> 1)

That is a recent change indeed.
https://fedoraproject.org/wiki/Packaging:Scriptlets#Shared_Libraries


> 3)

If the package naming bugs you that much, you could go a step further and build the following packages:

  primesieve : for the executable
  libprimesieve : for the shared runtime lib
  libprimesieve-devel : for the shared buildtime lib
  libprimesieve-static : for the static lib

That would be even closer to Debian, where they use a versioned libprimesieve8 package. Of course, if no other program links with libprimesieve [yet], you may also drop the primesieve package and include it in the libprimesieve package. Adding "Provides: primesieve" would extend the namespace with regard to user searches.

Comment 7 Kim Walisch 2018-02-16 18:17:49 UTC
Hi Micheal,

I have released a new version of the primesieve spec file and corresponding SRPM package: 

Spec URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/master/primesieve.spec
SRPM URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/master/primesieve-6.4-4.fc27.src.rpm

> primesieve : for the executable
> libprimesieve : for the shared runtime lib
> libprimesieve-devel : for the shared buildtime lib
> libprimesieve-static : for the static lib

I like your idea of adding a libprimesieve package so I have implemented that. Previously, if the user would have installed the libprimesieve-devel package this would also install the primesieve package with the binary. This issue is fixed now.

> you may also drop the primesieve package and include it in the libprimesieve package.

I don't like this idea because most users will be interested in the primesieve binary and I want users to be able to install the binary with 'dnf install primesieve'.

I have also improved the summaries and descriptions of the different packages.

Hers's the link to the successful koji build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=25096373

Comment 8 Kim Walisch 2018-03-24 19:17:49 UTC
I have released primesieve-6.4 on GitHub yesterday. Today I have updated the primesieve spec file and corresponding SRPM package to version 6.4:

Spec URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/v6.4-5/primesieve.spec
SRPM URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/v6.4-5/primesieve-6.4-5.fc27.src.rpm

Hers's the link to the successful koji build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=25943211

I am still looking for a sponsor for the primesieve package. The development of primesieve was started 8 years ago and it is now very mature i.e. primesieve builds and runs successfully on every single CPU architecture supported by both Fedora and Debian.

Comment 9 Jani Juhani Sinervo 2018-07-08 08:50:32 UTC
(In reply to Kim Walisch from comment #8)

> I am still looking for a sponsor for the primesieve package. The development
> of primesieve was started 8 years ago and it is now very mature i.e.
> primesieve builds and runs successfully on every single CPU architecture
> supported by both Fedora and Debian.

Well, I cannot help you with the sponsoring thing, but here's a preliminary (unofficial) package review

I'd probably move the API documentations into their own packages, but that's just me.

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

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

Issues:
=======
- ldconfig called in %post and %postun if required.
  Note: /sbin/ldconfig not called in libprimesieve
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Shared_Libraries

===== 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.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

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: "BSD (unspecified)", "BSD (2 clause)", "GPL (v3 or later)",
     "Unknown or generated". 107 files have unknown license. Detailed
     output of licensecheck in
     /home/jani/review_stuff/1540335-primesieve/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[!]: 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.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 942080 bytes in 179 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: 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]: 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]: Static libraries in -static or -devel subpackage, providing -devel if
     present.
     Note: Package has .a files: libprimesieve-static.
[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
     libprimesieve , libprimesieve-static , primesieve-debuginfo ,
     primesieve-debugsource
[?]: Package functions as described.
[!]: Latest version is packaged.
[x]: 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.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[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]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1054720 bytes in /usr/share
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: primesieve-6.4-5.fc28.x86_64.rpm
          libprimesieve-6.4-5.fc28.x86_64.rpm
          libprimesieve-devel-6.4-5.fc28.x86_64.rpm
          libprimesieve-static-6.4-5.fc28.x86_64.rpm
          primesieve-debuginfo-6.4-5.fc28.x86_64.rpm
          primesieve-debugsource-6.4-5.fc28.x86_64.rpm
          primesieve-6.4-5.fc28.src.rpm
primesieve.x86_64: W: spelling-error %description -l en_US tuplets -> sextuplets, sextuplet, couplets
primesieve.x86_64: W: tag-in-description C Requires:
libprimesieve.x86_64: W: spelling-error %description -l en_US primesieve -> prime sieve, prime-sieve, impressive
libprimesieve.x86_64: W: no-documentation
libprimesieve-static.x86_64: W: spelling-error Summary(en_US) primesieve -> prime sieve, prime-sieve, impressive
libprimesieve-static.x86_64: W: spelling-error %description -l en_US primesieve -> prime sieve, prime-sieve, impressive
libprimesieve-static.x86_64: W: no-documentation
primesieve.src: W: spelling-error %description -l en_US tuplets -> sextuplets, sextuplet, couplets
primesieve.src: W: tag-in-description C Requires:
primesieve.src: E: specfile-error warning: bogus date in %changelog: Thu Feb 16 2018 Kim Walisch <walki> - 6.4-4
7 packages and 0 specfiles checked; 1 errors, 9 warnings.

Comment 10 Kim Walisch 2018-07-08 17:52:27 UTC
Thanks for your review.

> Issues:
> - ldconfig called in %post and %postun if required.
> Note: /sbin/ldconfig not called in libprimesieve

I actually had that in an earlier version of primesieve.spec (see https://github.com/kimwalisch/primesieve-rpm/commit/4604d88f2367181280ac6cc9acaff9b63eabfede#diff-d4de19401a23eecc5feccba05f2a05d9L48). But following the suggestion of Jerry James (%post -p /sbin/ldconfig & %postun -p /sbin/ldconfig should be replaced with this: %ldconfig_scriptlets) I replaced that code by %ldconfig_scriptlets. So can we drop your ldconfig issue?

I have fixed the following Rpmlint error:

> primesieve.src: E: specfile-error warning: bogus date in %changelog: Thu Feb 16 2018 Kim Walisch <walki> - 6.4-4

The Rpmlint spelling-error warnings are false positives.


I have updated the primesieve package to the latest primesieve-7.0 version:

Spec URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/v7.0-1/primesieve.spec
SRPM URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/v7.0-1/primesieve-7.0-1.fc27.src.rpm

Hers's the link to the successful koji build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=28083380

Comment 11 Jani Juhani Sinervo 2018-07-08 18:26:20 UTC
(In reply to Kim Walisch from comment #10)
> Thanks for your review.

> The Rpmlint spelling-error warnings are false positives.

Oh, good to know for future reference! I was actually thinking if that would actually affect the review outcome significantly in an actual review. I included it as a "problem" in that preliminary review just in case.

--

But yeah, with the fix to the ldconfig problem sorted, and updating to the new version, I'd see no problems with this being included. But I'll leave the decision for someone less amateurish than I. But while we wait for an official review, here's an updated preliminary review for this new version.


This is a review *template*. Besides handling the [ ]-marked tests you are
also supposed to fix the template before pasting into bugzilla:
- Add issues you find to the list of issues on top. If there isn't such
  a list, create one.
- Add your own remarks to the template checks.
- Add new lines marked [!] or [?] when you discover new things not
  listed by fedora-review.
- Change or remove any text in the template which is plain wrong. In this
  case you could also file a bug against fedora-review
- Remove the "[ ] Manual check required", you will not have any such lines
  in what you paste.
- Remove attachments which you deem not really useful (the rpmlint
  ones are mandatory, though)
- Remove this text



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]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

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: "BSD (unspecified)", "BSD (2 clause)", "GPL (v3 or later)",
     "Unknown or generated". 114 files have unknown license. Detailed
     output of licensecheck in
     /home/jani/review_stuff/1540335-primesieve/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: 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.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 962560 bytes in 179 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]: 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]: Static libraries in -static or -devel subpackage, providing -devel if
     present.
     Note: Package has .a files: libprimesieve-static.
[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
     libprimesieve , libprimesieve-static , primesieve-debuginfo ,
     primesieve-debugsource
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: 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.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[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]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1064960 bytes in /usr/share
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: primesieve-7.0-1.fc28.x86_64.rpm
          libprimesieve-7.0-1.fc28.x86_64.rpm
          libprimesieve-devel-7.0-1.fc28.x86_64.rpm
          libprimesieve-static-7.0-1.fc28.x86_64.rpm
          primesieve-debuginfo-7.0-1.fc28.x86_64.rpm
          primesieve-debugsource-7.0-1.fc28.x86_64.rpm
          primesieve-7.0-1.fc28.src.rpm
primesieve.x86_64: W: spelling-error %description -l en_US tuplets -> sextuplets, sextuplet, couplets
primesieve.x86_64: W: tag-in-description C Requires:
libprimesieve.x86_64: W: spelling-error %description -l en_US primesieve -> prime sieve, prime-sieve, impressive
libprimesieve.x86_64: W: no-documentation
libprimesieve-static.x86_64: W: spelling-error Summary(en_US) primesieve -> prime sieve, prime-sieve, impressive
libprimesieve-static.x86_64: W: spelling-error %description -l en_US primesieve -> prime sieve, prime-sieve, impressive
libprimesieve-static.x86_64: W: no-documentation
primesieve.src: W: spelling-error %description -l en_US tuplets -> sextuplets, sextuplet, couplets
primesieve.src: W: tag-in-description C Requires:
7 packages and 0 specfiles checked; 0 errors, 9 warnings.

Comment 12 Petr Menšík 2019-04-07 20:45:52 UTC
1) Primary package primesieve does not depend on library. Requires is currently part of %description, where it does not have effect. Move it before description please.

2) In Fedora, lib<library> is not common for libraries. Instead, <pkg>-libs is usually used. If there is no strong objection, I would suggest using just %package libs, %files libs.
If you want to keep compatibility with Debian naming, use Provides: libprimesieve%{?_isa} = libprimesieve-%{version}. It would still be accepted in yum install libprimesieve or other package dependencies. Some tool write warnings because it lacks common prefix, fedora-review tool is one of them. Note -n parameter is not required in this case
Similar issue is with %package devel, %files devel.

3) Unless there is expected usage of static libraries, that offers significant speed advantage, I would omit static subpackage. It requires explicit exception and I doubt it is required. Use rm to remove *.la in %build or %install phase. [1]

4) %ldconfig_scriptlets libs should be used, only for library package it should be used. In current setup, %ldconfig_scriptlets -n libprimesieve would have to be used instead.

5) New version should be used now, since more recent release is available. I know, it was up to date when started. Sorry :)

Other than these few issues, package is ready to be packaged in Fedora. Good job for first package!

1. https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries

Comment 13 Petr Menšík 2019-04-07 20:52:40 UTC
(In reply to Jani Juhani Sinervo from comment #11)
> (In reply to Kim Walisch from comment #10)
> > Thanks for your review.
> 
> > The Rpmlint spelling-error warnings are false positives.
> 
> Oh, good to know for future reference! I was actually thinking if that would
> actually affect the review outcome significantly in an actual review. I
> included it as a "problem" in that preliminary review just in case.
> 
> --
> 
> But yeah, with the fix to the ldconfig problem sorted, and updating to the
> new version, I'd see no problems with this being included. But I'll leave
> the decision for someone less amateurish than I. But while we wait for an
> official review, here's an updated preliminary review for this new version.
> 

I think your review was a good one, there is no need for package to be perfect. It met basic requirements, you did review it well. Please, do not be afraid giving it approval next time. It would not provide sponsor, but mark is as acceptable. We can always submit bugs to fix not important issues.

Comment 14 Petr Menšík 2019-04-07 21:26:33 UTC
Ok, made mistake with offered Provides in 2):

Correct version would be:
Provides: lib%{name}%{?_isa} = %{version}-%{release}

Just a question, it has also working GUI with a different license (GPLv3). Is there some reason why gui variant is not packaged? Subpackage with gui variant would not hurt I think, would you need help with that? License tag is correct for command line version, gui subpackage would require License: BSD and GPLv3+

I checked it is not packaged also on Debian [2]. Compiled just fine to me, some Qt dependencies would be required, should not be difficult. Not mandatory for review, would be nice to have it.

2. https://packages.debian.org/source/sid/primesieve

Comment 15 Kim Walisch 2019-04-08 07:04:33 UTC
> Other than these few issues, package is ready to be packaged in Fedora. Good job for first package!

Thanks! I will fix the issues you have pointed out.

> 3) Unless there is expected usage of static libraries, that offers significant speed advantage, I would omit static subpackage. It requires explicit exception and I doubt it is required. Use rm to remove *.la in %build or %install phase. [1]

If I build using 'cmake . -DBUILD_STATIC_LIBS=OFF' do I still need to do "Use rm to remove *.la in %build or %install phase"?

> Just a question, it has also working GUI with a different license (GPLv3). Is there some reason why gui variant is not packaged?

The reason why the GUI version is e.g. not packaged in Debian and Homebrew is because it depends on Qt4 and does not work properly using Qt5. Qt4 allows signal recursion (see https://github.com/kimwalisch/primesieve/blob/master/src/gui/src/PrimeSieveGUI.cpp#L301) which primesieve depends upon while Qt5 does not. Using Qt5 the primesieve GUI application often crashes after running it for just a few seconds. I have already tried to find a workaround for this issue in the past but I have not succeeded. That's why primesieve is stuck with Qt4. If we would include the primesieve GUI application into the Fedora package this would cause issues once Qt4 will be deprecated.

Comment 16 Kim Walisch 2019-04-08 08:22:24 UTC
> The primesieve GUI application does not work properly using Qt5.

Actually I have now retested this on Ubuntu 18.04 with GNOME and it works fine. So the Qt5 issue I mentioned before only affects Windows as I have implemented a workaround that works fine on Linux (but not on Windows). The primesieve GUI application also does also not work properly using the Ubuntu's Unity desktop (that has recently been deprecated).

Personally I would prefer not to include the primesieve GUI application because ensuring it works fine on all the different desktop spins is a bit of a nightmare...

Comment 17 Petr Menšík 2019-04-08 09:52:12 UTC
(In reply to Kim Walisch from comment #15)
> > Other than these few issues, package is ready to be packaged in Fedora. Good job for first package!
> 
> Thanks! I will fix the issues you have pointed out.
> 
> > 3) Unless there is expected usage of static libraries, that offers significant speed advantage, I would omit static subpackage. It requires explicit exception and I doubt it is required. Use rm to remove *.la in %build or %install phase. [1]
> 
> If I build using 'cmake . -DBUILD_STATIC_LIBS=OFF' do I still need to do
> "Use rm to remove *.la in %build or %install phase"?

Anything that prevents installation (or build) of static libraries is okay. Your solution is clearer, happy with that. rm is suggested only because it always work, even without support in build system.

Comment 18 Petr Menšík 2019-04-08 13:35:10 UTC
(In reply to Kim Walisch from comment #16)
> > The primesieve GUI application does not work properly using Qt5.
> 
> Actually I have now retested this on Ubuntu 18.04 with GNOME and it works
> fine. So the Qt5 issue I mentioned before only affects Windows as I have
> implemented a workaround that works fine on Linux (but not on Windows). The
> primesieve GUI application also does also not work properly using the
> Ubuntu's Unity desktop (that has recently been deprecated).
> 
> Personally I would prefer not to include the primesieve GUI application
> because ensuring it works fine on all the different desktop spins is a bit
> of a nightmare...

Ok. It seems to me you use some unportable behaviour that makes you application unstable. I think printProcessOutput() should emit signals with new values and should not even try to call processEvents or manually redraw. Instead, it should run in worker thread and timer should periodically redraw new results, until job is finished. processEvents should be only the main one for your applications, other should use signal-slot connections processed from main loop. No main thread blocking should occur. Stackoverflow might help [1]

Anyway, no problem with not packaging it if you think it is not ready. Worked to me yesteray without any crash.

1. https://stackoverflow.com/questions/14545961/modify-qt-gui-from-background-worker-thread

Comment 19 Kim Walisch 2019-04-08 17:11:36 UTC
I have updated primesieve's spec file and built a new SRPM:

Spec URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/v7.4-1/primesieve.spec
SRPM URL: https://raw.githubusercontent.com/kimwalisch/primesieve-rpm/v7.4-1/primesieve-7.4-1.fc29.src.rpm

Hers's the link to the successful koji build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=34055406

Comment 20 Petr Menšík 2019-04-09 07:09:49 UTC
Ok, still not follows usual convention of addon packages [1], but that is just should.

1. https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_addon_packages

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

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


Issues:
=======
- Header files in -devel subpackage, if present.
  Note: primesieve-debugsource :
  /usr/src/debug/primesieve-7.4-1.fc29.x86_64/include/primesieve.h
  primesieve-debugsource :
  /usr/src/debug/primesieve-7.4-1.fc29.x86_64/include/primesieve/iterator.h
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages
- All build dependencies are listed in BuildRequires, except for any that
  are listed in the exceptions section of Packaging Guidelines.
  Note: These BR are not needed: gcc-c++
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2
- ldconfig called in %post and %postun if required.
  Note: /sbin/ldconfig not called in libprimesieve
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Shared_Libraries


===== 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.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

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: "BSD (unspecified)", "BSD 2-clause "Simplified" License", "GPL
     (v3 or later)", "Unknown or generated". 118 files have unknown
     license. Detailed output of licensecheck in
     /home/reviewer/reviews/1540335-primesieve/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
     Note: Dirs in package are owned also by: /usr/lib/.build-id(libmad,
     cups-client, efivar-libs, qemu-block-gluster, rpm-plugin-selinux,
     abrt, libmediaart, libimagequant, giflib, libreoffice-graphicfilter,
     trousers, qemu-ui-gtk, libdb-utils, tracker-miners, xorg-x11-font-
     utils, PackageKit-command-not-found, OpenEXR-libs, python2-setools,
     libcom_err, libseccomp, p11-kit, libabw, gtkspell, libvirt-daemon-
     driver-storage-iscsi, libid3tag, libmodman, argyllcms, parted, gnome-
     disk-utility, libdvdread, zstd, bluez-libs, kf5-kjobwidgets, libwebp,
     libxslt, system-config-printer-udev, perl-Encode, libverto-libev,
     python2-cryptography, kf5-kdeclarative, libevdev, libgpg-error,
     libmaxminddb, lvm2-libs, kf5-sonnet-core, libpurple, perl-Digest-SHA,
     python3-unbound, kf5-solid, libzstd, libdazzle, xdg-desktop-portal-
     gtk, lua-lpeg, symlinks, python3-crypto, libcdr, b43-fwcutter,
     e2fsprogs-libs, pulseaudio-libs, tpm2-tools, lcms2, qemu-guest-agent,
     annobin, deltarpm, libxcb, libyubikey, python3-pycurl, python3-brlapi,
     openconnect, xcb-util-keysyms, m4, sushi, libgphoto2, cdparanoia, xcb-
     util, gvfs-fuse, boost-fiber, mc, udisks2-iscsi, python3-coverage,
     anaconda-widgets, http-parser, qt5-qtspeech, pulseaudio-utils,
     python3-wrapt, rubygem-hpricot, perl-PerlIO-utf8_strict,
     openjpeg2-tools, compat-wxGTK3-gtk2, systemd-bootchart, kf5-kpackage,
     perl-JSON-XS, kf5-kfilemetadata, texlive-pdftex, perl-Time-Piece,
     dbusmenu-qt, ncurses-libs, libidn2, ldns, libreport-plugin-logger,
     gnome-color-manager, fcoe-utils, xorg-x11-xkb-utils, ibus-hangul,
     NetworkManager-openvpn, libxkbfile, hplip-libs, libwvstreams, freerdp-
     libs, xmlrpc-c-client, sane-backends-drivers-cameras, python3-hawkey,
     libwpd, enchant2, libdc1394, libvirt-daemon-driver-qemu, perl-Time-
     HiRes, qemu-block-ssh, libwps, gssdp, kf5-knotifications, libacl,
     xorg-x11-drv-ati, libSM, policycoreutils, mcelog, abrt-plugin-bodhi,
     libmusicbrainz5, perl-Digest-SHA3, perl-Digest-SHA1, sane-backends-
     drivers-scanners, libXxf86misc, foomatic, texlive-dvips, mediawriter,
     colord-gtk, libpath_utils, libicu-devel, rpm-build, wodim, libvirt-
     daemon-driver-storage-sheepdog, libglvnd-gles, python3-audit, rpm-
     plugin-systemd-inhibit, libmicrodns, freeglut, gstreamer1, bsdtar,
     gom, unbound, ykpers, libtomcrypt, dbus-libs, libreoffice-gtk3,
     libreoffice-gtk2, boost-wave, cairo-gobject, vim-minimal, gnome-
     screenshot, fping, libkkc, gutenprint, openal-soft, usermode, qpdf-
     libs, linux-atm-libs, libedit, openssh, openssl, python3-cairo,
     python2-libdnf, accountsservice, isl, hfsplus-tools, ImageMagick,
     gssproxy, mesa-libGLU, libblockdev-btrfs, libatomic_ops, gupnp-av,
     clang6.0-libs, librepo, gtk-update-icon-cache, kf5-kxmlgui, python3
     -iscsi-initiator-utils, tpm2-abrmd, libvirt-daemon-driver-interface,
     NetworkManager, libkate, liblangtag, libdatrie, glade-libs, setuptool,
     libcryptui, guile, tree, gvfs-goa, pipewire, glusterfs-libs, gnupg,
     cronie-anacron, xfsprogs, authselect, boost-timer, libcroco, texlive-
     bibtex, qt5-qtsensors, telepathy-glib, plymouth-plugin-label,
     libisoburn, colord-libs, aalib-libs, gstreamer1-libav, libcddb,
     efivar, gpgmepp, libgcab1, libzhuyin, gvnc, hypervfcopyd, cronie,
     libexttextcat, qt5-qtquickcontrols, nettle, libcacard, elfutils,
     colord, libpipeline, pkcs11-helper, accountsservice-libs, network-
     scripts, gnome-system-monitor, findutils, popt, python2-xpyb,
     qt5-qtx11extras, libsss_idmap, libraw1394, boost-atomic, folks,
     lm_sensors, gcc-c++, python3-dbus, iproute-tc, libipa_hbac, libupnp,
     spice-glib, woff2, python2-numpy, dotconf, luajit, libXfont,
     PackageKit-glib, patch, sqlite-libs, lttng-ust, enchant, kf5-plasma,
     libXxf86dga, rhash, xdg-user-dirs-gtk, libwayland-client, kf5-kio-
     file-widgets, pinentry-gnome3, libsmbios, pwgen, libipt, mdadm,
     openblas-threads, device-mapper, python2-librepo, timidity++, xapian-
     core-libs, kf5-kbookmarks, gnome-terminal, GeoIP, libsigc++20,
     libXrandr, newt, liba52, hplip, crda, libical, sheepdog,
     qt5-qtdeclarative, vo-amrwbenc, qt5-qtquickcontrols2, libXfont2,
     libblockdev-loop, libmfx, libssh2, NetworkManager-adsl, open-vm-tools-
     desktop, xmlsec1-nss, dbusmenu-qt5, libXcursor, nftables, iio-sensor-
     proxy, boost-python2, procps-ng, plymouth-core-libs, telnet, libXpm,
     xorg-x11-drv-nouveau, bluez-obexd, zlib, libpeas, pam_krb5,
     gutenprint-cups, avahi, libselinux, libassuan, expat, cups-filters,
     iw, clutter-gtk, userspace-rcu, libblockdev-utils, dumpet, wavpack,
     libbsd, live555, ibus-libpinyin, setroubleshoot-server, make,
     python3-markupsafe, libnice, libzip, libsoup, glusterfs-api, fuse,
     perl-Net-SSLeay, perl-Filter, ipmitool, cups-libs, libappstream-glib,
     libsepol, totem-pl-parser, gzip, qt5-linguist, keyutils, isomd5sum,
     libfdisk, libdmx, openssl-libs, corosynclib, opencc, libreport-plugin-
     reportuploader, gavl, libatasmart, ipset, x265-libs, kf5-kcoreaddons,
     unique, libcaca, keybinder3, ntfs-3g, fuse-libs, kf5-attica,
     xorg-x11-xauth, libglvnd-glx, gvfs-smb, gtkspell3, libcue, libXrender,
     json-glib, kf5-kglobalaccel, libX11-xcb, libfontenc, libicu, libgsf,
     xorg-x11-drv-vmware, sssd-common, NetworkManager-openconnect,
     libgtop2, btrfs-progs, tracker, wvdial, cogl, sni-qt, mesa-libglapi,
     bolt, glx-utils, libtommath, evolution-data-server, PackageKit,
     daxctl-libs, polkit-qt5-1, boost-container, libass, boost-math,
     wpa_supplicant, libstdc++, ppp, libtiger, git, perl-Compress-Raw-
     Bzip2, jack-audio-connection-kit, mpg123-libs, opus, git-core,
     python3-tkinter, libxklavier, traceroute, cyrus-sasl-plain,
     libblockdev-crypto, kf5-karchive, libreoffice-pdfimport, rp-pppoe,
     libtheora, attr, mtr, gtksourceview3, pugixml, plymouth, libcanberra-
     gtk3, boost-program-options, mtdev, telepathy-logger, systemd-udev,
     brasero, libXvMC, wmctrl, cheese-libs, libXmu, capstone, tig,
     libreoffice-impress, jasper-libs, librbd1, device-mapper-libs,
     xorg-x11-xinit, libogg, pyliblzma, libffi, libGLEW, python2-hawkey,
     diffutils, chrony, time, mpfr, kf5-knotifyconfig, cyrus-sasl-md5,
     iputils, qt5-qtxmlpatterns, numactl-libs, libvirt-daemon-driver-
     nwfilter, libwmf-lite, tigervnc-server-minimal, gpgme, hypervvssd,
     xorg-x11-drv-openchrome, libmcpp, libibverbs, mpg123, gdb-headless,
     dleyna-core, qemu-audio-pa, libgovirt, libqmi-utils, libmbim-utils,
     psacct, lame-libs, gnome-bluetooth-libs, usbredir, ghostscript,
     iproute, iptables-libs, cryptsetup-libs, gnome-control-center,
     syslinux-extlinux, bind-libs, pygobject2, boost-type_erasure,
     antimicro, ghostscript-x11, lua-posix, libinput, libreport-cli,
     libpkgconf, teckit, python3-dmidecode, abrt-gui-libs, libosinfo,
     id3lib, qt5-qtsvg, libreoffice-calc, libqmi, gawk, dmraid-events,
     pcsc-lite-libs, adwaita-gtk2-theme, libbasicobjects, baobab, rdma-
     core, vte291, libgweather, sssd-krb5, qemu-block-iscsi, brotli,
     libgrss, libdvbpsi, httpd, libsmbclient, transmission-gtk, getdns,
     libkcapi, libvdpau, compat-openssl10, opencore-amr, abrt-addon-
     kerneloops, libnftnl, gnome-maps, oddjob-mkhomedir, openCOLLADA, xcb-
     util-renderutil, libwinpr, sssd-ad, texlive-luatex, libpinyin,
     freetype, logrotate, cmake-gui, kf5-kcmutils, irrXML, libkadm5,
     libdnet, ntfsprogs, abrt-libs, efibootmgr, libeot, libgdither, boost-
     signals, samba-common-libs, libpsl, mpg123-plugins-pulseaudio,
     python3-rpm, nautilus-sendto, fwupdate-libs, jimtcl, libuser,
     lz4-libs, graphviz, abrt-retrace-client, boost-date-time, tbb, satyr,
     gts, pixman, gnome-font-viewer, evtest, rubygem-psych, xorg-x11-drv-
     vesa, libbluray, brltty, libwmf, texlive-lib, libbabeltrace, vpnc,
     psmisc, net-snmp-libs, xorg-x11-drv-libinput, libsss_certmap,
     libblockdev-mpath, cairo, libgcc, gdisk, ilmbase, poppler, pocl,
     libstemmer, djvulibre-libs, bison, ibus-libzhuyin, fftw-libs-double,
     avahi-gobject, net-tools, ModemManager, abrt-gui, ibus-m17n, qemu-img,
     qt5-qtbase-gui, rtkit, orc, polkit, libuuid, faad2-libs, libarchive,
     libfreehand, ibus-gtk3, ibus-gtk2, python2-libselinux, cryptsetup,
     udisks2, clucene-contribs-lib, paps-libs, tcp_wrappers, xz,
     libXcomposite, vconfig, mtools, pygtk2, python3-matplotlib-tk,
     harfbuzz-icu, libplist, checkpolicy, xdg-user-dirs, hwloc-libs, spice-
     server, gdk-pixbuf2, gst-transcoder, gupnp, libreport, libeasyfc-
     gobject, libevent, redland, python2-cccolutils, tcpdump, gnome-
     characters, aqsis-core, libblockdev, librdmacm, lua-socket, dconf, xz-
     libs, dbus-glib, PackageKit-gtk3-module, python3-kiwisolver,
     libdvdnav, libcap, libprojectM, libvirt-daemon-driver-storage-zfs,
     libwbclient, compiler-rt, kf5-kio-widgets-libs, libvirt-daemon-driver-
     storage-gluster, numad, libXp, kf5-ki18n, mod_http2, libthai,
     fakeroot, gnome-session, k3b, libini_config, nss-tools, adcli, kf5
     -kglobalaccel-libs, libtirpc, python2-gpg, libsmartcols, gsound,
     boost-test, fakeroot-libs, libva-intel-driver, libwpg, os-prober,
     ethtool, qt5-qttools-libs-designercomponents, vorbis-tools, libfprint,
     systemd-libs, cpio, libfdt, util-linux, libburn, apr-util-bdb,
     krb5-libs, gnome-online-accounts, libconfig, enca, llvm6.0-libs,
     libblockdev-part, libpciaccess, clucene-core, libsss_autofs, kmod,
     libxml++, NetworkManager-pptp, libetonyek, libcanberra-gtk2, libgs,
     gnome-user-share, sssd-client, libgxps, systemd, kf5-kiconthemes,
     webkit2gtk3-jsc, libpagemaker, highlight, kf5-kitemviews,
     libxkbcommon, device-mapper-multipath-libs, yajl, lockdev, kdesu,
     cups-filters-libs, geocode-glib, lpsolve, xorg-x11-server-utils,
     cdrskin, gnupg2, libvirt-daemon-driver-storage-iscsi-direct, marisa,
     evince-libs, libepubgen, libdnf, ruby, abrt-addon-pstoreoops, gnome-
     keyring, libdbusmenu-gtk3, libdbusmenu-gtk2, pulseaudio-libs-glib2,
     texlive-makeindex, libnice-gstreamer1, netpbm, lxpolkit, nm-
     connection-editor, qt5-qttools-libs-help, python3-pyparted,
     libudisks2, gstreamer1-plugins-bad-free, python3-setools, clutter,
     zenity, rhythmbox, chkconfig, libgnome-keyring, hostname, iscsi-
     initiator-utils, pptp, librados2, libvirt-daemon-driver-storage-mpath,
     veritysetup, pam, python2-cffi, openldap, zziplib, evince-nautilus,
     ipcalc, SDL, speex, libvirt-daemon-driver-storage-logical, ibus-
     wayland, neon, rest, libsamplerate, python2-lxml, gdm, boost-
     iostreams, poppler-utils, pakchois, zfs-fuse, libusbmuxd,
     python2-audit, perl-Unicode-Normalize, libimobiledevice, lzop,
     NetworkManager-wwan, polkit-pkla-compat, jbig2dec-libs, epiphany-
     runtime, libmtp, cyrus-sasl-lib, librevenge, hexchat, nspr, gjs,
     python3-gobject-base, gnome-settings-daemon, zvbi, dnsmasq,
     geoclue2-libs, libXfixes, libblkid, libcdio, libsss_sudo, rsync,
     gnome-software, lua-libs, abrt-addon-coredump-helper, ntfs-3g-system-
     compression, authselect-libs, soundtouch, xorg-x11-drv-evdev, libpeas-
     gtk, libXinerama, lirc-libs, libteam, vim-enhanced, libcmis,
     qt5-qttools, elfutils-libs, acl, cyrus-sasl-scram, gnome-initial-
     setup, boost-numpy2, libphodav, kf5-kinit, vid.stab, libgee,
     libXxf86vm, mesa-libEGL, clang-libs, systemd-pam, ftgl, perl-Storable,
     perl-Digest-MD5, libshout, fonts-tweak-tool, perl-File-FcntlLock,
     perl-Sort-Key, pacman, libvirt-daemon-driver-storage-rbd, nss-util,
     libsemanage, cracklib, mozjs52, systemd-container, libcomps, at, file,
     vamp-plugin-sdk, kf5-kcompletion, libblockdev-fs, perl-Cpanel-JSON-XS,
     libblockdev-nvdimm, ncdu, libnma, gettext, gettext-libs, soxr, espeak,
     libvirt-gobject, libutempter, gnome-remote-desktop, libmetalink,
     slang, openblas-serial, gvfs-afp, usbutils, e2fsprogs, libcdio-
     paranoia, grub2-tools-minimal, cpp, libksba, libwayland-server,
     virglrenderer, gmime30, dracut, gdbm, libchromaprint, osinfo-db-tools,
     libsndfile, libblockdev-vdo, libvisio, tk, ruby-libs, bzip2-libs,
     gmp-c++, libalpm, boost-log, openssl-pkcs11, gnutls, librtmp, device-
     mapper-persistent-data, python2-krbv, webkit2gtk3-plugin-process-gtk2,
     libselinux-utils, perl-Scalar-List-Utils, dosfstools, rng-tools,
     gnome-abrt, libspectre, icedax, keyutils-libs, libproxy, sssd-common-
     pac, libreoffice-math, libtimezonemap, perl-Data-Dumper, glusterfs-
     fuse, game-music-emu, kf5-kpty, pidgin, anaconda-core, vim-X11,
     libkworkspace5, libnfsidmap, perl-XML-Parser, mlocate, tmux, file-
     libs, grub2-tools, avahi-glib, mokutil, libblockdev-swap,
     libnetfilter_conntrack, python2-libsemanage, python3-gobject, libev,
     frei0r-plugins, fprintd-pam, libusbx, kf5-kconfig-gui, qrencode-libs,
     libICE, libgexiv2, drpm, qemu-block-nfs, createrepo_c-libs, kf5-kio-
     core, grilo, pcaudiolib, gstreamer1-plugins-good-qt, perl-Compress-
     Raw-Zlib, libindicator-gtk3, speexdsp, upower, libreoffice-x11,
     nautilus, xcb-util-wm, atk, dbxtool, ocl-icd, alsa-lib, gstreamer1
     -plugins-good-gtk, audacity, libwnck3, x264-libs, python2-gobject,
     gtkmm24, libvirt-daemon-driver-storage-disk, brasero-libs, mesa-dri-
     drivers, sgpio, python3-abrt, libffado, suitesparse, gdbm-libs,
     fribidi, libgnomekbd, libblockdev-kbd, ibus-rawcode, pciutils, qt5
     -qttools-libs-designer, openssh-clients, texlive-mfware, libX11,
     celt051, beignet, kyotocabinet-libs, python3-pwquality, gvfs-mtp,
     python3-cryptography, gnome-bluetooth, u2f-hidraw-policy, libnl3,
     gimp-libs, libnatpmp, libidn, grubby, python3-libreport, libdbusmenu,
     libbytesize, libmpeg2, qemu-block-rbd, python3-systemd, rpm-ostree-
     libs, libnl3-cli, ibus-libs, python2-libcomps, python2-pyyaml, audit-
     libs, bluez, motif-devel, pcre2-utf32, liborcus, kf5-kwidgetsaddons,
     qt5-qtwayland, libref_array, gvfs-afc, switcheroo-control, fwupd,
     raptor2, rubygem-io-console, xorg-x11-drv-intel, plymouth-plugin-two-
     step, sbc, qt-x11, libsane-hpaio, libhangul, bash, poppler-glib,
     NetworkManager-openvpn-gnome, libgpod, seahorse, libblockdev-lvm,
     ibus-kkc, lvm2, harfbuzz, cups, dmraid, libva, gvfs-client,
     NetworkManager-libnm, python2-libs, ibus-qt, gnome-boxes, audit,
     lrzsz, libglvnd-egl, opusfile, unbound-libs, dhcp-libs, dpkg,
     libtalloc, grep, hypervkvpd, libepoxy, perl-Variable-Magic, man-db,
     python2-dbus, gedit, libvirt-daemon-driver-storage-core, libibumad,
     mesa-libgbm, boost-locale, timedatex, xdg-desktop-portal, sssd-nfs-
     idmap, rasqal, wireless-tools, libdb, passwd, cups-pk-helper, quota,
     kmod-libs, NetworkManager-team, libdv, gutenprint-libs, lm_sensors-
     libs, libreoffice-writer, desktop-file-utils, libXdamage,
     xorg-x11-utils, libmwaw, libusal, qt5-designer, gst-editing-services,
     libunwind, dleyna-connector-dbus, gtkmm30, texlive-xdvi, libopusenc,
     gobject-introspection, kf5-kconfig-core, libpwquality, kf5-knewstuff,
     fontconfig, libnsl, libblockdev-dm, kf5-kservice, meanwhile, evince-
     djvu, libkcapi-hmaccalc, libtar, libdaemon, ffmpeg, evince, boost-
     coroutine, easytag, flatpak, cheese, pkgconf, vino, json-c, kf5-kauth,
     sed, sssd-ipa, perl-threads-shared, glib-networking, NetworkManager-
     vpnc-gnome, kpartx, libpng, sane-backends-libs, python3-pillow, cyrus-
     sasl, qt5-qtgraphicaleffects, libcollection, libgcrypt, cairomm, perl-
     Unicode-UTF8, kf5-kwallet, nss-softokn, lasi, python3-numpy, lsof,
     binutils, minetest-server, libnsl2, gnome-online-miners, twolame-libs,
     adwaita-qt4, adwaita-qt5, gnome-shell, cups-ipptool, xorg-x11-server-
     Xorg, usbmuxd, libmbim, perl-IO, libomp, libverto, glibmm24,
     libXScrnSaver, realmd, libmspub, ncurses, nfs-utils, graphite2,
     python3-kerberos, perl-List-MoreUtils-XS, passwdqc-lib, imlib2,
     libreport-plugin-kerneloops, libde265, libpng12, ndctl-libs, gmp,
     sssd-krb5-common, volume_key-libs, cdparanoia-libs, libmodulemd1,
     farstream02, libzapojit, ffmpeg-libs, alsa-plugins-pulseaudio, perl-
     interpreter, ebook-tools-libs, bluez-cups, gimp, aqsis-libs, texlive-
     metafont, leveldb, libcurl, kf5-kcrash, coreutils, libcap-ng, gvfs,
     dbus-x11, pinentry, libvirt-daemon-driver-storage-scsi, libmpcdec,
     nautilus-extensions, kde-cli-tools, qemu-common, gsm, libuv, boost-
     filesystem, libtevent, kf5-sonnet-ui, libvmaf, libchamplain, libglvnd,
     gnome-documents-libs, k3b-libs, openttd, boost-system, libpcap,
     wxBase3, nmap, snappy, libgadu, clutter-gst3, mozjs60, libdrm,
     genisoimage, rubygem-bigdecimal, pcre2, shotwell, xmlrpc-c, jsoncpp,
     perl-TermReadKey, qt5-qtwebkit, espeak-ng, protobuf-c, rygel, libpng-
     devel, perl-MIME-Base64, libvirt-glib, libqhull, libmspack, libssh,
     GConf2, glibc, xz-lzma-compat, ttmkfdir, flatpak-libs, fipscheck,
     mactel-boot, bc, gtk-vnc2, gnome-calculator, wget, gnome-autoar,
     libijs, boost-regex, python2-unbound, libreport-web, libgomp, libexif,
     libvirt-daemon-driver-secret, gstreamer1-plugins-bad-freeworld,
     libgusb, glib2, spirv-tools-libs, qemu-system-x86-core, ImageMagick-
     libs, libproxy-mozjs, pcre2-utf16, libmnl, gettext-devel, libzmf,
     libmng, nss, pcre, libchamplain-gtk, tcp_wrappers-libs, sane-backends,
     gstreamer1-plugins-base, speech-dispatcher, cdrdao, pciutils-libs,
     libiptcdata, libmpc, libXi, file-roller, openjpeg2, libmatroska, flac-
     libs, libXt, libXv, rubygem-openssl, rpm-libs, libreofficekit,
     libnfnetlink, libiec61883, rpm-sign-libs, boost-context, device-
     mapper-event, libreport-plugin-bugzilla, qt5-qttools-devel,
     qt5-qtbase, qpdf, libpskc, java-1.8.0-openjdk, ibus, python3-lxml,
     gamin, jwhois, qemu-block-dmg, curl, yelp-libs, cmake, libdmapsharing,
     rubygem-json, gcc-gdb-plugin, fipscheck-lib, python2-pycurl, endless-
     sky, dos2unix, paps, libstaroffice, abrt-tui, lzo-minilzo, tpm2-tss,
     qt5-qtspeech-speechd, abrt-addon-xorg, libdhash, gnome-keyring-pam,
     sssd-proxy, zchunk-libs, totem, python3-matplotlib, gd, gc,
     python3-cups, libxshmfence, minetest, libreport-plugin-systemd-
     journal, gstreamer1-plugins-ugly-free, p11-kit-server, lftp, unzip,
     apr-util-openssl, vlc, gtk2, gtk3, libwayland-egl, libv4l, libndp,
     atkmm, npth, perl-Params-Util, libyaml, gspell, xcb-util-image, m17n-
     lib, libblockdev-mdraid, glusterfs, exiv2-libs, libebml, libunistring,
     dleyna-server, qgnomeplatform, gstreamer1-plugins-good, python2-rpm,
     libasyncns, qemu-block-curl, device-mapper-multipath, c-ares,
     xmlsec1-openssl, python2-cairo, scl-utils, gfbgraph, NetworkManager-
     pptp-gnome, jansson, bind-utils, librsvg2, kf5-libkcddb, firefox, apr,
     libsss_nss_idmap, pitivi, gupnp-dlna, trousers-lib, libmarkdown,
     libnumbertext, libaom, zip, webrtc-audio-processing, bcache-tools,
     startup-notification, babl, libqxp, pinfo, vinagre, freeipmi,
     bubblewrap, gnome-clocks, speech-dispatcher-espeak-ng, libtasn1,
     jbigkit-libs, perl-libintl-perl, libe-book, freerdp1.2, alsa-utils,
     sqlite, tar, sudo, dhcp-client, fprintd, pinentry-gtk, gcc, rdist,
     dwz, xorg-x11-drv-qxl, gcr, oddjob, ebtables, avahi-libs, pigz,
     python3-pyyaml, libappindicator-gtk3, libquvi, gvfs-archive, rubygem-
     rdiscount, libao, perl-libs, lz4, kbd, dbus-daemon, libreoffice-core,
     opus-tools, gamemode, gupnp-igd, libwayland-cursor, openvpn, libpaper,
     squashfs-tools, gstreamer1-plugins-ugly, xvidcore, libwacom, lzo,
     poppler-qt5, pango, libss, krb5-devel, mod_dnssd, polkit-libs, perl-
     threads, perl-Params-Validate, pangomm, kf5-kguiaddons, mpg123
     -plugins-jack, mesa-libxatracker, nss-sysinit, LibRaw, texlive-
     gsftopk, nss-mdns, python3-cffi, kf5-kio-ntlm, kf5-kwallet-libs, at-
     spi2-core, libvirt-daemon-driver-network, gegl04, glibc-common,
     python3-librepo, kf5-kcodecs, bind-export-libs, kf5-kwindowsystem,
     ndctl, kf5-kactivities, qt5-qtlocation, python3-libxml2, libnfs,
     libgfortran, stoken-libs, gnome-contacts, libiscsi, texlive-kpathsea,
     groff-base, libusb, hddtemp, mesa-libGL, perl-HTML-Parser, abrt-addon-
     ccpp, libldb, bind-libs-lite, NetworkManager-vpnc, libmodplug, info,
     libvirt-daemon-driver-nodedev, libXres, libcanberra, kf5-kio-core-
     libs, PackageKit-gstreamer-plugin, libdav1d, libgudev, xorg-x11-drv-
     wacom, libsrtp, perl-Package-Stash-XS, samba-client-libs,
     qt5-qtscript, which, boost-chrono, samba-client, libaio, lua-expat,
     python3-cccolutils, libquadmath, qemu-ui-curses, gvfs-gphoto2,
     libvirt-gconfig, brlapi, thunderbird, createrepo_c, libreport-gtk,
     liboauth, lmdb-libs, xmlsec1, isns-utils-libs, libmypaint, libwsman1,
     libXtst, krb5-workstation, nmap-ncat, libglvnd-opengl, vlc-core,
     lksctp-tools, libgltf, usb_modeswitch, python3-libdnf, mythes,
     evolution, NetworkManager-wifi, qt, mjpegtools-libs, kexec-tools,
     teamd, libvorbis, rpcbind, python3-libselinux, libodfgen, liblouis,
     exiv2, iptables, texlive-xetex, qt5-qtwebchannel, lua, xorriso,
     libpeas-loader-python3, llvm-libs, gnome-logs, doxygen, pulseaudio-
     module-bluetooth, libvirt-libs, kf5-kconfigwidgets, hardlink,
     portaudio, passwdqc, libXft, schroedinger, libattr, qt5-qtbase-devel,
     hyphen, gnupg2-smime, mpg123-plugins-portaudio, rpm, qemu-audio-oss,
     syslinux, libxcrypt, sssd-ldap, iptstate, libreport-plugin-ureport,
     radvd, libplacebo, kf5-kdbusaddons, python3-libs, glusterfs-cli, perl-
     PathTools, ipset-libs, boost-graph, netpbm-progs, kf5-kio-widgets,
     plymouth-graphics-libs, boost-serialization, mozjs38, gnome-menus,
     glusterfs-client-xlators, libreoffice-pyuno, motif, flex, libxml2,
     libgepub, libreoffice-ure, iscsi-initiator-utils-iscsiuio, cyrus-sasl-
     gssapi, mpage, libargon2, mesa-vulkan-drivers, mousetweaks, libvirt-
     daemon, protobuf-lite, libsecret, p11-kit-trust, NetworkManager-
     bluetooth, libdca, augeas-libs, libsysfs, libxmlb, geoclue2, texlive-
     dvipng, java-1.8.0-openjdk-headless, abrt-dbus, gnome-desktop3, gdk-
     pixbuf2-modules, at-spi2-atk, xen-libs, libisofs, nss-pem, vim-common,
     python2-kerberos, less, CGAL, cifs-utils, libvpx, tcl, rpm-build-libs,
     libnghttp2, ostree-libs, totem-nautilus, libsolv, exempi,
     libxkbcommon-x11, libmms, libtdb, python3-gpg, libXdmcp, perl-Socket,
     apr-util, libshaderc, libatomic, libvisual, python3, python2, gpm-
     libs, kf5-kwayland, avahi-ui-gtk3, irrlicht, xorg-x11-server-Xwayland,
     dbus-tools, shared-mime-info, httpd-tools, SDL2, webkit2gtk3,
     libsigsegv, dnssec-trigger, boost-thread, grilo-plugins, dvd+rw-tools,
     shadow-utils, boost-random, libcgroup, libXaw, libXau, netcf-libs,
     libgdata, phonon-qt5, pulseaudio-module-x11, dmidecode, qemu-audio-
     alsa, python3-libcomps, phonon-qt5-backend-gstreamer, libjpeg-turbo,
     spice-gtk3, libmount, spice-vdagent, xorg-x11-drv-wacom-serial-
     support, xorg-x11-drv-fbdev, libqb, libavc1394, lldpad, libtiff,
     python3-libsemanage, libvncserver, sg3_utils-libs, libnotify, ima-evm-
     utils, boost-stacktrace, texlive-tex, python3-gstreamer1, python2
     -gobject-base, mesa-libOpenCL, transmission-common, qemu-audio-sdl,
     openssh-server, fluidsynth-libs, mutter, qt5-doctools, taglib,
     libXext, mcpp, ModemManager-glib, bridge-utils, ostree, device-mapper-
     event-libs, initscripts, hunspell, libieee1284, xdg-dbus-proxy,
     pulseaudio, libaesgm, qemu-ui-sdl, kf5-ktextwidgets, bzip2, libeasyfc,
     elfutils-libelf, nss-softokn-freebl, open-vm-tools, evolution-ews,
     kf5-kdesu, kf5-kdoctools, libavdevice, libtool-ltdl, readline, eog,
     yelp, libtimidity, vulkan-loader, abrt-java-connector, perl-version),
     /usr/lib/.build-id/79(systemd-udev, LibRaw, boost-test,
     kf5-kcompletion, grilo-plugins, icedax, gnome-software, glibc, shadow-
     utils, ntfsprogs, python2-libs, fwupd, python3-pillow, perl-Unicode-
     Normalize, ModemManager, libdb-utils, sane-backends-drivers-scanners,
     gawk, endless-sky, python3-libs, pango, evolution, libtasn1,
     pulseaudio, polkit-libs, net-tools, rygel, libvdpau), /usr/lib/.build-
     id/16(httpd-tools, qt5-qtdeclarative, kf5-kauth, glusterfs, ppp,
     clutter, libxcb, clang6.0-libs, cups, libreoffice-core, gimp,
     elfutils, fontconfig, id3lib, libcap, ruby-libs, pam, python2-audit,
     ebtables, babl, vlc-core, ncurses-libs, openldap, libnl3-cli,
     xorg-x11-utils, libldb, pulseaudio, libgomp, initscripts, qemu-common,
     glibc)
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: 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
[-]: 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.
[x]: 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 962560 bytes in 179 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]: 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]: 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
     libprimesieve , primesieve-debuginfo , primesieve-debugsource
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: 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.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[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:
[-]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 1075200 bytes in /usr/share
[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]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: primesieve-7.4-1.fc29.x86_64.rpm
          libprimesieve-7.4-1.fc29.x86_64.rpm
          libprimesieve-devel-7.4-1.fc29.x86_64.rpm
          primesieve-debuginfo-7.4-1.fc29.x86_64.rpm
          primesieve-debugsource-7.4-1.fc29.x86_64.rpm
          primesieve-7.4-1.fc29.src.rpm
primesieve.x86_64: W: spelling-error %description -l en_US tuplets -> sextuplets, sextuplet, couplets
libprimesieve.x86_64: W: spelling-error %description -l en_US primesieve -> prime sieve, prime-sieve, impressive
libprimesieve.x86_64: W: no-documentation
primesieve.src: W: spelling-error %description -l en_US tuplets -> sextuplets, sextuplet, couplets
6 packages and 0 specfiles checked; 0 errors, 4 warnings.




Rpmlint (debuginfo)
-------------------
Checking: primesieve-debuginfo-7.4-1.fc29.x86_64.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
primesieve-debugsource.x86_64: W: invalid-url URL: https://github.com/kimwalisch/primesieve <urlopen error [Errno -2] Name or service not known>
primesieve-debuginfo.x86_64: W: invalid-url URL: https://github.com/kimwalisch/primesieve <urlopen error [Errno -2] Name or service not known>
libprimesieve.x86_64: W: spelling-error %description -l en_US primesieve -> prime sieve, prime-sieve, impressive
libprimesieve.x86_64: W: invalid-url URL: https://github.com/kimwalisch/primesieve <urlopen error [Errno -2] Name or service not known>
libprimesieve.x86_64: W: no-documentation
libprimesieve-devel.x86_64: W: invalid-url URL: https://github.com/kimwalisch/primesieve <urlopen error [Errno -2] Name or service not known>
primesieve.x86_64: W: spelling-error %description -l en_US tuplets -> sextuplets, sextuplet, couplets
primesieve.x86_64: W: invalid-url URL: https://github.com/kimwalisch/primesieve <urlopen error [Errno -2] Name or service not known>
5 packages and 0 specfiles checked; 0 errors, 8 warnings.



Requires
--------
primesieve-debugsource (rpmlib, GLIBC filtered):

primesieve-debuginfo (rpmlib, GLIBC filtered):

libprimesieve (rpmlib, GLIBC filtered):
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(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)
    rtld(GNU_HASH)

libprimesieve-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    cmake-filesystem(x86-64)
    libprimesieve(x86-64)
    libprimesieve.so.9()(64bit)

primesieve (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libprimesieve(x86-64)
    libprimesieve.so.9()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    rtld(GNU_HASH)



Provides
--------
primesieve-debugsource:
    primesieve-debugsource
    primesieve-debugsource(x86-64)

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

libprimesieve:
    libprimesieve
    libprimesieve(x86-64)
    libprimesieve.so.9()(64bit)

libprimesieve-devel:
    cmake(primesieve)
    libprimesieve-devel
    libprimesieve-devel(x86-64)
    pkgconfig(primesieve)

primesieve:
    primesieve
    primesieve(x86-64)



Source checksums
----------------
https://github.com/kimwalisch/primesieve/archive/v7.4.tar.gz :
  CHECKSUM(SHA256) this package     : ff9b9e8c6ca3b5c642f9a334cc399dd55830a8d9c25afd066528aa2040032399
  CHECKSUM(SHA256) upstream package : ff9b9e8c6ca3b5c642f9a334cc399dd55830a8d9c25afd066528aa2040032399


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1540335
Buildroot used: fedora-29-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 21 Kim Walisch 2019-04-09 07:45:54 UTC
> Ok, still not follows usual convention of addon packages [1], but that is just should.

I was confused by:

> Ok, made mistake with offered Provides in 2):
> Correct version would be:
> Provides: lib%{name}%{?_isa} = %{version}-%{release}

That's why I kept libprimesieve as a package name. I guess if I change libprimesieve to primesieve-libs then I would also have to use {name}-libs%{?_isa} = %{version}-%{release} ?

Comment 22 Petr Menšík 2019-04-15 12:27:50 UTC
Correct, libs have to be required no matter what name it uses, it has to match. %{name}-libs%{?_isa} = %{version}-%{release} would be correct replacement.

Anyway, I am sure this can be corrected before first build. Next steps are described on [1].

1. https://fedoraproject.org/wiki/Join_the_package_collection_maintainers#Inform_Upstream

Comment 23 Kim Walisch 2019-04-16 07:42:49 UTC
> Anyway, I am sure this can be corrected before first build. Next steps are described on [1].

It is not clear to me what I have to do next. I have read the [1] documentation but this describes mainly that I have to introduce myself on the Fedora devel mailing list with the goal to find a sponsor for my package. As I have mentioned to you before I have already tried to find a sponsor about a year ago but all my attempts failed. Is it mandatory that I find a sponsor for primesieve in order to proceed? Or can we skip this step?

So I tried to request a repo using the fedpkg tool yesterday (which was the next item in the [1] documentation). But my request was "Closed: Invalid", see https://pagure.io/releng/fedora-scm-requests/issue/11093.

So what exactly do I need to do next?

Comment 24 Petr Menšík 2019-04-21 18:25:06 UTC
Until you have a sponsor, unfortunately you cannot package your own package. Yes, having a sponsor is mandatory, that step cannot be skipped.

I am considering becoming a sponsor myself, but not yet able to become sponsor. Can you retry persuading someone to sponsor you? Having acked review might help you.

Comment 25 Kim Walisch 2019-04-22 07:40:21 UTC
> Can you retry persuading someone to sponsor you? Having acked review might help you.

OK, I'll give it another try.

Comment 26 Peter Lemenkov 2019-04-23 12:02:26 UTC
Unblocking FE-NEEDSPONSOR - I've just sponsored Kim.

Comment 27 Gwyn Ciesla 2019-04-23 17:34:08 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/primesieve

Comment 28 Fedora Update System 2019-04-25 17:42:50 UTC
primesieve-7.4-2.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f28b079ec8

Comment 29 Fedora Update System 2019-04-25 17:44:56 UTC
primesieve-7.4-2.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-aa041346ac

Comment 30 Fedora Update System 2019-04-25 17:46:00 UTC
primesieve-7.4-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-7ced30d8d6

Comment 31 Fedora Update System 2019-04-25 22:51:32 UTC
primesieve-7.4-2.fc28 has been pushed to the Fedora 28 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-2019-7ced30d8d6

Comment 32 Fedora Update System 2019-04-26 22:10:12 UTC
primesieve-7.4-2.fc29 has been pushed to the Fedora 29 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-2019-aa041346ac

Comment 33 Fedora Update System 2019-04-27 22:30:13 UTC
primesieve-7.4-2.fc30 has been pushed to the Fedora 30 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-2019-f28b079ec8

Comment 34 Petr Menšík 2019-04-28 00:11:43 UTC
(In reply to Peter Lemenkov from comment #26)
> Unblocking FE-NEEDSPONSOR - I've just sponsored Kim.

Thanks!

Comment 35 Fedora Update System 2019-05-04 01:17:21 UTC
primesieve-7.4-2.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.

Comment 36 Fedora Update System 2019-05-05 02:43:34 UTC
primesieve-7.4-2.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Comment 37 Fedora Update System 2019-05-06 00:45:18 UTC
primesieve-7.4-2.fc30 has been pushed to the Fedora 30 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.