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