Spec URL: https://github.com/astrorama/copr/blob/master/Elements/Elements.spec SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/836/38480836/Elements-5.8-1.fc30.src.rpm Description: A C++ base framework for the Euclid Software. Fedora Account System Username: aalvarez SExtractor2 is part of Fedora (1). SourceXtractor (2) is the new generation, written in C++. However, SourceXtractor depends on this library in order to be built, so I am proposing this rpm as part of an effort to get it into Fedora. (1) https://apps.fedoraproject.org/packages/sextractor (2) https://github.com/astrorama/sextractorxx (rename pending)
rpmlint output: 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Build on Fedora 30: https://koji.fedoraproject.org/koji/taskinfo?taskID=38480829 Installed on a Fedora 30, tested compiling a project that relies on Elements, and by running few provided commands: CreateElementsProject, AddElementsModule, AddCppClass, AddCppProgram, and compiling the resulting project. Note: for this commands to work, the environment ELEMENTS_AUX_PATH=/usr/share/auxdir has to be set.
$ fedora-review -b 1764175 -m fedora-rawhide-x86_64 INFO: Processing bugzilla bug: 1764175 INFO: Getting .spec and .srpm Urls from : 1764175 INFO: --> SRPM url: https://kojipkgs.fedoraproject.org//work/tasks/836/38480836/Elements-5.8-1.fc30.src.rpm INFO: --> Spec url: https://github.com/astrorama/copr/blob/master/Elements/Elements.spec INFO: Using review directory: /home/jamesjer/1764175-Elements INFO: Downloading .spec and .srpm files error: line 7: Unknown tag: <!DOCTYPE html> ERROR: "Can't parse specfile: can't parse specfile\n" Exception ignored in: <FedoraReview.spec_file._Null object at 0x7f58f7da7810> AttributeError: '_Null' object has no attribute 'flush' That's because you gave a "blob" URL for the spec file. Don't do that. Give a "raw" URL instead, otherwise fedora-review chokes.
The upstream tarball (https://github.com/degauden/Elements/archive/5.8.tar.gz) has md5sum 356a85aafbd37b0e39783ad4336b640a79b10a53377ab9cf5ccb5e972ff17c07. The tarball included in your source RPM has md5sum b7b2d861320b61d2fb7ae0f8a9d7cedd9899803e17af668a877444912c467d46. The Source tag must refer to a tarball that matches the one in the package. If you have altered the upstream sources because upstream uses prohibited code, then please follow the guidelines here: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#when-upstream-uses-prohibited-code. Otherwise, please explain why the source tarballs differ. This package creates libraries that do not have sonames. Please talk to upstream about that. See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning Use either %{buildroot} or $RPM_BUILD_ROOT, not both. See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_using_buildroot_and_optflags_vs_rpm_build_root_and_rpm_opt_flags The source files have the "any later version" language, so I believe the license should be LGPLv3+, not LGPLv3. Something is going wrong generating the documentation. From the build log: error: Fatal error at line 1 column 1: unexpected end of file error: Fatal error at line 1 column 1: error while parsing prolog Also this. Perhaps building PDF documentation should be disabled? sh: latex: command not found error: Problems running latex. Check your installation or look for typos in _formulas.tex and check _formulas.log! sh: dvips: command not found error: Problems running dvips. Check your installation! Remove all Group tags and the %clean section: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections There is a comment explaining Patch0. Please add a comment for Patch1. See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_all_patches_should_have_an_upstream_bug_link_or_comment Remove this line. The dependency on python3 is automatically generated: Requires: python3 Remove these lines. They are not needed in Fedora: Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Also remove the %post and %postun scripts. See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries In %description, write "A C++ based" instead of "A C++ base". Change the Requires in the devel package to these: Requires: cmake-filesystem Requires: %{name}%{?_isa} = %{version}-%{release} The devel package does not need cmake itself, just the directories where the cmake files are stored. The addition of %{?_isa} on the second one is explained here: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_specific_dependencies The doc subpackage should not have "Requires: %{name}-devel", as you do not need headers installed to read documentation. In fact, it should probably have no Requires at all, in spite of what rpmlint has to say on the matter. Consider replacing the body of %prep with "%autosetup -p1 -c %{name}-%{version}". See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_autosetup Remove this line from all %files sections: %defattr(-,root,root,-) See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_permissions Do you really need all of those %changelog entries? This package has not been in Fedora, so this is history for some other project, probably not of interest to Fedora. I suggest having a single %changelog entry, with something short like "Initial RPM".
Hello, Thanks for the review. New Spec URL: https://raw.githubusercontent.com/astrorama/copr/13232373c14b71ea405ab6990de9faca38752284/Elements/Elements.spec New SRPM URL: https://kojipkgs.fedoraproject.org//work/tasks/9518/38619518/Elements-5.8-2.fc30.src.rpm New Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=38619517 Responses to your comments: >> The upstream tarball checksum does not match the used one I did a local git archive, which indeed does not match the .tar.gz generated by GitHub. Using the GitHub tar.gz directly now. >> This package creates libraries that do not have sonames. Please talk to upstream about that. Patched, and sent a pull request to upstream: https://github.com/degauden/Elements/pull/6 >> Use either %{buildroot} or $RPM_BUILD_ROOT, not both. Fixed since %cleanup has been dropped >> The source files have the "any later version" language, so I believe the license should be LGPLv3+, not LGPLv3. Fixed >> Something is going wrong generating the documentation. Elements' build script tries to download cppreference-doxygen-web.tag.xml and pass it to Doxygen so it can generate links to cppreference.com. I have added that file to the source rpm, as it is CC-BY-SA, which is permitted. >> Perhaps building PDF documentation should be disabled? Building PDF disabled. In any case, latex is used for generating the formulas embeded on the Doxygen documentation, so I have added dependencies on: texlive-latex, texlive-dvips, texlive-newunicodechar. graphviz was also missing. >> Remove all Group tags and the %clean section: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections Removed >> There is a comment explaining Patch0. Please add a comment for Patch1. Added >> Remove [...] >> Requires: python3 >> Requires(post): /sbin/ldconfig >> Requires(postun): /sbin/ldconfig >> Also remove the %post and %postun scripts. Removed >> In %description, write "A C++ based" instead of "A C++ base". "C++ base" is how upstream defines it: https://github.com/degauden/Elements/blob/develop/CMakeLists.txt#L45 I think they mean it is a framework to be used as a base for C++ projects, not that it is C++-based. Anyway, it can be confusing, so I have replaced it by "C++/Python Build Framework", which they also use. >> Change the Requires in the devel package to these:kin >> Requires: cmake-filesystem >> Requires: %{name}%{?_isa} = %{version}-%{release} Fixed >> The doc subpackage should not have "Requires: %{name}-devel", as you do not need headers installed to read documentation. Removed -doc dependencies >> Consider replacing the body of %prep with "%autosetup -p1 -c %{name}-%{version}". See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_autosetup Replaced >> Remove this line from all %files sections: >> %defattr(-,root,root,-) Removed >> [...] I suggest having a single %changelog entry, with something short like "Initial RPM". I was following the .spec file generated by Elements itself, but fair point. Changed.
>> This package creates libraries that do not have sonames. Please talk to upstream about that. Patched, and sent a pull request to upstream: https://github.com/degauden/Elements/pull/6 Please use the commit indicated by upstream to implement the soname. Please provide the src.rpm on a stable url as Koji erases stuff on a regular basis. I don't think you should capitalize the Name and SPEC name of this program.
> Please use the commit indicated by upstream to implement the soname. Done > I don't think you should capitalize the Name and SPEC name of this program. I have checked with upstream, just in case, and they have no reserves about removing the capitalization, so done too (note that the installation directories still use the capitalized version) New Spec URL: https://raw.githubusercontent.com/astrorama/copr/c079ba8d489abe3ad9e9d28819b8a681a8a80e97/Elements/elements.spec New SRPM URL: https://dl.bintray.com/astrorama/archive/elements-5.8-3.fc31.src.rpm New Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=39462997
- Use a better name for your archive: Source0: https://github.com/degauden/Elements/archive/%{version}/%{name}-%{version}.tar.gz - Use %global, not %define: %global cmakedir %{_libdir}/cmake/ElementsProject %global xmldir %{cmakedir} %global makedir %{_datadir}/Elements/make %global confdir %{_datadir}/Elements %global auxdir %{_datadir}/auxdir %global docdir %{_docdir}/Elements - I would simplify these: %dir %{cmakedir} %{cmakedir}/ElementsBuildFlags.cmake %{cmakedir}/ElementsCoverage.cmake %{cmakedir}/ElementsDocumentation.cmake %{cmakedir}/ElementsLocations.cmake %{cmakedir}/ElementsProjectConfig.cmake %{cmakedir}/ElementsToolChain.cmake %{cmakedir}/ElementsToolChainMacros.cmake %{cmakedir}/ElementsUninstall.cmake %{cmakedir}/ElementsUtils.cmake %{cmakedir}/ElementsInfo.cmake %{cmakedir}/ElementsExports-relwithdebinfo.cmake %{cmakedir}/ElementsServicesExport.cmake %{cmakedir}/SGSPlatform.cmake %{cmakedir}/auxdir %{cmakedir}/doc %{cmakedir}/modules %{cmakedir}/scripts %{cmakedir}/tests %{cmakedir}/ElementsExports.cmake %{cmakedir}/ElementsPlatformConfig.cmake %{cmakedir}/ElementsKernelExport.cmake %{cmakedir}/ElementsConfigVersion.cmake %{cmakedir}/ElementsConfig.cmake %dir %{makedir} %{makedir}/Elements.mk with: %{cmakedir} %{makedir} - Own this directory: [!]: Package requires other packages for directories it uses. Note: No known owner of /usr/share/Elements %dir %{confdir} - Fix the changelog entry: elements.x86_64: W: incoherent-version-in-changelog 5.8-2 ['5.8-3.fc32', '5.8-3'] 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]: If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. [x]: Header files in -devel subpackage, if present. [x]: ldconfig not called in %post and %postun for Fedora 28 and later. [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: "Unknown or generated", "GNU Lesser General Public License (v3.0 or later)", "BSD 3-clause "New" or "Revised" License GNU Lesser General Public License (v3.0 or later)", "*No copyright* GNU Lesser General Public License (v3.0 or later)". 166 files have unknown license. Detailed output of licensecheck in /home/bob/packaging/review/elements/review-elements/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [!]: Package requires other packages for directories it uses. Note: No known owner of /usr/share/Elements [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. [-]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: Package does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local Python: [x]: Python eggs must not download any dependencies during the build process. [x]: A package which is used by another package via an egg interface should provide egg info. [x]: Package meets the Packaging Guidelines::Python [x]: Package contains BR: python2-devel or python3-devel [x]: Packages MUST NOT have dependencies (either build-time or runtime) on packages named with the unversioned python- prefix unless no properly versioned package exists. Dependencies on Python packages instead MUST use names beginning with python2- or python3- as appropriate. [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files [x]: Binary eggs must be removed in %prep ===== 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). [?]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: 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. [ ]: Spec use %global instead of %define unless justified. Note: %define requiring justification: %define cmakedir %{_libdir}/cmake/ElementsProject, %define xmldir %{cmakedir}, %define makedir %{_datadir}/Elements/make, %define confdir %{_datadir}/Elements, %define auxdir %{_datadir}/auxdir, %define docdir %{_docdir}/Elements [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]: Fully versioned dependency in subpackages if applicable. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. ===== EXTRA items ===== Generic: [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]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: elements-5.8-3.fc32.x86_64.rpm elements-devel-5.8-3.fc32.x86_64.rpm elements-doc-5.8-3.fc32.noarch.rpm elements-debuginfo-5.8-3.fc32.x86_64.rpm elements-debugsource-5.8-3.fc32.x86_64.rpm elements-5.8-3.fc32.src.rpm elements.x86_64: W: description-shorter-than-summary elements.x86_64: W: incoherent-version-in-changelog 5.8-2 ['5.8-3.fc32', '5.8-3'] elements.x86_64: W: shared-lib-calls-exit /usr/lib64/libElementsKernel.so.5.8 exit.5 elements.x86_64: W: no-documentation elements.x86_64: E: non-executable-script /usr/share/auxdir/ElementsKernel/templates/Script_template.in 644 /bin/sh elements.x86_64: W: no-manual-page-for-binary AddCppClass elements.x86_64: W: no-manual-page-for-binary AddCppProgram elements.x86_64: W: no-manual-page-for-binary AddElementsModule elements.x86_64: W: no-manual-page-for-binary AddPythonModule elements.x86_64: W: no-manual-page-for-binary AddPythonProgram elements.x86_64: W: no-manual-page-for-binary AddScript elements.x86_64: W: no-manual-page-for-binary CreateElementsProject elements.x86_64: W: no-manual-page-for-binary ElementsNameCheck elements.x86_64: W: no-manual-page-for-binary GetElementsFiles elements.x86_64: W: no-manual-page-for-binary RemoveCppClass elements.x86_64: W: no-manual-page-for-binary RemoveCppProgram elements.x86_64: W: no-manual-page-for-binary RemovePythonModule elements.x86_64: W: no-manual-page-for-binary RemovePythonProgram elements-devel.x86_64: W: no-documentation elements.src: W: description-shorter-than-summary 6 packages and 0 specfiles checked; 1 errors, 19 warnings.
Hello, Thanks for the review. New Spec URL: https://raw.githubusercontent.com/astrorama/copr/4c7b8a0a28c610c868d81365c5653caf7392e410/Elements/elements.spec New SRPM URL: https://dl.bintray.com/astrorama/archive/elements-5.8-4.fc31.src.rpm New Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=39482346 > Use a better name for your archive: > Source0: https://github.com/degauden/Elements/archive/%{version}/%{name}-%{version}.tar.gz Done. > Use %global, not %define: Replaced %define by %global > I would simplify these: Done for makedir. However, for cmakedir I can't, since there is one file owned by the main rpm, and the rest by the devel one. I have got rid of the xmldir macro to make this more clear. > Own this directory: /usr/share/Elements Done > Fix the changelog entry: Done, my bad. While on it, I have also made the description more verbose to fix this warning: elements.src: W: description-shorter-than-summary
LGTM, package approved.
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/elements
FEDORA-2019-8cdede5d5c has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-8cdede5d5c
FEDORA-2019-2bfb280b4f has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-2bfb280b4f
elements-5.8-4.fc31 has been pushed to the Fedora 31 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-8cdede5d5c
elements-5.8-4.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-2bfb280b4f
FEDORA-EPEL-2019-1eeb02ef35 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2019-1eeb02ef35
elements-5.8-4.el7 has been pushed to the Fedora EPEL 7 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-EPEL-2019-1eeb02ef35
elements-5.8-4.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.
elements-5.8-4.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.
FEDORA-EPEL-2020-f1c1df23bf has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-f1c1df23bf
elements-5.8-5.el7 has been pushed to the Fedora EPEL 7 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-EPEL-2020-f1c1df23bf
elements-5.8-5.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.