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-1.fc17.src.rpm Description: A rubygem for running external commands on Unix or Windows This is part of a set of dependencies for rubygem-chef. I've got about 14 packages to add, all ruby gems, and am looking for a sponsor. Several of the packages were previously in Fedora (F11 and F12), but were removed due to lack of a maintainer.
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.