Spec URL: http://ktdreyer.fedorapeople.org/reviews/rubygem-geoip.spec SRPM URL: http://ktdreyer.fedorapeople.org/reviews/rubygem-geoip-1.2.2-1.fc20.src.rpm Description: GeoIP searches a GeoIP database for a given host or IP address, and returns information about the country where the IP address is allocated, and the city, ISP and other information, if you have that database version. Fedora Account System Username: ktdreyer $ rpmlint rubygem-geoip-1.2.2-1.fc20.src.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rawhide scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=5781852
Update to latest upstream: * Thu Sep 12 2013 Ken Dreyer <ktdreyer> - 1.3.0-1 - Update to 1.3.0 - Include LGPLv2+ license text Spec URL: http://ktdreyer.fedorapeople.org/reviews/rubygem-geoip.spec SRPM URL: http://ktdreyer.fedorapeople.org/reviews/rubygem-geoip-1.3.0-1.fc21.src.rpm
I will do the review of this package.
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= Please, fix or justify following issues. Then the package can be approved. Issues on fedora-review checklist (see the details below): [!]: Package must own all directories that it creates. [!]: Requires correct, justified where necessary. [!]: All build dependencies are listed in BuildRequires, except for any that [!]: Permissions on files are set properly. [!]: Final provides and requires are sane (see attachments). Other issues (maybe pedantic): [!]: Directive %exclude is usually used when the file is covered by other match in %files section. This is not the case. 'rm' can be used after %build or %install instead. [!]: The presence of tests in the -doc subpackage is IMHO wrong. I would leave them in the main package. ===== MUST items ===== 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. [x]: License file installed when any subpackage combination is installed. [!]: Package must own all directories that it creates. Directory '/usr/share/gems/doc' is not owned. In addition, i think the documentation should be placed somewhere else. [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. [!]: Requires correct, justified where necessary. There should be just (others are extra): Requires: ruby(release) Requires: rubygems [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Package is not known to require an ExcludeArch tag. [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. [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 requires other packages for directories it uses. [x]: Package does not own files or directories owned by other packages. [!]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. There should be just (others are extra): BuildRequires: rubygems-devel [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]: 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. [!]: Permissions on files are set properly. License file is installed as executable. I think the installation of geoip binary is cryptic. I do not like the combination of cp, find, xargs and chmod. I would prefer 'install -m 0755 ...'. But the result is fine, feel free to keep this as it is now. [-]: 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 [-]: 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. [x]: Packages must not store files under /srv, /opt or /usr/local Ruby: [x]: Platform dependent files must all go under %{gem_extdir_mri}, platform independent under %{gem_dir}. [x]: Gem package must not define a non-gem subpackage [x]: Macro %{gem_extdir} is deprecated. [x]: Gem package is named rubygem-%{gem_name} [x]: Package contains BuildRequires: rubygems-devel. [x]: Gem package must define %{gem_name} macro. [x]: Pure Ruby package must be built as noarch [x]: Package does not contain Requires: ruby(abi). [x]: Package contains Requires: ruby(release). ===== 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. [!]: Final provides and requires are sane (see attachments). Final provides are sane, but rubygem(name) should not be specified in Provides explicitly, it is generated by rpm. [x]: Package functions as described. [x]: Latest version is packaged. [-]: 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]: 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]: 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]: Fully versioned dependency in subpackages if applicable. [x]: SourceX tarball generation or download is documented. [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. Ruby: [x]: Gem should use %gem_install macro. [x]: Specfile should use macros from rubygem-devel package. [x]: Gem package should exclude cached Gem. [x]: Test suite of the library should be run. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. [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: rubygem-geoip-1.3.0-1.fc21.noarch.rpm rubygem-geoip-doc-1.3.0-1.fc21.noarch.rpm rubygem-geoip-1.3.0-1.fc21.src.rpm rubygem-geoip.noarch: E: script-without-shebang /usr/share/gems/gems/geoip-1.3.0/LICENSE rubygem-geoip.noarch: W: no-manual-page-for-binary geoip 3 packages and 0 specfiles checked; 1 errors, 1 warnings. Rpmlint (installed packages) ---------------------------- # rpmlint rubygem-geoip-doc rubygem-geoip rubygem-geoip.noarch: E: script-without-shebang /usr/share/gems/gems/geoip-1.3.0/LICENSE rubygem-geoip.noarch: W: no-manual-page-for-binary geoip 2 packages and 0 specfiles checked; 1 errors, 1 warnings. # echo 'rpmlint-done:' Requires -------- rubygem-geoip-doc (rpmlib, GLIBC filtered): rubygem-geoip rubygem-geoip (rpmlib, GLIBC filtered): /usr/bin/ruby ruby(release) ruby(rubygems) Provides -------- rubygem-geoip-doc: rubygem-geoip-doc rubygem-geoip: rubygem(geoip) rubygem-geoip Source checksums ---------------- https://rubygems.org/gems/geoip-1.3.0.gem : CHECKSUM(SHA256) this package : 235f8332706bebf05e444fec9d0764aaa72293650ffb0724a19326f1f643f763 CHECKSUM(SHA256) upstream package : 235f8332706bebf05e444fec9d0764aaa72293650ffb0724a19326f1f643f763 https://www.gnu.org/licenses/lgpl-2.1.txt : CHECKSUM(SHA256) this package : dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 CHECKSUM(SHA256) upstream package : dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 Generated by fedora-review 0.5.0 (920221d) last change: 2013-08-30 Command line :/bin/fedora-review -b 993482 Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Ruby, Shell-api Disabled plugins: Java, C/C++, Python, SugarActivity, Perl, R, PHP Disabled flags: EPEL5, EXARCH, DISTTAG
Thank you very much for the review. (In reply to Jan Včelák from comment #3) > [!]: Package must own all directories that it creates. > > Directory '/usr/share/gems/doc' is not owned. I think this may be a bug in fedora-review? I have seen this pop up on every gem I have created and reviewed. /usr/share/gems/doc is properly owned by a package ("yum whatprovides /usr/share/gems/doc" shows "rubygems"). > In addition, i think > the documentation should be placed somewhere else. Can you help me understand what you have in mind? I'm pretty sure this is where all gems place their documentation. > [!]: Requires correct, justified where necessary. > > There should be just (others are extra): > > Requires: ruby(release) > Requires: rubygems Thanks, I've filtered out /usr/bin/ruby in 1.3.0-2. > [!]: All build dependencies are listed in BuildRequires, except for any that > are listed in the exceptions section of Packaging Guidelines. > > There should be just (others are extra): > > BuildRequires: rubygems-devel This probably needs to be fixed in gem2rpm. I've removed the extra BuildRequires in 1.3.0-2. > [!]: Permissions on files are set properly. > > License file is installed as executable. Great catch. Fixed. > I think the installation of geoip binary is cryptic. I do not like > the combination of cp, find, xargs and chmod. I would prefer > 'install -m 0755 ...'. But the result is fine, feel free to keep this > as it is now. I agree that it's cryptic. I'll keep it as-is for the sake of consistency with other packages. But this probably needs to be fixed in gem2rpm. > [!]: Final provides and requires are sane (see attachments). > > Final provides are sane, but rubygem(name) should not be specified > in Provides explicitly, it is generated by rpm. I experimented with this, and I cannot make RPM generate the virtual provide. When I remove the explicit Provides: rubygem(name) in the .spec, and I check the resulting binary RPM with rpm -qp --provides, I just see rubygem-geoip, not rubygem(geoip). I think this is why gem2rpm puts this into the package. Here's the updated package: Diff: http://fedorapeople.org/cgit/ktdreyer/public_git/rubygem-geoip.git/commit/?id=5865ec8fb6094a6483e436a6d0c571ea56d7b682 Spec URL: http://ktdreyer.fedorapeople.org/reviews/rubygem-geoip.spec SRPM URL: http://ktdreyer.fedorapeople.org/reviews/rubygem-geoip-1.3.0-2.fc21.src.rpm Rawhide scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=5930798
> > [!]: Package must own all directories that it creates. > > > > Directory '/usr/share/gems/doc' is not owned. > > I think this may be a bug in fedora-review? I have seen this pop up on every > gem I have created and reviewed. /usr/share/gems/doc is properly owned by a > package ("yum whatprovides /usr/share/gems/doc" shows "rubygems"). /usr/share/gems/doc is provided by rubygems-doc, not rubygems. I'm not sure how 'yum whatprovides' work. http://pkgs.fedoraproject.org/cgit/rubygems.git/plain/rubygems.spec contains: %files doc %doc %{gem_dir}/doc So, this issue is really not fixed. > > In addition, i think > > the documentation should be placed somewhere else. > > Can you help me understand what you have in mind? I'm pretty sure this is > where all gems place their documentation. My fault. You are right. I have checked with other packages. > > [!]: Requires correct, justified where necessary. > > > > There should be just (others are extra): > > > > Requires: ruby(release) > > Requires: rubygems > > Thanks, I've filtered out /usr/bin/ruby in 1.3.0-2. Verified, OK. > > [!]: All build dependencies are listed in BuildRequires, except for any that > > are listed in the exceptions section of Packaging Guidelines. > > > > There should be just (others are extra): > > > > BuildRequires: rubygems-devel > > This probably needs to be fixed in gem2rpm. I've removed the extra > BuildRequires in 1.3.0-2. Verified, OK. > > [!]: Permissions on files are set properly. > > > > License file is installed as executable. > > Great catch. Fixed. Verified, OK. > > I think the installation of geoip binary is cryptic. I do not like > > the combination of cp, find, xargs and chmod. I would prefer > > 'install -m 0755 ...'. But the result is fine, feel free to keep this > > as it is now. > > I agree that it's cryptic. I'll keep it as-is for the sake of consistency > with other packages. But this probably needs to be fixed in gem2rpm. No problem, OK. > > [!]: Final provides and requires are sane (see attachments). > > > > Final provides are sane, but rubygem(name) should not be specified > > in Provides explicitly, it is generated by rpm. > > I experimented with this, and I cannot make RPM generate the virtual > provide. When I remove the explicit Provides: rubygem(name) in the .spec, > and I check the resulting binary RPM with rpm -qp --provides, I just see > rubygem-geoip, not rubygem(geoip). I think this is why gem2rpm puts this > into the package. You are right. You had it correctly. Again, I checked with other packages. To sum it up, one problem with unversioned doc directory is still present. Otherwise perfect. :-)
I've confirmed on the ruby-sig mailing list that /usr/share/gems/doc ought to be owned by the rubygems package. See bug 1008866. I think that takes care of the remaining issues for this package.
> I think that takes care of the remaining issues for this package. And you are right. I'm not aware of any other problems. The verdict is: ACCEPT
Thank you Jan very much! New Package SCM Request ======================= Package Name: rubygem-geoip Short Description: Search a GeoIP database for an IP address Owners: ktdreyer Branches: f19 f20 InitialCC: ruby-sig
Git done (by process-git-requests).
rubygem-geoip-1.3.0-2.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/rubygem-geoip-1.3.0-2.fc20
rubygem-geoip-1.3.0-2.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/rubygem-geoip-1.3.0-2.fc19
rubygem-geoip-1.3.0-2.fc19 has been pushed to the Fedora 19 testing repository.
rubygem-geoip-1.3.0-2.fc20 has been pushed to the Fedora 20 stable repository.
rubygem-geoip-1.3.0-2.fc19 has been pushed to the Fedora 19 stable repository.