Ruby 1.8.7 RPM RC1
Mohammed Morsi
mmorsi at redhat.com
Tue Jul 27 05:48:55 UTC 2010
On 07/16/2010 02:15 PM, Mamoru Tasaka wrote:
> Hello, all:
>
> Mohammed Morsi wrote, at 07/13/2010 12:50 PM +9:00:
>> On 07/10/2010 03:39 PM, Mamoru Tasaka wrote:
>>
>> http://mo.morsi.org/files/rpms/ruby-1.8.7.299-3.fc13.src.rpm
>
> Again thank you!
No problem. Really sorry on the delay for this response, I got pulled
back onto deltacloud last week.
Updated srpm can be found here:
http://mo.morsi.org/files/rpms/ruby-1.8.7.299-4.fc13.src.rpm
>
>
>> Also a couple of other things. First off, it seems the change log
>> is about as twice the size of the rest of the spec file itself.
>> Is it ever acceptable to truncate this? Perhaps with a note, saying
>> see cvs for the rest of the changelog?
>
> - If you want to shorten %changelog, please check what "vim" srpm
> does. i.e.
> - Create "Changelog.rpm"
> - Move old %changelog entry there
> - And at the end of %changelog, write "for older history, please see
> 'Changelog.rpm'".
>
>
Done
> Some notes for 1.8.7.299-3:
>
> * Obsoletes for -mode, -docs
> - Please make Obsoletes EVR specific
> - in case these subpackage revives. Obsoletes without
> EVR specification causes some annoying problems in
> some cases
> i.e. Change Obsoletes to like: "Obsoletes: %{name}-mode < 1.8.7"
> and so on.
>
Done
> * Documention
> - For example, still -tcltk subpackage misses most of example
> ruby scripts
>
> ! Note
> - Please try to make "$ rpmbuild -bi --short-circuit" (after
> "$ rpmbuild -bc" is done) succeeds even when executed for multiple
> times to make the spec file easier to maintain.
> - If "$ rpmbuild -bi --short-circuit" fails when executed multiple
> time, we have to execute whole rpmbuild process again even if
> we only want to modify %install section.
Done, now rpmbuild -bi --short-circuit works multiple consecutive times.
>
> So, for example,
> - Please don't do:
> ----------------------------------------------------------------------
> 241 mkdir ruby ruby-libs ruby-tcltk irb
> 242 mv ../%{name}-%{arcver}/sample/* ruby
> 244 mv ../%{name}-%{arcver}/lib/README* ../%{name}-%{arcver}/doc/*
> ruby-libs
> ----------------------------------------------------------------------
> With this, all files under ../%{name}-%{arcver}/sample/ are
> gone (and the same thing happens on line 244).
> So if "rpmbuild -bi --short-circuit" is executed again,
> these line fails because there are no longer needed files under
> ../%{name}-%{arcver}/sample/* (and the same for line 244).
>
> The correct way is not to use "mv" here, but to replace this with
> "cp -a".
Done
>
> - The following lines
> ----------------------------------------------------------------------
> 236 # install documenation in tmp directory to be
> 237 # picked up by %doc macros in %files sections
> 238 mkdir tmp-ruby-docs
> 239 pushd tmp-ruby-docs
> ----------------------------------------------------------------------
> fails when "-bi --short-circuit" is executed again because
> "tmp-ruby-docs" directory already exists. The correct way is
> to execute "rm -rf tmp-ruby-docs" before these lines to make
> it sure that "tmp-ruby-docs" directory is newly created.
>
Done
> - By the way about the following line:
> -----------------------------------------------------------------------
> 245 find ../ext -mindepth 1 \
> 246 \( -path '*/sample/*' -o -path '*/demo/*' \) -o \
> 247 \( -name '*.rb' -not -path '*/lib/*' -not -name extconf.rb
> \) -o \
> 248 \( -name 'README*' -o -name '*.txt*' -o -name 'MANUAL*' \)
> -exec mv -f {} ruby-libs \;
> -----------------------------------------------------------------------
> * At least the line 245 should be
> "find ../%{name}-%{arcver}/ext -mindepth 1 \"
>
> * And using "-exec mv -f" is wrong here because
> - This moves all the files matching "find" condition into
> the same
> "ruby-libs" diretory, without ignoring (deleting)
> directory hierarchy.
> I guess the reason the original specfile used "tar"
> command is
> to keep directory hierarchy.
> - And as I said above, "mv" removes the files from the
> original directory,
> so this causes "rpmbuild -bi --short-circuit" fail when
> executed
> again.
> However, simply replacing "mv -f" to "cp -a" does not work
> here because of the above reason.
>
Ah ok, I was wondering why tar cf was being used just to be piped into
tar xf. This make sense.
I reverted it back to using tar with a comment about the hierarchy issue
is the reason its being done that way.
> - And the following lines:
> -----------------------------------------------------------------------
> 251 find ruby-libs -name *tcltklib* -exec mv {} ruby-tcltk \;
> 252 find ruby-libs -name *tk* -exec mv {} ruby-tcltk \;
> -----------------------------------------------------------------------
> is not good because this also ignores directory hierarchy.
Reverted these to the old tar way as well.
>
> * Directory ownership issue
> - Still i686 koji build complains:
> -----------------------------------------------------------------------
> 2430 warning: File listed twice: /usr/lib/ruby
> 2431 warning: File listed twice: /usr/lib/ruby/1.8
> 2432 warning: File listed twice: /usr/lib/ruby/site_ruby
> 2433 warning: File listed twice: /usr/lib/ruby/site_ruby/1.8
> 2434 warning: File listed twice:
> /usr/lib/ruby/site_ruby/1.8/i386-linux
> -----------------------------------------------------------------------
>
> - On the other hand,
> ------------------------------------------------------------------------
> $ ls -1 *x86_64*rpm | grep -v debuginfo | xargs rpm -qlpv | grep '^d'
> | sed -e 's|^.* ||' | grep lib64 | sort
> /usr/lib64/ruby/1.8/x86_64-linux/digest
> /usr/lib64/ruby/1.8/x86_64-linux/io
> /usr/lib64/ruby/1.8/x86_64-linux/racc
> ------------------------------------------------------------------------
> so the needed directories
> ------------------------------------------------------------------------
> /usr/lib64/ruby/1.8/
> /usr/lib64/ruby/1.8/x86_64-linux/
> /usr/lib64/ruby/site_ruby
> /usr/lib64/ruby/site_ruby/1.8
> /usr/lib/ruby/site_ruby/1.8/x86_64-linux
> ------------------------------------------------------------------------
> are not owned by any packages.
> I guess the following lines in ruby-1.8.7.spec:
> ------------------------------------------------------------------------
> 334 %ifnarch ppc64 s390x sparc64 x86_64
> 335 %dir %{vendorarchbase}
> 336 %dir %{vendorarchbase}/%{rubyxver}
> 337 %{sitearchbase}
> 338 %endif
> ------------------------------------------------------------------------
> is the typo of "%ifarch", not "%ifnarch".
Done
>
> * noarch subpackage
> - At least -rdoc and -irb subpackage can be noarch
> ! Well, I thought -ri subpackage can also be noarch, however
> now generated yaml files used for ri now differ between on i686
> and x86_64, so currently -ri subpackage cannot be noarch
> ( however we installs yaml ri document files under %_datadir,
> so these files should be noarch... need investigating.... )
Done
>
> * rpmlint issue
> ruby-irb.i686: W: file-not-utf8
> /usr/share/doc/ruby-irb-1.8.7.299/irb-tools.rd.ja
> ruby-libs.i686: W: file-not-utf8
> /usr/share/doc/ruby-libs-1.8.7.299/README.1st
> ruby-libs.i686: W: file-not-utf8
> /usr/share/doc/ruby-libs-1.8.7.299/forwardable.rd.ja
> - Please change the encodings to UTF-8 (I guess these are under
> EUC-JP.. not
> checked)
Done
>
> ruby-static.i686: W: no-documentation
> ruby.i686: W: no-manual-page-for-binary erb
> ruby-irb.i686: W: no-manual-page-for-binary irb
> ruby-rdoc.i686: W: no-manual-page-for-binary rdoc
> ruby-ri.i686: W: no-manual-page-for-binary ri
> ruby.i686: W: no-manual-page-for-binary testrb
> - These can be ignored.
>
> ruby-tcltk.i686: E: non-executable-script
> /usr/lib/ruby/1.8/tkextlib/pkg_checker.rb 0644L /usr/bin/env
> - Please change the permission, or remove shebang.
Done
>
> ruby.i686: W: obsolete-not-provided ruby-docs
> ruby.i686: W: obsolete-not-provided ruby-mode
> - These can be ignored.
>
> ruby-irb.i686: W: self-obsoletion irb <= 1.8.7.299-3.fc14 obsoletes
> irb = 1.8.7.299-3.fc14
> ruby-libs.i686: W: self-obsoletion libruby <= 1.8.7.299-3.fc14
> obsoletes libruby = 1.8.7.299-3.fc14
> ruby-rdoc.i686: W: self-obsoletion rdoc <= 1.8.7.299-3.fc14 obsoletes
> rdoc = 1.8.7.299-3.fc14
> ruby-ri.i686: W: self-obsoletion ri <= 1.8.7.299-3.fc14 obsoletes ri =
> 1.8.7.299-3.fc14
> - It is better that obsoletes should be "Obsoletes: foo <
> %{name}-%{version}",
> not "<=".
Done
>
> ruby-tcltk.i686: W: spelling-error %description -l en_US Tcl -> Tc,
> Tl, Cl
> ruby-tcltk.i686: W: spelling-error Summary(en_US) Tcl -> Tc, Tl, Cl
> - Can be ignored.
>
> ruby-devel.i686: W: spurious-executable-perm
> /usr/lib/ruby/1.8/i386-linux/digest.h
> ruby-devel.i686: W: spurious-executable-perm
> /usr/lib/ruby/1.8/i386-linux/dl.h
> ruby-devel.i686: W: spurious-executable-perm
> /usr/lib/ruby/1.8/i386-linux/dlconfig.h
> - Permission on these files should be 0644.
Done
>
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/biorhythm.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/drb/old_tuplespace.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/drb/simpletuple.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/drb/speedc.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/exyacc.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/from.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/fullpath.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/getopts.test /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/less.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/mpart.rb ./ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/observ.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/pi.rb /usr/local/bin/ruby
> ruby.i686: E: wrong-script-interpreter
> /usr/share/doc/ruby-1.8.7.299/trojan.rb /usr/local/bin/ruby
> - Please fix these.
Done
>
> Again thank you for creating ruby187 srpm.
>
> Regards,
> Mamoru
Thanks in return for the reviews and for uploading the new rpms to rawhide.
BTW I also verified that the puppet, rails, and deltacloud test suites
all work against Ruby 1.8.7 (some bugs were filed in bugzilla, but
nothing major, mostly spec file stuff).
-Mo
More information about the ruby-sig
mailing list