Bug 823337
| Summary: | Review Request: rubygem-mixlib-shellout - mixin for running external commands | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Jonas Courteau <rpms> |
| Component: | Package Review | Assignee: | Vít Ondruch <vondruch> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | david, jdunn, notting, package-review, vondruch |
| Target Milestone: | --- | Flags: | vondruch:
fedora-review+
gwync: fedora-cvs+ |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-12-31 03:28:17 UTC | Type: | Bug |
| 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: | 823352 | ||
|
Description
Jonas Courteau
2012-05-21 00:07:58 UTC
Jonas - I am happy to sponsor you, and thrilled that you are willing to do the work around getting chef into Fedora/EPEL. I'll start looking at this and your other packages (please remove FE-NEEDSPONSOR) from your other bugs - (unless someone else has stepped up in another bug - in which case I'll defer to them.) Couple of quick comments. Have you upstreamed your patches for tests? link? (bug report or mailing list archive link?) Have you filed a bug upstream for not including tests in the gem? OpenShift has a number of ruby packages in process as well - so please take a look at their packages and do some informal reviews (and add me to the cc-list on the bugs you do reviews on) --David Excellent, thanks David. The rest of the packages that I'm trying to get added are all linked from the comments here: https://bugzilla.redhat.com/show_bug.cgi?id=823352 I'm going to do another pass through each of these packages today to clean up a few things, including filing upstream bugs to get tests included in the gems. It does seem that there's a bit of a trend of gems dropping their tests lately though. I'll do look through the OpenShift packages this week as well. Updated ------- SPEC URL - https://raw.github.com/jcourteau/rubygems-rpms/master/fc17/rubygem-mixlib-shellout/rubygem-mixlib-shellout.spec SRPM URL - http://rpms.courteau.org/fedora/rubygem-mixlib-shellout-1.0.0-2.fc17.src.rpm - added upstream ticket numbers for patches - exclude tests from final package [OK ] MUST: rpmlint must be run on the source rpm and all binary rpms the
build produces. The output should be posted in the review.(refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint)
rpmlint ./rubygem-mixlib-shellout.spec ../SRPMS/rubygem-mixlib-shellout-1.0.0-2.fc16.src.rpm
./rubygem-mixlib-shellout.spec: W: invalid-url Source1: rubygem-mixlib-shellout-1.0.0-specs.tgz
rubygem-mixlib-shellout.src: W: invalid-url Source1: rubygem-mixlib-shellout-1.0.0-specs.tgz
1 packages and 1 specfiles checked; 0 errors, 2 warnings.
[OK ] MUST: The package must be named according to the
http://fedoraproject.org/wiki/Packaging/NamingGuidelines
[OK ] MUST: The spec file name must match the base package
<code>%{name}</code>, in the format <code>%{name}.spec</code> unless your
package has an exemption. (refer to
http://fedoraproject.org/wiki/Packaging/NamingGuidelines#Spec_file_name).
[OK ] MUST: The package must meet the
http://fedoraproject.org/wiki/Packaging/Guidelines.
[OK ] MUST: The package must be licensed with a Fedora approved license and
meet the http://fedoraproject.org/wiki/Packaging/LicensingGuidelines.
[OK ] MUST: The License field in the package spec file must match the actual
license. (refer to
http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames)
[OK ] 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 <code>%doc</code>.(refer to
http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License Text)
[OK ] MUST: The spec file must be written in American English. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#summary)
[OK ] MUST: The spec file for the package '''MUST''' be legible. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#Spec_Legibility)
[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
http://fedoraproject.org/wiki/Packaging/SourceURL for how to deal with
this.
md5sum mixlib-shellout-1.0.0.gem*
0e58aeae55b974aba9eb9bae0fc33bea mixlib-shellout-1.0.0.gem
0e58aeae55b974aba9eb9bae0fc33bea mixlib-shellout-1.0.0.gem.1
[OK ] MUST: The package '''MUST''' successfully compile and build into
binary rpms on at least one primary architecture. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#Architecture_Support)
http://koji.fedoraproject.org/koji/getfile?taskID=4126851
[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
<code>ExcludeArch</code>. Each architecture listed in <code>ExcludeArch</code>
'''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 <code>ExcludeArch</code> line.
(refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#Architecture_Build_Failures)
[OK ] MUST: All build dependencies must be listed in
<code>BuildRequires</code>, except for any that are listed in the
http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2 section of the
Packaging Guidelines ; inclusion of those as <code>BuildRequires</code> is
optional. Apply common sense.
[NA ] MUST: The spec file MUST handle locales properly. This is done by
using the <code>%find_lang</code> macro. Using
<code>%{_datadir}/locale/*</code> is strictly forbidden.(refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#Handling_Locale_Files)
[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 <code>%post</code> and <code>%postun</code>. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#Shared_Libraries)
[OK ] MUST: Packages must NOT bundle copies of system libraries.(refer to
http://fedoraproject.org/wiki/Packaging:Guidelines#Duplication_of_system_libraries)
[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. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#RelocatablePackages)
[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. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#FileAndDirectoryOwnership)
[OK ] MUST: A Fedora package must not list a file more than once in the spec
file's %files listings. (Notable exception: license texts in specific
situations)(refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#DuplicateFiles)
[OK ] MUST: Permissions on files must be set properly. Executables should be
set with executable permissions, for example. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions)
[OK ] MUST: Each package must consistently use macros. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#macros)
[OK ] MUST: The package must contain code, or permissable content. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#CodeVsContent)
[NA ] 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). (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation)
[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. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation)
[NA ] MUST: Header files must be in a -devel package. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages)
[NA ] MUST: Static libraries must be in a -static package. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#StaticLibraries)
[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. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages)
[OK ] MUST: In the vast majority of cases, devel packages must require the
base package using a fully versioned dependency: <code>Requires:
%{name}%{?_isa} = %{version}-%{release} </code> (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#RequiringBasePackage)
[OK ] MUST: Packages must NOT contain any .la libtool archives, these must
be removed in the spec if they are built.(refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#StaticLibraries)
[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. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#desktop)
[OK ] 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
<code>filesystem</code> or <code>man</code> 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. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#FileAndDirectoryOwnership)
[OK ] MUST: All filenames in rpm packages must be valid UTF-8. (refer to
http://fedoraproject.org/wiki/Packaging/Guidelines#FilenameEncoding)
Some other comments:
Why are you building before you patch? (and not in the %build section?)
%prep needs a good lookover anyway - checkout this:
https://fedoraproject.org/wiki/Packaging/Ruby#.25prep
Aside from that, this package looks pretty good, let me know what packages you perform reviews of and we'll move forward.
(In reply to comment #5) > Why are you building before you patch? (and not in the %build section?) > %prep needs a good lookover anyway - checkout this: > https://fedoraproject.org/wiki/Packaging/Ruby#.25prep 99% of gems are fine with the %prep section as used by Jonas. The %prep section as suggested by guidelines is not mandatory IMO. Jonas, I have 2 notes: * Could you please unpack the test suite in the %check section, something like rubybem-hike [1] for example? Also running in .%{gem_instdir} is preferable (although it has definitely some downsides). This will prevent possible pollution of the packaged gem. * I typically suggest to exclude the %{gem_cache}. [1] http://pkgs.fedoraproject.org/gitweb/?p=rubygem-hike.git;a=blob;f=rubygem-hike.spec;h=68f3affe56da17bbf72226da7030a2031c078150;hb=HEAD I was doing the unpacking of the test suite in %prep since I have to apply a patch to the tests to get them working correctly. I have filed a bug upstream; as soon as that's fixed I'll move the test suite setup into %check. I did verify that the RPM didn't have any test-related cruft left over. David, I was looking around for the gems mentioned on the OpenShift Origin wiki page [1] and didn't see review requests, and the OpenShift community site [2] implies that Fedora 18 support is pending the Passenger stuff getting cleared up. Can you point me in the right direction? Thanks! [1] https://fedoraproject.org/wiki/Features/OpenShift_Origin [2] https://openshift.redhat.com/community/ (In reply to comment #7) > I was doing the unpacking of the test suite in %prep since I have to apply a > patch to the tests to get them working correctly. I have filed a bug > upstream; as soon as that's fixed I'll move the test suite setup into > %check. I did verify that the RPM didn't have any test-related cruft left > over. Yes, I understand that. But you can patch the tests in %check as well as in %prep. You can use something like "cat %{PATCH0} | patch -p2" for that. Ah, I didn't know it was okay to patch stuff in %check. I've made the recommended changes:
- now extracting and patching tests in %check
- tests are extracted, patched, and run from .%{gem_instdir} instead of buildroot.
- excluding %{gem_cache}
Updated SRPM - http://rpms.courteau.org/fedora/rubygem-mixlib-shellout-1.0.0-3.fc17.src.rpm
Updated SPEC - https://raw.github.com/jcourteau/rubygems-rpms/master/fc17/rubygem-mixlib-shellout/rubygem-mixlib-shellout.spec
David, et. al.: I've been in discussions with Opscode about all of Jonas's review requests, since (according to them) he seems to have "disappeared".[1] I've started working on these packages again, and have an updated SRPM and SPEC for rubygem-mixlib-shellout-1.1.0: http://jdunn.fedorapeople.org/rubygem-mixlib-shellout/rubygem-mixlib-shellout.spec http://jdunn.fedorapeople.org/rubygem-mixlib-shellout/rubygem-mixlib-shellout-1.1.0-1.fc19.src.rpm My package drops the patch for the broken test on FC17; Opscode seems to have fixed that. What else would need to be done to move this particular review forward? As you can tell, I'm already a Fedora packager. [1] http://tickets.opscode.com/browse/CHEF-522 * Test suite fails
- Seems that test suite depends on awesome_print?
/usr/share/rubygems/rubygems/custom_require.rb:36:in `require': cannot
load such file -- ap (LoadError)
I tried to remove it and the test suite works. So please do
sed -i "/^require 'ap'$/ s/^/#/" spec/spec_helper.rb
and report it upstream. Nevertheless, there is still one test failure:
1) Mixlib::ShellOut when executing the command with a current working
directory when running under Unix should chdir to the working directory
Failure/Error: should eql(fully_qualified_cwd)
expected: "/bin"
got: "/usr/bin"
This seems to be caused by UsrMove and should be resolved with upstream.
- The '-Ilib' seems to be superfluous.
* I woudl move the README into -doc subpackage, but it is more the matter of
taste.
The package looks quite good otherwise. But let's fix the test suite first.
Upstream tickets and pull requests have been filed. http://tickets.opscode.com/browse/MIXLIB-6 http://tickets.opscode.com/browse/MIXLIB-7 I'll update the spec with these patches and rebuild. Updated spec and SRPM: http://fedorapeople.org/~jdunn/rubygem-mixlib-shellout/rubygem-mixlib-shellout.spec http://fedorapeople.org/~jdunn/rubygem-mixlib-shellout/rubygem-mixlib-shellout-1.1.0-2.fc19.src.rpm Cool. Thank you for the patches. I hope they'll get accepted soon.
Just cannot resist, have you tested it on F18+? Since /tmp is now TmpFs, I hope it will not cause another troubles ;)
And few other notes:
* Mark patches as Patch0 and Patch1
- I'd love to see the patches marked as Patch0, Patch1 instead of Source2,
Source3. I don't think where will be any difference in the end, but it feels
better to me.
* %exclude %{gem_instdir}/spec should not be needed
- If I am not mistaken, this line is not needed, since you expand the test
suite after the %install section is done, so there is no chance that it
could appear in %{buildroot}
@David: Any other comments? Will you finish the review or should I?
(In reply to comment #14) > Cool. Thank you for the patches. I hope they'll get accepted soon. > > Just cannot resist, have you tested it on F18+? Since /tmp is now TmpFs, I > hope it will not cause another troubles ;) Yes, I tested my patches on a F18-beta VM. > And few other notes: > > * Mark patches as Patch0 and Patch1 > - I'd love to see the patches marked as Patch0, Patch1 instead of Source2, > Source3. I don't think where will be any difference in the end, but it > feels > better to me. That makes sense. > * %exclude %{gem_instdir}/spec should not be needed > - If I am not mistaken, this line is not needed, since you expand the test > suite after the %install section is done, so there is no chance that it > could appear in %{buildroot} Correct. The above problems have been fixed and SPEC/SRPM have been updated. http://fedorapeople.org/~jdunn/rubygem-mixlib-shellout/rubygem-mixlib-shellout.spec http://fedorapeople.org/~jdunn/rubygem-mixlib-shellout/rubygem-mixlib-shellout-1.1.0-2.fc19.src.rpm * Wrong ruby(abi) require.
- Requires: ruby(abi) > %{rubyabi}
+ Requires: ruby(abi) = %{rubyabi}
BTW please always bump release when submitting updated .spec for review. It will avoid possible confusion.
Otherwise, I am fine with the rest of the package, so I APPROVE it (hope David don't mind ;). But please fix the above mentioned issue prior importing the package, otherwise it cannot get installed (but you would find it soon ;).
(In reply to comment #16) > * Wrong ruby(abi) require. > - Requires: ruby(abi) > %{rubyabi} > + Requires: ruby(abi) = %{rubyabi} > > BTW please always bump release when submitting updated .spec for review. It > will avoid possible confusion. > > Otherwise, I am fine with the rest of the package, so I APPROVE it (hope > David don't mind ;). But please fix the above mentioned issue prior > importing the package, otherwise it cannot get installed (but you would find > it soon ;). Thanks Vit. Yes, I saw that bad Requires. Must have been an artifact of an earlier version, which I will fix when importing. New Package SCM Request ======================= Package Name: rubygem-mixlib-shellout Short Description: Ruby mixin for running external commands Owners: jdunn Branches: f17 f18 el6 InitialCC: Git done (by process-git-requests). rubygem-mixlib-shellout-1.1.0-4.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/rubygem-mixlib-shellout-1.1.0-4.fc17 rubygem-mixlib-shellout-1.1.0-4.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/rubygem-mixlib-shellout-1.1.0-4.fc18 rubygem-mixlib-shellout-1.1.0-4.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/rubygem-mixlib-shellout-1.1.0-4.el6 rubygem-mixlib-shellout-1.1.0-4.el6 has been pushed to the Fedora EPEL 6 testing repository. rubygem-mixlib-shellout-1.1.0-4.fc17 has been pushed to the Fedora 17 stable repository. rubygem-mixlib-shellout-1.1.0-4.el6 has been pushed to the Fedora EPEL 6 stable repository. rubygem-mixlib-shellout-1.1.0-4.fc18 has been pushed to the Fedora 18 stable repository. |