[Bug 232160] Review Request: ruby-gnome2 - A ruby binding of libgnome/libgnomeui-2.x
bugzilla at redhat.com
bugzilla at redhat.com
Sun Mar 25 18:17:24 UTC 2007
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug report.
Summary: Review Request: ruby-gnome2 - A ruby binding of libgnome/libgnomeui-2.x
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=232160
------- Additional Comments From mtasaka at ioa.s.u-tokyo.ac.jp 2007-03-25 14:17 EST -------
Created an attachment (id=150856)
--> (https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=150856&action=view)
mock build log of 0.16.0-1 with libgnomeprintui added to BR
Well, for 0.16.0-1:
* SourceURL
- For source URL. check:
http://fedoraproject.org/wiki/Packaging/SourceURL
* Conditional dependency
-ruby-cairo
Well, "ruby extconf.rb" log says many time about
the following:
---------------------------------------------------
rb_cairo.h... no
---------------------------------------------------
According to gooling, this may be enabled by
using ruby-cairo.
http://cairo.freedesktop.org/rcairo
IMO you should submit ruby-cairo first (as I cannot
find currently on Fedora) and use ruby-cairo for
this.
- And please check other conditional dependency
i.e. check the line in which "ruby extconf.rb" says
"no".
* BuildRequires
- Mockbuild fails on FC-devel i386.
libgnomeprint22-devel BR for ruby-gnomeprintui2 should
be libgnomeprintui22-devel.
* Release specific dependency
- Usually, the requires/provides, especially for
main package should be release number specific
* Requires
- Please check the requirement for each subpackage
precisely.
Usually, this can be examined by checking the
line which contains #include word in header files
(and something else if needed)
EXAMPLE:
Currently, ruby-atk-devel requires
------------------------------------------------------
Requires: ruby(atk) = %{version}
------------------------------------------------------
However,
/usr/lib/ruby/site_ruby/1.8/i386-linux/rbatk.h
in ruby-atk-devel contains the file:
------------------------------------------------------
10 #include "ruby.h"
11 #include <atk/atk.h>
12 #include <atk/atk-enum-types.h>
13 #include <atk/atknoopobject.h>
14 #include <atk/atknoopobjectfactory.h>
15 #include "rbgobject.h"
16 #include "rbatkversion.h"
------------------------------------------------------
This means that ruby-atk-devel should require
ruby-devel, atk-devel, ruby-glib-devel(=ruby(glib-devel)).
* Group
- "Development" group should not be used for non-devel
package. Usually "System Environment/Libraries" should
be used.
* Timestamps
- Please keep timestamps for *.rb *.h text files.
These files are not created nor modified at build
stage and installed directly from tarball.
* For .rb files, timestamps are kept by
-----------------------------------------------
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p"
-----------------------------------------------
* For header files, it is a bit difficult.
Well, actually there is a way, however my way is
somewhat ugly and I wonder if I should stick to
keep timestamps by doing so...
? However, would you ask upstream to keep timestamps
on *.rb *.h files by default?
* Gecko engine dependency
- Well, I have to explain this a bit longer.
# Summary
- You must specify what version of firefox you used
for build time.
i.e. you must use "BuildRequires: firefox-devel = <VERSION>"
- You must specify version specific dependency against
firefox for ruby-gtkmozembed.
i.e. you must write for ruby-gtkmozembed:
Requires: firefox = <version>
- NOTE:
firefox version may differ on each branches (devel/FC-6/FC-5).
# Explanation
- Well, what ruby-gtkmozembed requires are:
--------------------------------------------------------
[tasaka1 at localhost ruby-gnome2]$ rpm -q --requires ruby-gtkmozembed | egrep
'(moz|xp)'
libgtkembedmoz.so
libxpcom.so
--------------------------------------------------------
NOTE that only basenames are checked by rpm.
However, ldd -r shows:
--------------------------------------------------------
[tasaka1 at localhost ruby-gnome2]$ ldd -r
/usr/lib/ruby/site_ruby/1.8/i386-linux/gtkmozembed.so 2>/dev/null | egrep
'(moz|xpcom)'
libgtkembedmoz.so => /usr/lib/firefox-2.0.0.3/libgtkembedmoz.so
(0x00110000)
libxpcom.so => /usr/lib/firefox-2.0.0.3/libxpcom.so (0x0012f000)
libxpcom_core.so => /usr/lib/firefox-2.0.0.3/libxpcom_core.so
(0x00cad000)
---------------------------------------------------------
Here, the directory /usr/lib/firefox-2.0.0.3 is not in default
library path and actually gtkmozembed.so has rpath.
---------------------------------------------------------
[tasaka1 at localhost ruby-gnome2]$ objdump -T --headers --private-headers
/usr/lib/ruby/site_ruby/1.8/i386-linux/gtkmozembed.so | grep RPATH
RPATH /usr/lib/firefox-2.0.0.3
---------------------------------------------------------
So, if firefox is updated to 2.0.0.4, it succeeds without any complaint,
because rpm does not check rpath dependency.
However gtkmozembed.so actually requires libxpcom.so under
/usr/lib/firefox-2.0.0.3, so ruby-gtkmozembed gets unusable.
To aviod this, we have to specify version dependency against
firefox explicitly.
* Summary
- Well, IMO summary should not be a sentence, but should be
an noun phrase, like
----------------------------------------------------------
Summary: Ruby binding of libgnome/libgnomeui-2.x
----------------------------------------------------------
- and, summary/description should be different between
a subpackage and its development part subpackage.
i.e. summary/description of ruby-atk/ruby-atk-devel should
be different, for example.
* Macro
- Please use macros. E.g. /usr/bin -> %{_bindir}
I have not checked yet for
- what documents should be added to each subpackage
- whether license is correct and is of no problem
- and something else......
--
Configure bugmail: https://bugzilla.redhat.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.
More information about the package-review
mailing list