Spec URL: http://data-strzibny.rhcloud.com/perl-BSSolv.spec SRPM URL: http://data-strzibny.rhcloud.com/perl-BSSolv-0.01-1.git1e18c32.fc20.src.rpm Description: Using a Satisfyability Solver to compute package dependencies. Fedora Account System Username: jstribny Note: This is a dependency of OBS which I will try to package for Fedora. See former closed review[1]. [1] https://bugzilla.redhat.com/show_bug.cgi?id=985915
(I hate OBS) Anyway, please use tarball instead of source tag to build the package. Please cleanup the %changelog, because the version has been changed. Please remove the header of SUSE GmbH (can you write this from scratch on your own?) Please remove this line: find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
Hi Christopher, thanks for the suggestions, SPEC: http://data-strzibny.rhcloud.com/perl-BSSolv.spec SRPM: http://data-strzibny.rhcloud.com/perl-BSSolv-0.01-2.git1e18c32.fc20.src.rpm
One question, which branch will you push of this package? rawhide only?
Hi, I am thinking f20 as well.
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated ===== MUST items ===== C/C++: [-]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. 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]: 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]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated". 2 files have unknown license. Detailed output of licensecheck: Unknown or generated -------------------- perl-BSSolv-0.01/BSSolv.pm perl-BSSolv-0.01/BSSolv.xs [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. [-]: 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 10240 bytes in 1 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]: Package requires other packages for directories it uses. [x]: Package must own all directories that it creates. [x]: Package does not own files or directories owned by other packages. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package do not use a name that already exist [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local Perl: [x]: Package contains the mandatory BuildRequires and Requires:. ===== SHOULD items ===== Generic: [!]: Uses parallel make %{?_smp_mflags} macro. [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). [x]: Package functions as described. [!]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: SourceX tarball generation or download is documented. Note: Package contains tarball without URL, check comments [x]: 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]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: Dist tag is present (not strictly required in GL). [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. Rpmlint ------- Checking: perl-BSSolv-0.01-2.git1e18c32.fc21.i686.rpm perl-BSSolv-0.01-2.git1e18c32.fc21.src.rpm perl-BSSolv.i686: E: explicit-lib-dependency libsolv perl-BSSolv.src:7: W: macro-in-comment %{gitrev} perl-BSSolv.src: W: invalid-url Source0: BSSolv-0.01-git1e18c32.tar.gz 2 packages and 0 specfiles checked; 1 errors, 2 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint perl-BSSolv perl-BSSolv.i686: E: explicit-lib-dependency libsolv 1 packages and 0 specfiles checked; 1 errors, 0 warnings. # echo 'rpmlint-done:' Requires -------- perl-BSSolv (rpmlib, GLIBC filtered): libc.so.6 liblzma.so.5 libperl.so.5.18 libsolv libsolv.so.0 libsolv.so.0(SOLV_1.0) libsolvext.so.0 libsolvext.so.0(SOLV_1.0) libz.so.1 perl(:MODULE_COMPAT_5.18.2) perl(Exporter) perl(XSLoader) perl(strict) rtld(GNU_HASH) Provides -------- perl-BSSolv: perl(BSSolv) perl(BSSolv::repo) perl-BSSolv perl-BSSolv(x86-32) Unversioned so-files -------------------- perl-BSSolv: /usr/lib/perl5/vendor_perl/auto/BSSolv/BSSolv.so Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13 Command line :/usr/bin/fedora-review -rvn perl-BSSolv-0.01-2.git1e18c32.fc20.src.rpm Buildroot used: fedora-rawhide-i386 Active plugins: Generic, Shell-api, Perl Disabled plugins: Java, C/C++, Python, fonts, SugarActivity, Ocaml, Haskell, R, PHP, Ruby Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG
Hi, Please: - Use parallel make %{?_smp_mflags} macro. - Remove explicit dependency libsolv Others are fine.
Fixed: SPEC: http://data-strzibny.rhcloud.com/perl-BSSolv.spec SRPM: http://data-strzibny.rhcloud.com/perl-BSSolv-0.01-3.git1e18c32.fc21.src.rpm
You can drop Group tag as it's not useful now. However it's your choice. PACKAGE APPROVED.
This package is far from being clean and should never have been approved. * MUSTFIX: Missing BRs: perl(Exporter) perl(XSLoader) perl(strict) * MUSTFIX: Wrong License The spec file tells License: BSD The README inside of the tarball tells "Same as Perl" == GPL or Artistic * Superflous BR: cmake The package does not seem to use cmake anywhere. * Superflous BR: rpm-devel I do not see any dependency on anything from rpm-devel * MUSTFIX: Missing BR: libsolv-devel The package links against libsolv.so and libsolvext.so * MUSTFIX: Missing BR: perl-devel The package links against libperl.so
(In reply to Ralf Corsepius from comment #9) > This package is far from being clean and should never have been approved. > > * MUSTFIX: Missing BRs: > perl(Exporter) > perl(XSLoader) > perl(strict) Requires -------- perl-BSSolv (rpmlib, GLIBC filtered): libc.so.6 liblzma.so.5 libperl.so.5.18 libsolv.so.0 libsolv.so.0(SOLV_1.0) libsolvext.so.0 libsolvext.so.0(SOLV_1.0) libz.so.1 perl(:MODULE_COMPAT_5.18.2) perl(Exporter) perl(XSLoader) perl(strict) rtld(GNU_HASH) > * MUSTFIX: Wrong License > The spec file tells License: BSD > The README inside of the tarball tells "Same as Perl" == GPL or Artistic My bad, looks like they haven't added any license header. > * Superflous BR: cmake > The package does not seem to use cmake anywhere. > > * Superflous BR: rpm-devel > I do not see any dependency on anything from rpm-devel These 2 above are superflous, please remove. > * MUSTFIX: Missing BR: libsolv-devel > The package links against libsolv.so and libsolvext.so I think it had been added. > * MUSTFIX: Missing BR: perl-devel > The package links against libperl.so I can't see any regarding perl-devel, all except a note: https://fedoraproject.org/wiki/Packaging:Perl#Perl_Requires_and_Provides "Do not explicitly buildrequire "perl-devel" Explicitly requiring perl-devel, even when wrapped in a conditional construct, is strongly discouraged, and is generally considered a blocker at review and a packaging bug. Instead, see the next section on requiring core modules -- making sure that these core modules are BR'ed when used will pull in the correct development perl packages." I'd like to see some details here.
(In reply to Christopher Meng from comment #10) > (In reply to Ralf Corsepius from comment #9) > > This package is far from being clean and should never have been approved. > > > > * MUSTFIX: Missing BRs: > > perl(Exporter) > > perl(XSLoader) > > perl(strict) > > Requires BuildRequires!!! > perl(Exporter) > perl(XSLoader) > perl(strict) Right, that's the reason why they must also be BR'ed. The package would fail running during building (e.g. when running tests) if these are not present. > > * MUSTFIX: Missing BR: libsolv-devel > > The package links against libsolv.so and libsolvext.so > > I think it had been added. You are right, I missed it in this spec file's clutter. And while we're at it - This also doesn't make sense: BuildRequires: libdb4-devel ... %if 0%{?rhel_version} || 0%{?centos_version} BuildRequires: db4-devel %endif ... The second BuildRequires: db4-devel is redundant to the first one. > > * MUSTFIX: Missing BR: perl-devel > > The package links against libperl.so > > I can't see any regarding perl-devel, all except a note: ... > "Do not explicitly buildrequire "perl-devel" That's what I consider a bug in the FPG and in perl's packaging. But OK, then lets table this issue for now and stay with BR: perl
Thanks for the valuable comments, I will go through them and fix the spec. It's my first Perl package so I want to make it right. I have one question: > * MUSTFIX: Missing BRs: > perl(Exporter) > perl(XSLoader) > perl(strict) There are no tests and the module is not run during build so I don't believe they are required.
(In reply to Josef Stribny from comment #12) > Thanks for the valuable comments, I will go through them and fix the spec. > It's my first Perl package so I want to make it right. > > I have one question: > > > * MUSTFIX: Missing BRs: > > perl(Exporter) > > perl(XSLoader) > > perl(strict) > > There are no tests and the module is not run during build ... which is bad enough. > so I don't believe > they are required. You have a point and I have to row back (half) The point in duplicating R:'s to BRs is to detect future run-time-dependency breakages at build-time. In this case, perl(Exporter) and perl(XSLoader) are indirect dependencies, which are indirectly being pulled by building *.xs->*.o compilation and indirectly provided through the *.xs->*.o compilation infrastructure. I.e. if perl(Exporter)/perl(XSLoader) are missing at buildtime the package would fail running a test-suite, if these where removed from the run-time environment, installation would fail. As this package doesn't run a test-suite, BR: perl(Exporter)/perl(XSLoader) can be ignored in this case. perl(strict) is a bit different: It is a direct dependency of SSolv-0.01-git1e18c32/BSSolv.pm:3:use strict; I.e. it is required to be BR:'ed.
Thank you for the explanation. I fixed the issues (licence, redundant BRs, ..): SPEC: http://data-strzibny.rhcloud.com/perl-BSSolv.spec SRPM: http://data-strzibny.rhcloud.com/perl-BSSolv-0.01-4.git1e18c32.fc21.src.rpm
New Package SCM Request ======================= Package Name: perl-BSSolv Short Description: A new approach to package dependency solving Owners: jstribny Branches: f20 InitialCC:
Git done (by process-git-requests).