Hello:
Mohammed Morsi wrote, at 07/29/2010 10:16 AM +9:00:
On 07/26/2010 03:53 PM, Mamoru Tasaka wrote:
> Hello, all:
>
> As
> - F14 feature freeze is tomorrow !
> - Mohammed's ruby srpm was almost complete (as far as I tried using):
>
http://mo.morsi.org/files/rpms/ruby-1.8.7.299-3.fc13.src.rpm
>
> I slightly modified Mohammed's srpm and imported into rawhide build tree.
> Now it is available on
>
http://koji.fedoraproject.org/koji/buildinfo?buildID=186570
>
> A summary of changes from Mohammed's ruby-1.8.7.299-3.fc13:
> - Some cleanups
> - Make -irb, -rdoc subpackage noarch
> - Make dependencies between arch-dependent subpackages isa specific
> - Improve sample documentation gathering
>
> I hope the imported new ruby won't break things (so much).
> I appreciate all peoples' contributing to ruby 187 packages.
>
> Regards,
> Mamoru
>
Thanks for this Mamoru, just went through and rebuilt your srpm, and have a couple of
comments:
Thank you for feedback.
Some rpmlint output:
$ rpmlint /home/mmorsi/rpmbuild/SRPMS/ruby-1.8.7.299-4.fc13.src.rpm
> ruby.src: W: no-cleaning-of-buildroot %install
> ruby.src: W: no-buildroot-tag
Are the result of removing "BuildRoot" and "rm -rf $RPM_BUILD_ROOT "
as per the
following guidelines, and can be ignored correct?
http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag
- Yes, BuildRoot tag, cleaning %buildroot at %install are no longer needed.
> ruby.src:264: W: mixed-use-of-spaces-and-tabs (spaces: line
264, tab: line 1)
You have a tab on the "-mindepth 1 \" line in the spec, this should be removed.
- Actually I removed a space on this line. Now rpmlint warns that spaces are
used in %changelog section, however I won't modify old %changelog entry for this
(we can consider moving the old %changelog entry out of the spec file as you did)
$ rpmlint
/home/mmorsi/rpmbuild/RPMS/x86_64/ruby-1.8.7.299-4.fc13.x86_64.rpm
> ruby.x86_64: W: obsolete-not-provided ruby-mode
> ruby.x86_64: W: obsolete-not-provided ruby-docs
In my latest spec I got around these by adding a 'Provides' for both ruby-mode /
ruby-docs,
where as you explicitly state "no Provides here". Is this the correct approach
to do so?
Eg if the emacs package provides the ruby-mode functionality, shouldn't it be that
package that
obsoletes and provides ruby-mode? Also since our package Obsoletes ruby-doc
shouldn't
it provide it as well?
- In this case corresponding Provides should not be added.
- Adding "Provides: ruby-mode" in emacs is confusing. as "emacs"
and "ruby" have
little relation, and so it is not desired for maintainability.
- Now no package "actually" provides what was in ruby-doc.
> ruby.x86_64: E: wrong-script-interpreter
/usr/share/doc/ruby-1.8.7.299/sample/mpart.rb ./ruby
I had gotten around this by adding the following to my spec (in the section the other
interpreter paths get corrected)
sed -i -e 's/^#!\s*\.\/ruby/#! \/usr\/bin\/ruby/' sample/mpart.rb
- Fixed.
$ rpmlint
/home/mmorsi/rpmbuild/RPMS/x86_64/ruby-tcltk-1.8.7.299-4.fc13.x86_64.rpm
> ruby-tcltk.x86_64: E: non-executable-script
/usr/lib/ruby/1.8/tkextlib/pkg_checker.rb 0644L /usr/bin/env
I got around this by removing the shebang from the top of the file like so.
sed -i -e '/^#!.*/,1D' ext/tk/lib/tkextlib/pkg_checker.rb
- Instead I marked this file executable because this script can actually be executed.
Now this script reports some errors, however as this script says "Shown status may
be wrong"
(and as I don't know how to fix the reported errors) I leave it for now...
===
AFAIK all the other rpmlint warnings can be ignored. Just going through the spec file
itself,
I'm just wondering why the complexity for the iconv stuff. Unless I missed something
major,
I just went through the files rpmlint was stating weren't utf-8 and ran "iconv
-f iso8859-1 -t utf-8"
on them to take care of the issue. No need for any sed'ing. Did I oversimplify the
issue?
- Actually as shown in build.log, actually some files are in EUC-JP (not ISO-8859-1) and
some
are in ISO-8859-1.
- EUC-JP encoding is commonly used in (UNIX) Japanese texts (even now).
Unfortunately rpmlint cannot detect EUC-JP encoding (which is Japanese specific),
and sometimes rpmlint reports 'it is under ISO-8859-1', and sometimes rpmlint
says nothing.
- Some texts have 'EUC-JP' string in them, and after changing encoding, such
strings
must also be changed
(On some ruby scripts this is critical because if trying to execute such scripts
which are converted from EUC-JP to UTF-8 but still contain "EUC-JP" string,
this
causes some unexpected behavior)
Also I can't help but feel that we should put some of this stuff in the source %prep
section,
not in the %install section, and would be interested in seeing what (if anything) the
guidelines
say about this. Regardless these last couple are not big issues, I wouldn't have a
problem with the
Ruby rpms going in without them being resolved.
BTW I tested this latest RPM in a VM and am happy to say via some
light surface testing:
rake, rack, rails, rspec, and gem work out of the box, and the puppet, rails, and
deltacloud
test/spec suites work in the same manner as they do against 1.8.6.
Thank you for testing. By the way, if rails 2.3.8 is ready, would you upgrade Fedora's
rails
related packages to 2.3.8 for rawhide/F-14 for now?
- Fixing encoding or using massive "sed" on files only for sample files which
are actually
to be installed (i.e. executing this under tmp-ruby-docs) is much safer than executing
these in %prep, so I think we need not move this to %prep.
Committed in -5.
Regards,
Mamoru