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