Ruby 1.8.7 RPM RC1
Mamoru Tasaka
mtasaka at ioa.s.u-tokyo.ac.jp
Fri Jul 16 18:15:18 UTC 2010
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!
> 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'".
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.
* 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.
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".
- 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.
- 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.
- 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.
* 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".
* 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.... )
* 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)
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.
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 "<=".
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.
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.
Again thank you for creating ruby187 srpm.
Regards,
Mamoru
More information about the ruby-sig
mailing list