Bug 847504

Summary: Review Request: rubygem-scoped_search - Easily search you ActiveRecord models
Product: [Fedora] Fedora Reporter: Miroslav Suchý <msuchy>
Component: Package ReviewAssignee: Vít Ondruch <vondruch>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bleanhar, notting, package-review, vondruch
Target Milestone: ---Flags: vondruch: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-12-12 00:14:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Miroslav Suchý 2012-08-12 11:48:08 UTC
Spec URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search.spec
SRPM URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search-2.3.7-5.fc17.src.rpm
Description: 
Scoped search makes it easy to search your ActiveRecord-based models.
It will create a named scope :search_for that can be called with a query
string. It will build an SQL query using
the provided query string and a definition that specifies on what fields to
search. Because the functionality is
built on named_scope, the result of the search_for call can be used like any
other named_scope, so it can be
chained with another scope or combined with will_paginate.
Because it uses standard SQL, it does not require any setup, indexers or
daemons. This makes scoped_search
suitable to quickly add basic search functionality to your application with
little hassle. On the other hand,
it may not be the best choice if it is going to be used on very large datasets
or by a large user base.


Fedora Account System Username: msuchy

$ rpmlint /tmp/tito-build/rubygem-scoped_search-2.3.7-6.fc17.src.rpm /tmp/tito-build/noarch/rubygem-scoped_search-2.3.7-6.fc17.noarch.rpm /tmp/tito-build/noarch/rubygem-scoped_search-doc-2.3.7-6.fc17.noarch.rpm
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/set%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/infix%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/numerical%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/prefix%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/LeafNode/eql%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/date%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/textual%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/temporal%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/register_named_scope%21-i.ri %21
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.ri %5b
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.ri %5d
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/Object/register_complete_for%21-i.ri %21
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/datetime%3f-i.ri %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/share/gems/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/eql%3f-i.ri %3f
3 packages and 0 specfiles checked; 0 errors, 14 warnings.

Koji scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4380408

Comment 1 Brenton Leanhardt 2012-08-14 13:58:04 UTC
Hi Miroslav,

I would like to perform an informal review as part of my sponsorship process.

The main issue fedora-review found was:

[!]: EXTRA Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see attached
     diff).

It just looks like the specfile in the SRPM is missing your latest chmod fix.  On a related not it would be great to create a bug upstream about the executable bit being set on scoped_search.rb and add a link in this specfile.  That way it can be removed when it's finally fixed.

[!]: MUST Gem package must exclude cached Gem.
See: http://fedoraproject.org/wiki/Packaging:Ruby

Other suggestions are:

[!]: SHOULD Test suite of the library should be run.

For what it's worth I'm running fedora-review-0.2.2-1 from the fedora testing repo (there was a bugfix I needed).  Here's the full output:

Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[!]: EXTRA Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see attached
     diff).
[ ]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[ ]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[ ]: MUST Package contains no bundled libraries.
[ ]: MUST Changelog in prescribed format.
[ ]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[ ]: MUST Macros in Summary, %description expandable at SRPM build time.
[ ]: MUST Package contains desktop file if it is a GUI application.
[ ]: MUST Development files must be in a -devel package
[ ]: MUST Package requires other packages for directories it uses.
[ ]: MUST Package uses nothing in %doc for runtime.
[ ]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[ ]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[ ]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST 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.
[!]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
[ ]: MUST License file installed when any subpackage combination is installed.
[ ]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[ ]: MUST Package is named according to the Package Naming Guidelines.
[ ]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[ ]: MUST Package obeys FHS, except libexecdir and /usr/target.
[ ]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: MUST Package must own all directories that it creates.
[ ]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[ ]: MUST Package is not relocatable.
[ ]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[ ]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[ ]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL5 is required
[ ]: SHOULD If the source package does not include license text(s) as a
     separate file from upstream, the packager SHOULD query upstream to
     include it.
[!]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[ ]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: SHOULD Package functions as described.
[ ]: SHOULD Latest version is packaged.
[ ]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX tarball generation or download is documented.
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0 (scoped_search-2.3.7.gem)
[x]: SHOULD SourceX is a working URL.
[ ]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[ ]: SHOULD %check is present and all tests pass.
[ ]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.


==== Language ====
[x]: MUST Gem package must not define a non-gem subpackage
[!]: MUST Gem package must exclude cached Gem.
[ ]: MUST Platform dependent files must all go under %{gem_extdir}, platform
     independent under %{gem_dir}.
[x]: MUST Gem package is named rubygem-%{gem_name}
[x]: MUST Package contains BuildRequires: rubygems-devel.
[x]: MUST Gem package must define %{gem_name} macro.
[x]: MUST Pure Ruby package must be built as noarch
[x]: MUST Package contains Requires: ruby(abi).
[!]: SHOULD Specfile should utilize macros from rubygem-devel package.
     Note: The specfile doesn't use these macros: %exclude %{gem_cache},
     %{gem_libdir}
[x]: SHOULD Test suite should not be run by rake.
[!]: SHOULD Test suite of the library should be run.

Issues:
[!]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames
[!]: MUST Gem package must exclude cached Gem.
See: http://fedoraproject.org/wiki/Packaging:Ruby

Rpmlint
-------
Checking: rubygem-scoped_search-2.3.7-5.fc16.noarch.rpm
          rubygem-scoped_search-2.3.7-5.fc16.src.rpm
          rubygem-scoped_search-doc-2.3.7-5.fc16.noarch.rpm
rubygem-scoped_search.noarch: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases
rubygem-scoped_search.noarch: E: script-without-shebang /usr/lib/ruby/gems/1.8/gems/scoped_search-2.3.7/lib/scoped_search.rb
rubygem-scoped_search.src: W: spelling-error %description -l en_US datasets -> data sets, data-sets, databases
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/textual%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/infix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/datetime%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/prefix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/register_named_scope%21-i.yaml %21
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/date%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/numerical%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/temporal%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/eql%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/set%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5b
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5d
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/LeafNode/eql%3f-i.yaml %3f
3 packages and 0 specfiles checked; 1 errors, 15 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint rubygem-scoped_search-doc
rubygem-scoped_search-doc.noarch: I: enchant-dictionary-not-found en_US
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/textual%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/infix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/datetime%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/prefix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/register_named_scope%21-i.yaml %21
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/date%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/numerical%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/temporal%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/eql%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/set%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5b
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5d
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/LeafNode/eql%3f-i.yaml %3f
1 packages and 0 specfiles checked; 0 errors, 13 warnings.
# echo 'rpmlint-done:'

Diff spec file in url and in SRPM
---------------------------------
--- /home/rpmbuild/rpmbuild/SPECS/rubygem-scoped_search.spec	2012-08-12 07:45:51.000000000 -0400
+++ /home/rpmbuild/rpmbuild/SPECS/rubygem-scoped_search/srpm-unpacked/rubygem-scoped_search.spec	2012-08-14 09:40:13.589053075 -0400
@@ -12,5 +12,5 @@
 
 Version: 2.3.7
-Release: 6%{dist}
+Release: 5%{dist}
 Group: Development/Languages
 License: MIT
@@ -46,5 +46,5 @@
 suitable to quickly add basic search functionality to your application with
 little hassle. On the other hand,
-it may not be the best choice if it is going to be used on very large data sets
+it may not be the best choice if it is going to be used on very large datasets
 or by a large user base.
 
@@ -81,5 +81,4 @@
 cp -a ./%{gem_dir}/* %{buildroot}%{gem_dir}/
 mv %{buildroot}%{gem_instdir}/{LICENSE,README.rdoc} ./
-chmod a-x %{buildroot}%{gem_instdir}/lib/scoped_search.rb
 
 %files
@@ -101,8 +100,4 @@
 
 %changelog
-* Sun Aug 12 2012 Miroslav Suchý <msuchy> 2.3.7-6
-- fix spelling error (msuchy)
-- module scoped_search.rb should not be executable (msuchy)
-
 * Sun Aug 12 2012 Miroslav Suchý <msuchy> 2.3.7-5
 - buildroot is not needed (msuchy)
Requires
--------
rubygem-scoped_search-2.3.7-5.fc16.noarch.rpm (rpmlib, GLIBC filtered):
    
    ruby(abi) = 1.8
    rubygem-activerecord >= 2.1.0
    rubygems  

rubygem-scoped_search-doc-2.3.7-5.fc16.noarch.rpm (rpmlib, GLIBC filtered):
    
    rubygem-scoped_search = 2.3.7-5.fc16

Provides
--------
rubygem-scoped_search-2.3.7-5.fc16.noarch.rpm:
    
    rubygem(scoped_search) = 2.3.7
    rubygem-scoped_search = 2.3.7-5.fc16

rubygem-scoped_search-doc-2.3.7-5.fc16.noarch.rpm:
    
    rubygem-scoped_search-doc = 2.3.7-5.fc16

MD5-sum check
-------------
https://rubygems.org/downloads/scoped_search-2.3.7.gem :
  CHECKSUM(SHA256) this package     : aa90bdb48c2a33321b90368a5634ed9a35f0cf385b147557a2bce77eb35e04c4
  CHECKSUM(SHA256) upstream package : aa90bdb48c2a33321b90368a5634ed9a35f0cf385b147557a2bce77eb35e04c4


Generated by fedora-review 0.2.2 (9f8c0e5) last change: 2012-08-09
Command line :/usr/bin/fedora-review -n rubygem-scoped_search
External plugins:

Comment 2 Brenton Leanhardt 2012-08-14 13:59:46 UTC
Also, it's not a blocker but if you could format the %description properly it would make it a little easier to read.

Comment 3 Brenton Leanhardt 2012-08-14 14:12:15 UTC
Also, it's technically more correct to use the dist tag like this:

Release: 6%{?dist}

See https://fedoraproject.org/wiki/Packaging/DistTag for more details.  That will also make the fedora-review check pass.

Comment 4 Miroslav Suchý 2012-08-14 14:48:31 UTC
Spec URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search.spec
SRPM URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search-2.3.7-7.fc17.src.rpm

The problems with diff was caused by me. I updated to -6, but forgot to updte this BZ. So while spec was from -6, the src.rpm was still -5. Mea culpa.

Thanks for noticing that issue with dist tag, I did not catch it.

I rewraped that %description.

And I removed that gemcache. I disagree with that. But guidelines really say MUST, so I will start discussion on fedora-devel about. Removed for now.

I do not run test suite, because I was unable to run it on Fedora. The gem itself is working (we use it every day), but the tests are borked. I may address it later, but for now I'm putting it on back burner.

Comment 5 Brenton Leanhardt 2012-08-14 15:05:03 UTC
The specfile looks great.  I understand the issue with the tests and I don't consider it a blocker.  It would be nice to add a link to the chmod line though.  That really helps people in the future know when that line is no longer needed and simplifies maintenance in the future.  For my packages I had similar issues and I just linked to a github pull request.

The fedora-review output looks pretty flawless so hopefully when you can find someone in the packaging group this will move along quickly.

Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[ ]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[ ]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[ ]: MUST Package contains no bundled libraries.
[ ]: MUST Changelog in prescribed format.
[ ]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[ ]: MUST Macros in Summary, %description expandable at SRPM build time.
[ ]: MUST Package contains desktop file if it is a GUI application.
[ ]: MUST Development files must be in a -devel package
[ ]: MUST Package requires other packages for directories it uses.
[ ]: MUST Package uses nothing in %doc for runtime.
[ ]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[ ]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[ ]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST 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.
[!]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
[ ]: MUST License file installed when any subpackage combination is installed.
[ ]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[ ]: MUST Package is named according to the Package Naming Guidelines.
[ ]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[ ]: MUST Package obeys FHS, except libexecdir and /usr/target.
[ ]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: MUST Package must own all directories that it creates.
[ ]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[ ]: MUST Package is not relocatable.
[ ]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[ ]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[ ]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL5 is required
[ ]: SHOULD 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]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[ ]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: SHOULD Package functions as described.
[ ]: SHOULD Latest version is packaged.
[ ]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX tarball generation or download is documented.
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0 (scoped_search-2.3.7.gem)
[x]: SHOULD SourceX is a working URL.
[ ]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[ ]: SHOULD %check is present and all tests pass.
[ ]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.


==== Language ====
[x]: MUST Gem package must not define a non-gem subpackage
[x]: MUST Gem package must exclude cached Gem.
[ ]: MUST Platform dependent files must all go under %{gem_extdir}, platform
     independent under %{gem_dir}.
[x]: MUST Gem package is named rubygem-%{gem_name}
[x]: MUST Package contains BuildRequires: rubygems-devel.
[x]: MUST Gem package must define %{gem_name} macro.
[x]: MUST Pure Ruby package must be built as noarch
[x]: MUST Package contains Requires: ruby(abi).
[!]: SHOULD Specfile should utilize macros from rubygem-devel package.
     Note: The specfile doesn't use these macros: %{gem_libdir}, %exclude
     %{gem_cache}
[x]: SHOULD Test suite should not be run by rake.
[!]: SHOULD Test suite of the library should be run.

Issues:
[!]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames

Rpmlint
-------
Checking: rubygem-scoped_search-doc-2.3.7-7.fc16.noarch.rpm
          rubygem-scoped_search-2.3.7-7.fc16.noarch.rpm
          rubygem-scoped_search-2.3.7-7.fc16.src.rpm
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/textual%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/infix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/datetime%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/prefix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/register_named_scope%21-i.yaml %21
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/date%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/numerical%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/temporal%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/eql%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/set%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5b
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5d
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/LeafNode/eql%3f-i.yaml %3f
3 packages and 0 specfiles checked; 0 errors, 13 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint rubygem-scoped_search
rubygem-scoped_search.noarch: I: enchant-dictionary-not-found en_US
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
# echo 'rpmlint-done:'

Requires
--------
rubygem-scoped_search-doc-2.3.7-7.fc16.noarch.rpm (rpmlib, GLIBC filtered):
    
    rubygem-scoped_search = 2.3.7-7.fc16

rubygem-scoped_search-2.3.7-7.fc16.noarch.rpm (rpmlib, GLIBC filtered):
    
    ruby(abi) = 1.8
    rubygem-activerecord >= 2.1.0
    rubygems  

Provides
--------
rubygem-scoped_search-doc-2.3.7-7.fc16.noarch.rpm:
    
    rubygem-scoped_search-doc = 2.3.7-7.fc16

rubygem-scoped_search-2.3.7-7.fc16.noarch.rpm:
    
    rubygem(scoped_search) = 2.3.7
    rubygem-scoped_search = 2.3.7-7.fc16

MD5-sum check
-------------
https://rubygems.org/downloads/scoped_search-2.3.7.gem :
  CHECKSUM(SHA256) this package     : aa90bdb48c2a33321b90368a5634ed9a35f0cf385b147557a2bce77eb35e04c4
  CHECKSUM(SHA256) upstream package : aa90bdb48c2a33321b90368a5634ed9a35f0cf385b147557a2bce77eb35e04c4


Generated by fedora-review 0.2.2 (9f8c0e5) last change: 2012-08-09
Command line :/usr/bin/fedora-review -n rubygem-scoped_search
External plugins:

Comment 6 Brenton Leanhardt 2012-08-14 15:06:13 UTC
I actually just noticed a typo.  "Easily search you ActiveRecord models" should be "Easily search your ActiveRecord models".  It needs to be fixed in the spec too.

Comment 7 Miroslav Suchý 2012-08-14 15:18:16 UTC
I fixed that typo.

And I add comment pointing to github issue.

Spec URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search.spec
SRPM URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search-2.3.7-8.fc17.src.rpm

Comment 8 Brenton Leanhardt 2012-08-14 15:28:48 UTC
Looks great.  Thanks for the prompt fixes!

I manually verified the License is indeed correct.  Here's the fedora-review output:

==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[ ]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[ ]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[ ]: MUST Package contains no bundled libraries.
[ ]: MUST Changelog in prescribed format.
[ ]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[ ]: MUST Macros in Summary, %description expandable at SRPM build time.
[ ]: MUST Package contains desktop file if it is a GUI application.
[ ]: MUST Development files must be in a -devel package
[ ]: MUST Package requires other packages for directories it uses.
[ ]: MUST Package uses nothing in %doc for runtime.
[ ]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[ ]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[ ]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST 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.
[!]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
[ ]: MUST License file installed when any subpackage combination is installed.
[ ]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[ ]: MUST Package is named according to the Package Naming Guidelines.
[ ]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[ ]: MUST Package obeys FHS, except libexecdir and /usr/target.
[ ]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: MUST Package must own all directories that it creates.
[ ]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[ ]: MUST Package is not relocatable.
[ ]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[ ]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[ ]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL5 is required
[ ]: SHOULD 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]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[ ]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: SHOULD Package functions as described.
[ ]: SHOULD Latest version is packaged.
[ ]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX tarball generation or download is documented.
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0 (scoped_search-2.3.7.gem)
[x]: SHOULD SourceX is a working URL.
[ ]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[ ]: SHOULD %check is present and all tests pass.
[ ]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.


==== Language ====
[x]: MUST Gem package must not define a non-gem subpackage
[x]: MUST Gem package must exclude cached Gem.
[ ]: MUST Platform dependent files must all go under %{gem_extdir}, platform
     independent under %{gem_dir}.
[x]: MUST Gem package is named rubygem-%{gem_name}
[x]: MUST Package contains BuildRequires: rubygems-devel.
[x]: MUST Gem package must define %{gem_name} macro.
[x]: MUST Pure Ruby package must be built as noarch
[x]: MUST Package contains Requires: ruby(abi).
[!]: SHOULD Specfile should utilize macros from rubygem-devel package.
     Note: The specfile doesn't use these macros: %exclude %{gem_cache},
     %{gem_libdir}
[x]: SHOULD Test suite should not be run by rake.
[!]: SHOULD Test suite of the library should be run.

Issues:
[!]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames

Rpmlint
-------
Checking: rubygem-scoped_search-2.3.7-8.fc16.noarch.rpm
          rubygem-scoped_search-2.3.7-8.fc16.src.rpm
          rubygem-scoped_search-doc-2.3.7-8.fc16.noarch.rpm
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/textual%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/infix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/datetime%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/prefix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/register_named_scope%21-i.yaml %21
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/date%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/numerical%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/temporal%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/eql%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/set%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5b
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5d
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/LeafNode/eql%3f-i.yaml %3f
3 packages and 0 specfiles checked; 0 errors, 13 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint rubygem-scoped_search-doc
rubygem-scoped_search-doc.noarch: I: enchant-dictionary-not-found en_US
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/textual%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/infix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/datetime%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/prefix%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/register_named_scope%21-i.yaml %21
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/date%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/numerical%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/temporal%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/eql%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/Definition/Field/set%3f-i.yaml %3f
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5b
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/OperatorNode/%5b%5d-i.yaml %5d
rubygem-scoped_search-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/scoped_search-2.3.7/ri/ScopedSearch/QueryLanguage/AST/LeafNode/eql%3f-i.yaml %3f
1 packages and 0 specfiles checked; 0 errors, 13 warnings.
# echo 'rpmlint-done:'

Requires
--------
rubygem-scoped_search-2.3.7-8.fc16.noarch.rpm (rpmlib, GLIBC filtered):
    
    ruby(abi) = 1.8
    rubygem-activerecord >= 2.1.0
    rubygems  

rubygem-scoped_search-doc-2.3.7-8.fc16.noarch.rpm (rpmlib, GLIBC filtered):
    
    rubygem-scoped_search = 2.3.7-8.fc16

Provides
--------
rubygem-scoped_search-2.3.7-8.fc16.noarch.rpm:
    
    rubygem(scoped_search) = 2.3.7
    rubygem-scoped_search = 2.3.7-8.fc16

rubygem-scoped_search-doc-2.3.7-8.fc16.noarch.rpm:
    
    rubygem-scoped_search-doc = 2.3.7-8.fc16

MD5-sum check
-------------
https://rubygems.org/downloads/scoped_search-2.3.7.gem :
  CHECKSUM(SHA256) this package     : aa90bdb48c2a33321b90368a5634ed9a35f0cf385b147557a2bce77eb35e04c4
  CHECKSUM(SHA256) upstream package : aa90bdb48c2a33321b90368a5634ed9a35f0cf385b147557a2bce77eb35e04c4


Generated by fedora-review 0.2.2 (9f8c0e5) last change: 2012-08-09
Command line :/usr/bin/fedora-review -vvv -n rubygem-scoped_search
External plugins:

Comment 9 Brenton Leanhardt 2012-08-14 18:22:28 UTC
My sponsor reminded me that I needed to manually verify all remaining items.  I found 0 blocking issues.  My recommendations are below.  I would approve this package.


==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[-]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[-]: MUST Macros in Summary, %description expandable at SRPM build time.
[-]: MUST Package contains desktop file if it is a GUI application.
[-]: MUST Development files must be in a -devel package
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[x]: MUST Package complies to the Packaging Guidelines
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[x]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST 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]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.

Checked manually

[x]: MUST License file installed when any subpackage combination is installed.
[x]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.

Upstream uses the underscore so my interpretation of this is that
rubygem-scoped_search is OK.

[x]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[-]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL5 is required
[-]: SHOULD 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]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX tarball generation or download is documented.
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0 (scoped_search-2.3.7.gem)

This is not the custom for rubygems.

[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[-]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[-]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.


==== Language ====
[x]: MUST Gem package must not define a non-gem subpackage
[x]: MUST Gem package must exclude cached Gem.
[-]: MUST Platform dependent files must all go under %{gem_extdir}, platform
     independent under %{gem_dir}.
[x]: MUST Gem package is named rubygem-%{gem_name}
[x]: MUST Package contains BuildRequires: rubygems-devel.
[x]: MUST Gem package must define %{gem_name} macro.
[x]: MUST Pure Ruby package must be built as noarch
[x]: MUST Package contains Requires: ruby(abi).
[!]: SHOULD Specfile should utilize macros from rubygem-devel package.
     Note: The specfile doesn't use these macros: %exclude %{gem_cache},
     %{gem_libdir}

You can use these at your discretion.  "%exclude %{gem_cache}" was actually new
to me.

[x]: SHOULD Test suite should not be run by rake.
[!]: SHOULD Test suite of the library should be run.

We already discussed this.

Issues:
[!]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames

Verified manually

Comment 10 Vít Ondruch 2012-08-15 07:20:01 UTC
I'll take it for a review.

Brenton, thanks for your preliminary input.

Comment 11 Vít Ondruch 2012-08-15 08:34:10 UTC
* Source0 should use version macro
  - We are typically using

     "Source0: http://rubygems.org/gems/%{gem_name}-%{version}.gem"

    This will ease future updates.

* The dot files should be removed on different place IMO
  - This is minor nit, but you remove the dot files in %build section, while
    they should be removed in install section IMO or I personally prefer to
    %exclude them in %files section. Please consider change

* Exclude gem_cache
  - Again, this is matter of style, but I prefer to %exclude the gem_cache
    in %files section.
  - BTW it is not mandated by guidelines, just Fedora Review is too strict
    about it (see Bug 848283).

* Licence and Readme
  - I would keep the LICENSE and the README.rdoc on its original place,
    i.e. they would be referenced in %files section as a %{gem_instdir}/LICENSE
    and %{gem_instdir}/README.rdoc. This will save you the "mv" in install
    section and will keep your gem more aligned with other gems.

* Move files into -doc subpackage
  - the .gemspec is definitely not used in runtime and should be move into
    -doc subpackage
  - What about the init.rb? This is used when the gem would be somehow used
    as a Rails plugin. Not sure if that is somehow achievable.
  - Is there chance to call the tasks from the application which uses the
    library? If not, I would suggest to move tasks into -doc subpackage as well.

* Test suite
  - Please consider execution of test suite. It works, however there are
    several tweaks needed:

    BuildRequires: %{_bindir}/rspec
    BuildRequires: rubygem(activerecord)
    BuildRequires: rubygem(sqlite3)

    %check
    pushd .%{gem_instdir}
    # Get rid of Bundler, not needed on Fedora.
    sed -i "/require 'bundler\/setup'/ d" spec/spec_helper.rb
    # sqlite3-ruby and sqlite3 are identical rubygems, where the former is
    # older name for the gem. Would be nice if upstream support both
    # reincarnations.
    sed -i "s/sqlite3-ruby/sqlite3/" spec/database.yml
    rspec spec
    popd

  - Unfortunately, there remains one test failure. It seems to me that it might
    be change in API? Please discuss with upstream.

Comment 12 Miroslav Suchý 2012-08-15 09:50:07 UTC
Spec URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search.spec
SRPM URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search-2.3.7-10.fc17.src.rpm

I fixed that SOURCE0

I moved deletion of dot files to %install section

I excluded that gem for now, I started discussion about it on ruby-sig mailing list

I prefere to have LICENSE and README in /usr/share/doc/* as they are not need for runtime and all other package put these files in /usr/share/doc/*.
I know it one more line in %install, but I can live it. If it is blocker, I will remove it.

.gemspec to -doc  - done

init.rb to -doc - I hesitate. 
"init.rb: Runs everytime the Rails app is started. Useful for mixing-in a helper module so all your views can use it."
I think this is runtime thing.

ad test suite.
I added your code there, but commented for now. It fails misserably with 13 failures and lots deprecated warning on F17. I may later test it on rawhide.
But I would prefer to skip it for now.

Comment 13 Vít Ondruch 2012-08-15 11:10:52 UTC
(In reply to comment #12)
> I prefere to have LICENSE and README in /usr/share/doc/* as they are not
> need for runtime and all other package put these files in /usr/share/doc/*.
> I know it one more line in %install, but I can live it. If it is blocker, I
> will remove it.

Well, there is no other gem to my knowledge, which would move the files outside of their original locations, so if your package should be exceptional, so be it. It is up to you.

> 
> .gemspec to -doc  - done
> 
> init.rb to -doc - I hesitate. 
> "init.rb: Runs everytime the Rails app is started. Useful for mixing-in a
> helper module so all your views can use it."
> I think this is runtime thing.

Well, init.rb runs when you are using it as a Rails plugin, i.e. you will take the original code and place it into your applications vendor directory. If you are using the code as a gem, it has no meaning IMO. It even cannot get on load path, so there is no way how to use it. Moreover, if it would be possible to place it in the load path, it would be dangerous, because there would be more than one init.rb file and you could never know which one will be used.

But since it does not harm anybody or anything, I'll keep it up to you.

> ad test suite.
> I added your code there, but commented for now. It fails misserably with 13
> failures and lots deprecated warning on F17. I may later test it on rawhide.
> But I would prefer to skip it for now.

Testing it right now in F17 [1], I got only one error, pretty same as in Rawhide. So I would suggest to enable the test suite and consult the error with upstream.


[1] http://koji.fedoraproject.org/koji/taskinfo?taskID=4391927

Comment 14 Miroslav Suchý 2012-08-15 12:10:08 UTC
> Well, there is no other gem to my knowledge, which would move the files outside
> of their original locations, so if your package should be exceptional, so be
> it. It is up to you.

Just few statistics from my machine:
$ rpm -qal |grep LICENSE |grep -v /usr/share/doc|wc -l
145
$ rpm -qal |grep LICENSE |grep  /usr/share/doc|wc -l
631
$ rpm -qal |grep LICENSE |grep -v /usr/share/doc |grep /gems/|wc -l
57

So I would say rubygems are the exception. Anyway - I will ask FESCO to standardize this.

> Well, init.rb ...
You convinced me. Moving to -doc package

> ad test suite
Indeed. But that is only because in minimal Koji environment is run test against only one database. If you have more librearies installed, more test fails.
Anyway, will investigate it.

Comment 15 Vít Ondruch 2012-08-15 12:24:05 UTC
(In reply to comment #14)
> > Well, there is no other gem to my knowledge, which would move the files outside
> > of their original locations, so if your package should be exceptional, so be
> > it. It is up to you.
> 
> Just few statistics from my machine:
> $ rpm -qal |grep LICENSE |grep -v /usr/share/doc|wc -l
> 145
> $ rpm -qal |grep LICENSE |grep  /usr/share/doc|wc -l
> 631
> $ rpm -qal |grep LICENSE |grep -v /usr/share/doc |grep /gems/|wc -l
> 57
> 
> So I would say rubygems are the exception. Anyway - I will ask FESCO to
> standardize this.

I was always referring just to RubyGems. Other packages spread their files all over the place while gems keeps their files in one location. No problem to involve FESCo.

> > ad test suite
> Indeed. But that is only because in minimal Koji environment is run test
> against only one database. If you have more librearies installed, more test
> fails.
> Anyway, will investigate it.

Yes, minimal buildroot, that is what matters. More libraries means more DB adapters and that is not easy. I doubt that you will be successful to run the test suite against other databases, since their setup is typically a magnitude harder then setup sqlite3 DB.

Comment 16 Fedora Update System 2012-08-17 12:38:52 UTC
rubygem-transaction-simple-1.4.0.2-3.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/rubygem-transaction-simple-1.4.0.2-3.fc18

Comment 17 Fedora Update System 2012-08-17 12:39:45 UTC
rubygem-transaction-simple-1.4.0.2-3.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/rubygem-transaction-simple-1.4.0.2-3.el6

Comment 18 Fedora Update System 2012-08-17 12:41:41 UTC
rubygem-transaction-simple-1.4.0.2-3.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/rubygem-transaction-simple-1.4.0.2-3.fc16

Comment 19 Fedora Update System 2012-08-17 12:42:22 UTC
rubygem-transaction-simple-1.4.0.2-3.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/rubygem-transaction-simple-1.4.0.2-3.fc17

Comment 20 Miroslav Suchý 2012-08-17 12:45:25 UTC
Sorry for this spam, I accidentaly used in bodhi this BZ number. It is now edited to correct number 847457.

Comment 21 Miroslav Suchý 2012-10-30 15:42:06 UTC
Spec URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search.spec
SRPM URL: http://miroslav.suchy.cz/fedora/rubygem-scoped_search/rubygem-scoped_search-2.4.0-4.fc17.src.rpm

I rebased to new version. But even there is test failing. I reported it to upstream and disabled test with comment pointing to upstream issue tracker.

Comment 22 Vít Ondruch 2012-11-30 16:14:12 UTC
Hi Miroslav,

* Test suite
  Could you please enable the test suite? I see no test error in Rawhide
  (except fixing BR: %{_bindir}/rspec to BR: rubygem(rspec)

* Move files not needed for runtime into -doc
  - I would say that the following items might go into -doc subpackage:

    %{gem_instdir}/init.rb
    %{gem_instdir}/tasks

BTW the RHEL macros, it seems that  you are missing %{gem_libdir} definition.

I APPROVE the package, however, please fix the two issues mentioned above prior importing the package.

Comment 23 Miroslav Suchý 2012-12-03 19:41:24 UTC
Those test does not work on F16 and F17. It pass on F18 and F19. Changed spec accordingly.
BR fixed as well.
Thanks for review.

Comment 24 Miroslav Suchý 2012-12-03 19:45:02 UTC
New Package SCM Request
=======================
Package Name: rubygem-scoped_search
Short Description: Easily search your ActiveRecord models
Owners: msuchy
Branches: f18 f17 f16
InitialCC:

Comment 25 Gwyn Ciesla 2012-12-03 20:05:55 UTC
Git done (by process-git-requests).

Comment 26 Fedora Update System 2012-12-04 07:27:06 UTC
rubygem-scoped_search-2.4.0-5.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/rubygem-scoped_search-2.4.0-5.fc18

Comment 27 Fedora Update System 2012-12-04 07:28:04 UTC
rubygem-scoped_search-2.4.0-5.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/rubygem-scoped_search-2.4.0-5.fc17

Comment 28 Fedora Update System 2012-12-04 07:28:43 UTC
rubygem-scoped_search-2.4.0-5.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/rubygem-scoped_search-2.4.0-5.fc16

Comment 29 Fedora Update System 2012-12-04 21:09:17 UTC
rubygem-scoped_search-2.4.0-5.fc18 has been pushed to the Fedora 18 testing repository.

Comment 30 Fedora Update System 2012-12-12 00:14:27 UTC
rubygem-scoped_search-2.4.0-5.fc18 has been pushed to the Fedora 18 stable repository.

Comment 31 Fedora Update System 2012-12-13 05:50:38 UTC
rubygem-scoped_search-2.4.0-5.fc17 has been pushed to the Fedora 17 stable repository.

Comment 32 Fedora Update System 2012-12-13 05:52:01 UTC
rubygem-scoped_search-2.4.0-5.fc16 has been pushed to the Fedora 16 stable repository.