Spec URL: http://grid.tsl.uu.se/review/pythia8.spec SRPM URL: http://grid.tsl.uu.se/review/pythia8-8.1.70-1.fc17.src.rpm Description: PYTHIA is a program for the generation of high-energy physics events, i.e. for the description of collisions at high energies between elementary particles such as e⁺, e⁻, p and p̄ in various combinations. It contains theory and models for a number of physics aspects, including hard and soft interactions, parton distributions, initial and final-state parton showers, multiple interactions, fragmentation and decay. Fedora Account System Username: ellert
New upstream version: Spec URL: http://grid.tsl.uu.se/review/pythia8.spec SRPM URL: http://grid.tsl.uu.se/review/pythia8-8.1.76-1.fc18.src.rpm
Created attachment 750657 [details] FTBFS - BuildLog FTBFS on rawhide! g++ -O2 -ansi -pedantic -W -Wall -Wshadow -fPIC -shared -Wl,-z,relro \ -Wl,-z,defs tmp/HepMCInterface.o -o lib/libhepmcinterface.so.8 \ -Wl,-soname,libhepmcinterface.so.8 -lHepMC -Llib -lpythia /usr/bin/ld: cannot find -lpythia collect2: error: ld returned 1 exit status make: *** [lib/libhepmcinterface.so.8] Error 1 BuildLog attached. Please fix and I'll review again.
Race condition fixed. This package is intended for EPEL 5 too, so the buildroot tag and cleaning of the buildroot in %install are intentional. New package version: Spec URL: http://grid.tsl.uu.se/review/pythia8.spec SRPM URL: http://grid.tsl.uu.se/review/pythia8-8.1.76-2.fc18.src.rpm
Review revealed: BLOCKERS: * No fully versioned dependency in pythia8-hepmcinterface-devel, pythia8-data, pythia8-examples, pythia8-doc present. Should be "Requires: %{name}%{?_isa} = %{version}-%{release}", if needed or present. * rpmlint is not so happy (ignored and false positives snipped)... Rpmlint ------- Checking: pythia8-8.1.76-2.fc20.x86_64.rpm pythia8-devel-8.1.76-2.fc20.x86_64.rpm pythia8-hepmcinterface-8.1.76-2.fc20.x86_64.rpm pythia8-hepmcinterface-devel-8.1.76-2.fc20.x86_64.rpm pythia8-data-8.1.76-2.fc20.noarch.rpm pythia8-examples-8.1.76-2.fc20.noarch.rpm pythia8-doc-8.1.76-2.fc20.noarch.rpm pythia8-examples.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/pythia8-examples-8.1.76/softsusy.spc pythia8-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/pythia8-doc-8.1.76/pythia.css 7 packages and 0 specfiles checked; 0 errors, 14 warnings. ---> Fix wrong-file-end-of-line-encoding by using `sed -i 's/\r//' <file_to_strip> ` as recommended in wiki: https://fedoraproject.org/wiki/Common_Rpmlint_issues \ #wrong-file-end-of-line-encoding NON-BLOCKERS: * If want to pkg for el5 you should add a %clean-target (like in blocking review-bugs) to spec-file... * Ask upstream to replace calling `exit()` with throwing an exception, if possible: pythia8-hepmcinterface.x86_64: W: shared-lib-calls-exit /usr/lib64/libhepmcinterface.so.8.1.76 exit.5 * el5 legacy-stuff ( RECOMMENDATION / SUGGESTION ) I'd start using conditionals or expansions for el5-lagacy in spec-files like these examples: %{?el5:BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}- \ %{release}-XXXXXX)} ... %install %if 0%{?el5} rm -rf "%{buildroot}" make install DESTDIR="%{buildroot}" %else %make_install %endif ... %clean %{?el5:rm -rf "%{buildroot}"} for the following reasons: - Stuff only needed for el5 will be ommited on other dists. - The reviewer can see clearly you are going to pkg for el5, too. - The reviewer sees you are familiar with pkg-guidelines and the needed legacy-exceptions for el5. - You won't run into possible trouble, e.g. FTBFS, when someday these legacy-needs are forbidden to be in spec-file and will cause mock/rpmbuild-errors. Fix the BLOCKERS (and, on your oppinion, apply recommendations) and I'll give fedora-review(+). The rest is fine: Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - Large documentation must go in a -doc subpackage. Note: Documentation size is 6932480 bytes in 122 files. See: http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Header files in -devel subpackage, if present. [x]: ldconfig called in %post and %postun if required. [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]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [ ]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. Note: rm -rf %{buildroot} present but not required [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 requires other packages for directories it uses. [x]: Package uses nothing in %doc for runtime. [x]: Package is not known to require ExcludeArch. [!]: Fully versioned dependency in subpackages, if present. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in pythia8 -hepmcinterface-devel , pythia8-data , pythia8-examples , pythia8-doc [x]: Package complies to the 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". 263 files have unknown license. Detailed output of licensecheck in /home/bjoern.esser/fedora/review/877607-pythia8/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: Package consistently uses macro is (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]: Package must own all directories that it creates. [x]: Package does not own files or directories owned by other packages. [!]: 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]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Each %files section contains %defattr if rpm < 4.4 [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc. [x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package do not use a name that already exist [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local [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). ===== SHOULD items ===== Generic: [ ]: Buildroot is not present Note: Buildroot: present but not needed [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [!]: Final provides and requires are sane (see attachments). [x]: 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. [x]: Scriptlets must be sane, if 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. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: Reviewer should test that the package builds in mock. [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: Dist tag is present. [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Uses parallel make. [x]: SourceX tarball generation or download is documented. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define. ===== EXTRA items ===== Generic: [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [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: pythia8-8.1.76-2.fc20.x86_64.rpm pythia8-devel-8.1.76-2.fc20.x86_64.rpm pythia8-hepmcinterface-8.1.76-2.fc20.x86_64.rpm pythia8-hepmcinterface-devel-8.1.76-2.fc20.x86_64.rpm pythia8-data-8.1.76-2.fc20.noarch.rpm pythia8-examples-8.1.76-2.fc20.noarch.rpm pythia8-doc-8.1.76-2.fc20.noarch.rpm pythia8.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8.x86_64: W: spelling-error %description -l en_US p̄ pythia8.x86_64: W: spelling-error %description -l en_US parton -> patron, tarpon, parson pythia8-devel.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-hepmcinterface.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-hepmcinterface.x86_64: W: shared-lib-calls-exit /usr/lib64/libhepmcinterface.so.8.1.76 exit.5 pythia8-hepmcinterface.x86_64: W: no-documentation pythia8-hepmcinterface-devel.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-hepmcinterface-devel.x86_64: W: no-documentation pythia8-data.noarch: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-examples.noarch: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-examples.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/pythia8-examples-8.1.76/softsusy.spc pythia8-doc.noarch: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/pythia8-doc-8.1.76/pythia.css 7 packages and 0 specfiles checked; 0 errors, 14 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint pythia8-hepmcinterface pythia8 pythia8-doc pythia8-data p ythia8-hepmcinterface-devel pythia8-examples pythia8-devel pythia8-hepmcinterface.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-hepmcinterface.x86_64: W: shared-lib-calls-exit /usr/lib64/libhepmcinterface.so.8.1.76 exit.5 pythia8-hepmcinterface.x86_64: W: no-documentation pythia8.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8.x86_64: W: spelling-error %description -l en_US p̄ pythia8.x86_64: W: spelling-error %description -l en_US parton -> patron, tarpon, parson pythia8-doc.noarch: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/pythia8-doc-8.1.76/pythia.css pythia8-data.noarch: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-hepmcinterface-devel.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-hepmcinterface-devel.x86_64: W: no-documentation pythia8-examples.noarch: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia pythia8-examples.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/pythia8-examples-8.1.76/softsusy.spc pythia8-devel.x86_64: W: spelling-error Summary(en_US) Pythia -> Pythias, Scythia 7 packages and 0 specfiles checked; 0 errors, 14 warnings. # echo 'rpmlint-done:' Requires -------- pythia8-hepmcinterface (rpmlib, GLIBC filtered): /sbin/ldconfig libHepMC.so.4()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libm.so.6()(64bit) libpythia.so.8()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) pythia8(x86-64) rtld(GNU_HASH) pythia8 (rpmlib, GLIBC filtered): /sbin/ldconfig libLHAPDF.so.0()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_4.0.0)(64bit) libm.so.6()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) pythia8-data rtld(GNU_HASH) pythia8-doc (rpmlib, GLIBC filtered): pythia8-data (rpmlib, GLIBC filtered): pythia8-hepmcinterface-devel (rpmlib, GLIBC filtered): HepMC-devel(x86-64) libhepmcinterface.so.8()(64bit) pythia8-devel(x86-64) pythia8-hepmcinterface(x86-64) pythia8-examples (rpmlib, GLIBC filtered): pythia8-devel (rpmlib, GLIBC filtered): lhapdf-devel(x86-64) libpythia.so.8()(64bit) pythia8(x86-64) Provides -------- pythia8-hepmcinterface: libhepmcinterface.so.8()(64bit) pythia8-hepmcinterface pythia8-hepmcinterface(x86-64) pythia8: libpythia.so.8()(64bit) pythia8 pythia8(x86-64) pythia8-doc: pythia8-doc pythia8-data: pythia8-data pythia8-hepmcinterface-devel: pythia8-hepmcinterface-devel pythia8-hepmcinterface-devel(x86-64) pythia8-examples: pythia8-examples pythia8-devel: pythia8-devel pythia8-devel(x86-64) Source checksums ---------------- http://home.thep.lu.se/~torbjorn/pythia8/pythia8176.tgz : CHECKSUM(SHA256) this package : 6d4422acc78969c5e0f81b505d740f25f10819162cd50ee24ea2095132c5ca3e CHECKSUM(SHA256) upstream package : 6d4422acc78969c5e0f81b505d740f25f10819162cd50ee24ea2095132c5ca3e Generated by fedora-review 0.4.1 (b2e211f) last change: 2013-04-29 Buildroot used: fedora-rawhide-x86_64 Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -b 877607
(In reply to Björn Esser from comment #4) > Review revealed: > > > BLOCKERS: > > * No fully versioned dependency in pythia8-hepmcinterface-devel, > pythia8-data, pythia8-examples, pythia8-doc present. > Should be "Requires: %{name}%{?_isa} = %{version}-%{release}", > if needed or present. pythia8-hepmcinterface-devel has Requires: %{name}-hepmcinterface%{?_isa} = %{version}-%{release} Requires: %{name}-devel%{?_isa} = %{version}-%{release} These dependencies are both motivated because of the symlink that points to the library in the pythia8-hepmcinterface package and that the installed header file in turn includes header files in pythia8-devel respectively. No such motivation exists for a direct dependency on the main package. The requirement that a package containing the license file is installed is ensured by the dependency chain (both the dependencies above in turn have a versioned dependency on the main package). The guidelines do not require a direct dependency for this purpose. For the others (pythia8-data, pythia8-examples, pythia8-doc) there is also no need for a dependecy on the main package. The only reason for such a dependency on the main package would be to install a package containing the license file. However, these three subpackages have their own copy of the license file included instead. The guidelines say that the dependency must be fully qualified when needed and present. In thes cases the dependencies are neither needed nor present. The guidelines do not say make sure to always add a dependencies on the main package. > * rpmlint is not so happy (ignored and false positives snipped)... > > Rpmlint > ------- > Checking: pythia8-8.1.76-2.fc20.x86_64.rpm > pythia8-devel-8.1.76-2.fc20.x86_64.rpm > pythia8-hepmcinterface-8.1.76-2.fc20.x86_64.rpm > pythia8-hepmcinterface-devel-8.1.76-2.fc20.x86_64.rpm > pythia8-data-8.1.76-2.fc20.noarch.rpm > pythia8-examples-8.1.76-2.fc20.noarch.rpm > pythia8-doc-8.1.76-2.fc20.noarch.rpm > pythia8-examples.noarch: W: wrong-file-end-of-line-encoding > /usr/share/doc/pythia8-examples-8.1.76/softsusy.spc > pythia8-doc.noarch: W: wrong-file-end-of-line-encoding > /usr/share/doc/pythia8-doc-8.1.76/pythia.css > 7 packages and 0 specfiles checked; 0 errors, 14 warnings. > > ---> Fix wrong-file-end-of-line-encoding by using > `sed -i 's/\r//' <file_to_strip> ` as recommended in wiki: > https://fedoraproject.org/wiki/Common_Rpmlint_issues \ > #wrong-file-end-of-line-encoding Fixed (though I prefer using dos2unix - which the quoted guideline offers as a valid option). > NON-BLOCKERS: > > * If want to pkg for el5 you should add a %clean-target > (like in blocking review-bugs) to spec-file... Thanks. Added. > * Ask upstream to replace calling `exit()` with throwing an exception, > if possible: > > pythia8-hepmcinterface.x86_64: W: shared-lib-calls-exit > /usr/lib64/libhepmcinterface.so.8.1.76 exit.5 The calls to exit are condisionalized in the code: if ( m_crash_on_problem ) exit(1); and m_crash_on_problem is false by default in the constructor. So you need to actively enable the calls to exit() if you want them. New version: Spec URL: http://grid.tsl.uu.se/review/pythia8.spec SRPM URL: http://grid.tsl.uu.se/review/pythia8-8.1.76-3.fc18.src.rpm
Allright, then! * wrong-file-end-of-line-encoding is fixed. * No fully versioned dependency was my fault (didn't mind the dep-chain). * shared-lib-calls-exit is a "false positive". So the third one in this chain is APPROVED!
Thank you for the review. New Package SCM Request ======================= Package Name: pythia8 Short Description: Pythia Event Generator for High Energy Physics Owners: ellert Branches: f18 f19 el5 el6 InitialCC: ellert
Git done (by process-git-requests).
pythia8-8.1.76-3.el6,HepMC-2.06.09-3.el6,lhapdf-5.8.9-3.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/pythia8-8.1.76-3.el6,HepMC-2.06.09-3.el6,lhapdf-5.8.9-3.el6
pythia8-8.1.76-3.fc18,HepMC-2.06.09-3.fc18,lhapdf-5.8.9-3.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/pythia8-8.1.76-3.fc18,HepMC-2.06.09-3.fc18,lhapdf-5.8.9-3.fc18
pythia8-8.1.76-3.el5,HepMC-2.06.09-3.el5,lhapdf-5.8.9-3.el5 has been submitted as an update for Fedora EPEL 5. https://admin.fedoraproject.org/updates/pythia8-8.1.76-3.el5,HepMC-2.06.09-3.el5,lhapdf-5.8.9-3.el5
pythia8-8.1.76-3.fc19,HepMC-2.06.09-3.fc19,lhapdf-5.8.9-3.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/pythia8-8.1.76-3.fc19,HepMC-2.06.09-3.fc19,lhapdf-5.8.9-3.fc19
pythia8-8.1.76-3.fc19, HepMC-2.06.09-3.fc19, lhapdf-5.8.9-3.fc19 has been pushed to the Fedora 19 stable repository.
pythia8-8.1.76-3.fc18, HepMC-2.06.09-3.fc18, lhapdf-5.8.9-3.fc18 has been pushed to the Fedora 18 stable repository.
pythia8-8.1.76-3.el6, HepMC-2.06.09-3.el6, lhapdf-5.8.9-3.el6 has been pushed to the Fedora EPEL 6 stable repository.
pythia8-8.1.76-3.el5, HepMC-2.06.09-3.el5, lhapdf-5.8.9-3.el5 has been pushed to the Fedora EPEL 5 stable repository.