Bug 742189
Summary: | Review Request: rubygem-webmock - Library for stubbing HTTP requests in Ruby | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Mo Morsi <mmorsi> |
Component: | Package Review | Assignee: | James Laska <jlaska> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | jlaska, jturner, notting, package-review, tdawson, vondruch |
Target Milestone: | --- | Flags: | jlaska:
fedora-review+
gwync: fedora-cvs+ |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | rubygem-webmock-1.7.6-2.fc16 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2011-10-25 03:23:00 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: | |||
Bug Depends On: | |||
Bug Blocks: | 743402 |
Description
Mo Morsi
2011-09-29 10:52:38 UTC
Taking review ownership. This is my first rubygem package review. I've done my best to apply the ruby packaging guidelines (https://fedoraproject.org/wiki/Packaging:Ruby). However, I'm not the authority on rubygem's, so we can certainly work through any issues raised. > [ WARN ] MUST: rpmlint must be run on every package rubygem-webmock.noarch: W: doc-file-dependency /usr/lib/ruby/gems/1.8/gems/webmock-1.7.6/Rakefile /usr/bin/env From rpmlint source ... '''An included file marked as %doc creates a possible additional dependency in the package. Usually, this is not wanted and may be caused by eg. example scripts with executable bits set included in the package's documentation.''' rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestSignature/eql%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HeadersPattern/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/put_data_with_webmock%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/NetHttpAdapter/const_defined%3f-c.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/allow_net_connect%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/delete_with_webmock%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/WebMockMatcher/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestPatternMatcher/does_not_match%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/URIStringPattern/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/post_body_with_webmock%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/CallbackRegistry/any_callbacks%3f-c.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/head%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/net_connect_allowed%3f-c.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/StubRegistry/reset%21-i.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/delete%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/head_with_webmock%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/TyphoeusAdapter/enable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/CurbAdapter/enable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/StubRegistry/registered_request%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestExecutionVerifier/does_not_match%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/MethodPattern/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/URIRegexpPattern/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/HTTPClientAdapter/disable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/post_body%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestRegistry/reset%21-i.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Response/exception%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestStub/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestSignature/url_encoded%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Response/body%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/NetHttpAdapter/enable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestStub/has_responses%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Response/%3d%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Response/%3d%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/TyphoeusAdapter/disabled%3f-c.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/TyphoeusAdapter/disable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/BodyPattern/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/NetHttpAdapter/disable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestPattern/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestPatternMatcher/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/CurbAdapter/disable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/disable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Response/headers%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/EmHttpRequestAdapter/enable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/registered_request%3f-c.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestSignature/headers%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/PatronAdapter/enable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/WebMockMatcher/does_not_match%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/disable_net_connect%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Util/HashKeysStringifier/stringify_keys%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/EmHttpRequestAdapter/disable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/ResponsesSequence/end%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Response/options%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/HTTPClientAdapter/enable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/is_uri_localhost%3f-c.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/HttpLibAdapters/PatronAdapter/disable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestExecutionVerifier/matches%3f-i.yaml %3f rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/reset%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/enable%21-c.yaml %21 rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/Response/status%3d-i.yaml %3d rubygem-webmock-doc.noarch: W: unexpanded-macro /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/Curl/WebMockCurlEasy/put_data%3d-i.yaml %3d 3 packages and 1 specfiles checked; 0 errors, 61 warnings. From rpmlint source ... '''This package contains a file whose path contains something that looks like an unexpanded macro; this is often the sign of a misspelling. Please check your specfile.''' > [ OK ] MUST: The package must be named according to the Package Naming > Guidelines > [ OK ] MUST: The spec file name must match the base package %{name} [...] > [ OK ] MUST: The package must meet the Packaging Guidelines > [ OK ] MUST: The package must be licensed with a Fedora approved license > and meet the Licensing Guidelines > [ FAIL ] MUST: The License field in the package spec file must match the > actual license The upstream LICENSE file seems to indicate MIT, does this need to be updated? https://github.com/bblimke/webmock/blob/master/LICENSE https://secure.wikimedia.org/wikipedia/en/wiki/MIT_License#License_terms > [ WARN ] 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 must be included in %doc Note, there are too many files listed as %doc. For example, the Rakefile probably shouldn't be a %doc. Maybe the same with other source code? %exclude %{geminstdir}/Rakefile > [ OK ] MUST: The spec file must be written in American English. > [ OK ] MUST: The spec file for the package MUST be legible. > [ OK ] MUST: The sources used to build the package must match the upstream > source, as provided in the spec URL. Reviewers should use md5sum for > this task. If no upstream URL can be specified for this package, > please see the Source URL Guidelines for how to deal with this. 5ff10679f8e2865471fc9f9ae80dd2c5 webmock-1.7.6.gem 5ff10679f8e2865471fc9f9ae80dd2c5 webmock-rpm-1.7.6.gem > [ OK ] MUST: The package MUST successfully compile and build into binary > rpms on at least one primary architecture Task info: http://koji.fedoraproject.org/koji/taskinfo?taskID=3394322 > [ NA ] MUST: If the package does not successfully compile, build or work on > an architecture, then those architectures should be listed in the > spec in ExcludeArch. Each architecture listed in ExcludeArch MUST > have a bug filed in bugzilla, describing the reason that the package > does not compile/build/work on that architecture. The bug number MUST > be placed in a comment, next to the corresponding ExcludeArch line > [ OK ] MUST: All build dependencies must be listed in BuildRequires, except > for any that are listed in the exceptions section of the Packaging > Guidelines ; inclusion of those as BuildRequires is optional. Apply > common sense. > [ NA ] MUST: The spec file MUST handle locales properly. This is done by > using the %find_lang macro. Using %{_datadir}/locale/* is strictly > forbidden > [ NA ] MUST: Every binary RPM package (or subpackage) which stores shared > library files (not just symlinks) in any of the dynamic linker's > default paths, must call ldconfig in %post and %postun. > [ NA ] MUST: If the package is designed to be relocatable, the packager must > state this fact in the request for review, along with the > rationalization for relocation of that specific package. Without > this, use of Prefix: /usr is considered a blocker. > [ OK ] MUST: A package must own all directories that it creates. If it does > not create a directory that it uses, then it should require a package > which does create that directory. > [ OK ] MUST: A package must not contain any duplicate files in the %files > listing. > [ FAIL ] MUST: Permissions on files must be set properly. Executables should > be set with executable permissions, for example. Every %files section > must include a %defattr(...) line. > [ NA ] MUST: Each package must have a %clean section, which contains rm -rf > %{buildroot} (or $RPM_BUILD_ROOT). No longer applies for F13 or newer > [ OK ] MUST: Each package must consistently use macros. > [ OK ] MUST: The package must contain code, or permissable content. > [ OK ] MUST: Large documentation files must go in a -doc subpackage. (The > definition of large is left up to the packager's best judgement, but > is not restricted to size. Large can refer to either size or > quantity). > [ OK ] MUST: If a package includes something as %doc, it must not affect the > runtime of the application. To summarize: If it is in %doc, the > program must run properly if it is not present. > [ OK ] MUST: Header files must be in a -devel package. > [ OK ] MUST: Static libraries must be in a -static package. > [ OK ] MUST: Packages containing pkgconfig(.pc) files must 'Requires: > pkgconfig' (for directory ownership and usability). > [ NA ] MUST: If a package contains library files with a suffix (e.g. > libfoo.so.1.1), then library files that end in .so (without suffix) > must go in a -devel package. > [ NA ] MUST: In the vast majority of cases, devel packages must require the > base package using a fully versioned dependency: Requires: %{name} = > %{version}-%{release} > [ NA ] MUST: Packages must NOT contain any .la libtool archives, these must > be removed in the spec if they are built. > [ NA ] MUST: Packages containing GUI applications must include a > %{name}.desktop file, and that file must be properly installed with > desktop-file-install in the %install section. If you feel that your > packaged GUI application does not need a .desktop file, you must put > a comment in the spec file with your explanation. > [ NA ] MUST: Packages must not own files or directories already owned by > other packages. The rule of thumb here is that the first package to > be installed should own the files or directories that other packages > may rely upon. This means, for example, that no package in Fedora > should ever share ownership with any of the files or directories > owned by the filesystem or man package. If you feel that you have a > good reason to own a file or directory that another package owns, > then please present that at package review time. > [ FAIL ] MUST: At the beginning of %install, each package MUST run rm -rf > %{buildroot} (or $RPM_BUILD_ROOT). Fixed, see http://fpaste.org/GNSM/ > [ OK ] MUST: All filenames in rpm packages must be valid UTF-8. == Ruby requirements == > [ OK ] - Each Ruby package must indicate the Ruby ABI version it depends on with a line like > [ OK ] - Pure Ruby packages must be built as noarch packages. > [ WARN ] - The Ruby library files in a pure Ruby package must be placed into Config::CONFIG["sitelibdir"] . The specfile must get that path using %{!?ruby_sitelib: %global ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"] ')} The specfile is using a different method for locating /usr/lib/ruby/*. Should it be using %{ruby_sitelib} instead? Or does this not apply since this is providing a rubygem? > [ NA ] - For packages with binary content, e.g., database drivers or any other Ruby bindings to C libraries, the package must be architecture specific. > [ OK ] - Packages that contain Ruby Gems must be called rubygem-%{gemname} where gemname is the name from the Gem's specification. > [ OK ] - The Source of the package must be the full URL to the released Gem archive; the version of the package must be the Gem's version Source0: http://rubygems.org/gems/%{gemname}-%{version}.gem > [ OK ] - The package must have a Requires and a BuildRequires on rubygems > [ OK ] - The package must provide rubygem(%{gemname}) where gemname is the name from the Gem's specification. For every dependency on a Gem named gemdep, the package must contain a Requires on rubygem(%{gemdep}) with the same version constraints as the Gem > [ WARN ] - The %prep and %build sections of the specfile should be empty. %build is empty, %prep is not ... I've adjusted per the ruby guidelines slightly. However this is a *should* requirement, not a *must*. > [ OK ] - The Gem must be installed into %{gemdir} defined as %global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) > [ FAIL ] - The install should be performed with the command 'gem install --local --install-dir %{buildroot}%{gemdir} --force %{SOURCE0}' This command is currently used in the %prep. I've adjusted slighty to accommodate the *should* requirement. Feel free to use if desired. http://fpaste.org/GNSM/ > [ OK ] - The package must own the following files and directories: %{gemdir}/gems/%{gemname}-%{version}/ %{gemdir}/cache/%{gemname}-%{version}.gem %{gemdir}/specifications/%{gemname}-%{version}.gemspec > [ NA ] - Architecture-specific content must not be installed into %{gemdir} > [ OK ] - If the Gem only contains pure Ruby code, it must be marked as BuildArch: noarch. If the Gem contains binary content (e.g., for a database driver), it must be marked as architecture specific, and all architecture specific content must be moved from the %{gemdir} to the [#ruby_sitearch %{ruby_sitearch} directory] during %install New Spec / SPRM: Spec URL: http://mo.morsi.org/files/rpms/rubygem-webmock.spec SRPM URL: http://mo.morsi.org/files/rpms/rubygem-webmock-1.7.6-2.fc15.src.rpm > rubygem-webmock.noarch: W: doc-file-dependency > /usr/lib/ruby/gems/1.8/gems/webmock-1.7.6/Rakefile /usr/bin/env > > From rpmlint source ... '''An included file marked as %doc creates a possible > additional dependency in the package. Usually, this is not wanted and may be > caused by eg. example scripts with executable bits set included in the > package's documentation.''' Fixed, unmarked Rakefile as doc. Also changed /usr/bin/env rake to /usr/bin/rake > > rubygem-webmock-doc.noarch: W: unexpanded-macro > /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestSignature/eql%3f-i.yaml > %3f > <snip> > > From rpmlint source ... '''This package contains a file whose path contains > something that looks like an unexpanded macro; this is often the sign of a > misspelling. Please check your specfile.''' > These can be ignored, they occur in any rubygem that ships ri documentation > > [ FAIL ] MUST: The License field in the package spec file must match the > > actual license > > The upstream LICENSE file seems to indicate MIT, does this need to be updated? > Fixed > Note, there are too many files listed as %doc. For example, the Rakefile > probably shouldn't be a %doc. Maybe the same with other source code? > > %exclude %{geminstdir}/Rakefile > Unmarked Rakefile as doc, the others are appropriately marked as doc (include tests and such) > > [ FAIL ] MUST: Permissions on files must be set properly. Executables should > > be set with executable permissions, for example. Every %files section > > must include a %defattr(...) line. This is no longer needed http://fedoraproject.org/wiki/Packaging/Guidelines#File_Permissions > > [ FAIL ] MUST: At the beginning of %install, each package MUST run rm -rf > > %{buildroot} (or $RPM_BUILD_ROOT). > > Fixed, see http://fpaste.org/GNSM/ > This is no longer needed / should not be present http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag > > [ WARN ] - The Ruby library files in a pure Ruby package must be placed into Config::CONFIG["sitelibdir"] . The specfile must get that path using %{!?ruby_sitelib: %global ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"] ')} > > The specfile is using a different method for locating /usr/lib/ruby/*. Should > it be using %{ruby_sitelib} instead? Or does this not apply since this is > providing a rubygem? > Yes according to the Fedora gem packaging guidelines, we define gemdir and geminstdir correctly http://fedoraproject.org/wiki/Packaging:Ruby#Ruby_Gems > > [ WARN ] - The %prep and %build sections of the specfile should be empty. > > %build is empty, %prep is not ... I've adjusted per the ruby guidelines > slightly. However this is a *should* requirement, not a *must*. > I would prefer to leave it as it is. The reason being if we ever have to patch the gem, the gem install needs to occur in the %prep section before we can run the %patch commands there as well. > > [ FAIL ] - The install should be performed with the command 'gem install --local --install-dir %{buildroot}%{gemdir} --force %{SOURCE0}' > > This command is currently used in the %prep. I've adjusted slighty to > accommodate the *should* requirement. Feel free to use if desired. > > http://fpaste.org/GNSM/ > Again would prefer to leave as is unless this is a major blocker. Thank you greatly for the review! (In reply to comment #2) > New Spec / SPRM: > > > Spec URL: http://mo.morsi.org/files/rpms/rubygem-webmock.spec > SRPM URL: > http://mo.morsi.org/files/rpms/rubygem-webmock-1.7.6-2.fc15.src.rpm $ rpmlint rubygem-webmock.spec rubygem-webmock-1.7.6-2.fc15.src.rpm rubygem-webmock-1.7.6-2.fc15.noarch.rpm rubygem-webmock-doc-1.7.6-2.fc15.noarch.rpm | grep -v "unexpanded-macro" 3 packages and 1 specfiles checked; 0 errors, 60 warnings. rpmlint looks good, excluding the 'unexpanded-macro' warning. > > rubygem-webmock.noarch: W: doc-file-dependency > > /usr/lib/ruby/gems/1.8/gems/webmock-1.7.6/Rakefile /usr/bin/env > > > > From rpmlint source ... '''An included file marked as %doc creates a possible > > additional dependency in the package. Usually, this is not wanted and may be > > caused by eg. example scripts with executable bits set included in the > > package's documentation.''' > > Fixed, unmarked Rakefile as doc. Also changed /usr/bin/env rake to > /usr/bin/rake Fix confirmed in latest spec/packages. > > rubygem-webmock-doc.noarch: W: unexpanded-macro > > /usr/lib/ruby/gems/1.8/doc/webmock-1.7.6/ri/WebMock/RequestSignature/eql%3f-i.yaml > > %3f > > <snip> > > > > From rpmlint source ... '''This package contains a file whose path contains > > something that looks like an unexpanded macro; this is often the sign of a > > misspelling. Please check your specfile.''' > > > > These can be ignored, they occur in any rubygem that ships ri documentation Agreed, just a warning and can be ignored. > > > [ FAIL ] MUST: The License field in the package spec file must match the > > > actual license > > > > The upstream LICENSE file seems to indicate MIT, does this need to be updated? > > > > Fixed Fix confirmed in latest spec/packages. > > Note, there are too many files listed as %doc. For example, the Rakefile > > probably shouldn't be a %doc. Maybe the same with other source code? > > > > %exclude %{geminstdir}/Rakefile > > > > Unmarked Rakefile as doc, the others are appropriately marked as doc (include > tests and such) Gotcha, thanks for explaining. > > > [ FAIL ] MUST: Permissions on files must be set properly. Executables should > > > be set with executable permissions, for example. Every %files section > > > must include a %defattr(...) line. > > This is no longer needed > > http://fedoraproject.org/wiki/Packaging/Guidelines#File_Permissions Thanks, I need to update my checklist. > > > [ FAIL ] MUST: At the beginning of %install, each package MUST run rm -rf > > > %{buildroot} (or $RPM_BUILD_ROOT). > > > > Fixed, see http://fpaste.org/GNSM/ > > > > This is no longer needed / should not be present > > http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag > > > > > > [ WARN ] - The Ruby library files in a pure Ruby package must be placed into Config::CONFIG["sitelibdir"] . The specfile must get that path using %{!?ruby_sitelib: %global ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"] ')} > > > > The specfile is using a different method for locating /usr/lib/ruby/*. Should > > it be using %{ruby_sitelib} instead? Or does this not apply since this is > > providing a rubygem? > > > > Yes according to the Fedora gem packaging guidelines, we define gemdir and > geminstdir correctly > > > http://fedoraproject.org/wiki/Packaging:Ruby#Ruby_Gems Gotcha > > > [ WARN ] - The %prep and %build sections of the specfile should be empty. > > > > %build is empty, %prep is not ... I've adjusted per the ruby guidelines > > slightly. However this is a *should* requirement, not a *must*. > > > > I would prefer to leave it as it is. The reason being if we ever have to patch > the gem, the gem install needs to occur in the %prep section before we can run > the %patch commands there as well. No objections, this shows up as a "should" requirement, and is entirely up to the maintainer in my opinion. > > > [ FAIL ] - The install should be performed with the command 'gem install --local --install-dir %{buildroot}%{gemdir} --force %{SOURCE0}' > > > > This command is currently used in the %prep. I've adjusted slighty to > > accommodate the *should* requirement. Feel free to use if desired. > > > > http://fpaste.org/GNSM/ > > > Again would prefer to leave as is unless this is a major blocker. Understood. Makes sense given your comments about applying patches. > Thank you greatly for the review! Anytime. From what I can tell, everything else looks good with the packages posted in comment#2. I approve this review request. I have few suggestions: * Please check duplicated "Requires: rubygem(addressable)" * Please execute test suite if available upstream. * I would suggest to move following files into -doc subpackage: %{geminstdir}/Gemfile %{geminstdir}/Rakefile %doc %{geminstdir}/minitest %doc %{geminstdir}/test %doc %{geminstdir}/spec %doc %{geminstdir}/%{gemname}.gemspec %doc %{geminstdir}/CHANGELOG.md %doc %{geminstdir}/Guardfile Thanks for the review. Will look into implementing the additional suggestions before pushing. New Package SCM Request ======================= Package Name: rubygem-webmock Short Description: Library for stubbing HTTP requests in Ruby Owners: mmorsi Branches: f16 InitialCC: Git done (by process-git-requests). rubygem-webmock-1.7.6-2.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/rubygem-webmock-1.7.6-2.fc16 Package rubygem-webmock-1.7.6-2.fc16: * should fix your issue, * was pushed to the Fedora 16 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing rubygem-webmock-1.7.6-2.fc16' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/rubygem-webmock-1.7.6-2.fc16 then log in and leave karma (feedback). rubygem-webmock-1.7.6-2.fc16 has been pushed to the Fedora 16 stable repository. If problems still persist, please make note of it in this bug report. Package Change Request ====================== Package Name: rubygem-webmock New Branches: epel7 Owners: tdawson Git done (by process-git-requests). |