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
>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.
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
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}.
> %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
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.
> 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.
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
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.
(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.
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
(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.
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
(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.
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
> 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.
> 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...
(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.
(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
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
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
> 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} ?
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
> 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?
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.
> Can you retry persuading someone to sponsor you? Having acked review might help you. OK, I'll give it another try.
Unblocking FE-NEEDSPONSOR - I've just sponsored Kim.
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/primesieve
primesieve-7.4-2.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f28b079ec8
primesieve-7.4-2.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-aa041346ac
primesieve-7.4-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-7ced30d8d6
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
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
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
(In reply to Peter Lemenkov from comment #26) > Unblocking FE-NEEDSPONSOR - I've just sponsored Kim. Thanks!
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.
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.
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.