Bug 2521 - [Hob2] The require of Gtk+, PyGtk and PyGobject is obscure
Summary: [Hob2] The require of Gtk+, PyGtk and PyGobject is obscure
Status: VERIFIED FIXED
Alias: None
Product: Hob
Classification: Build System, Metadata & Runtime
Component: hob (show other bugs)
Version: 1.3
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.3 M2
Assignee: Dongxiao Xu
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2012-05-30 02:59 UTC by Robert Yang
Modified: 2012-07-16 10:14 UTC (History)
8 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Yang 2012-05-30 02:59:25 UTC
When run hob on Ubuntu 10.10:

$ hob
FATAL: Gtk+, PyGtk and PyGobject are required to use Hob,
You have Gtk+ 2.22.0 and PyGtk 2.21.0.

From a user's view, he should think that it lacks of PyGobject, but the real problem is that the version of Gtk+ or PyGtk doesn't meet, this confuses the user. It would be good if it can tell the user clearly what's wrong.

Another problem is that, bitbake/lib/bb/ui/hob.py:

 33     if gtkver  < (2, 20, 0) or pygtkver < (2, 22, 0):
 34         sys.exit("%s,\nYou have Gtk+ %s and PyGtk %s." % (requirements,
 35                 ".".join(map(str, gtkver)),
 36                 ".".join(map(str, pygtkver))))

Usually, The gtk version is greater than or equal to the pygtk on a host, but it seems that hob requires a greater version of pygtk than gtk, which seems strange.
Comment 1 Shane Wang 2012-05-30 03:04:24 UTC
Give it to Josh since he made the change of the code piece you mentioned. I also prefer Hob can run on Ubuntu 10.04, otherwise it is very inconvenient for me to test with my Ubuntu 10.04 machine. Just a suggestion;-)
Comment 2 Robert Yang 2012-05-30 03:08:21 UTC
(In reply to comment #1)
> Give it to Josh since he made the change of the code piece you mentioned. I
> also prefer Hob can run on Ubuntu 10.04, otherwise it is very inconvenient
> for me to test with my Ubuntu 10.04 machine. Just a suggestion;-)

I used the following patch to make it work on Ubuntu 10.10 (change the required version lower), maybe you can try a similar change on Ubuntu 10.04:

diff --git a/bitbake/lib/bb/ui/hob.py b/bitbake/lib/bb/ui/hob.py
--- a/bitbake/lib/bb/ui/hob.py
+++ b/bitbake/lib/bb/ui/hob.py
@@ -30,7 +30,7 @@ try:
     pygtk.require('2.0') # to be certain we don't have gtk+ 1.x !?!
     gtkver = gtk.gtk_version
     pygtkver = gtk.pygtk_version
-    if gtkver  < (2, 20, 0) or pygtkver < (2, 22, 0):
+    if gtkver  < (2, 20, 0) or pygtkver < (2, 21, 0):
         sys.exit("%s,\nYou have Gtk+ %s and PyGtk %s." % (requirements,
                 ".".join(map(str, gtkver)),
                 ".".join(map(str, pygtkver))))
Comment 3 Shane Wang 2012-05-30 03:13:28 UTC
Robert, you can't change it in that way. Here is the conversation between Josh and me.

Hi Shane,

On 22/05/12 18:35, Wang, Shane wrote:
> Josh, I just found I can't run Hob on my Ubuntu 10.04 after I checked out the latest master.
>
> Since Ubuntu 10.04 is a long-term-support version, can we do something to make Hob compatible with that?

The plan is to provide an external-python-tarball with a full Gtk+ & 
PyGtk nativesdk stack built by OE-Core/Poky and installed into a 
standalone sysroot on the users host.

Whilst I have a branch based on some work by Richard to achieve this it 
hasn't been submitted to upstream as I haven't figured out a clean way 
to handle things on the SDK host which would usually require a 
postinstall in the target rootfs.

Aside: I really can't see a clean way around requiring postinst type 
functionality for the SDK targets, particularly in the pagno case here. 
I'm currently ruminating on supercharging the toolchain scripts to 
handle this.

> What kind of failure did you meet on Ubuntu 10.04?

IIRC the set_action_widget() API I referred to in the original email 
isn't available in the version of Gtk+ and PyGtk that was shipped with 
Ubuntu 10.04.

This is required to add the search entry to the gtk.Notebook.

Cheers,
Joshua
Comment 4 Robert Yang 2012-05-30 03:18:46 UTC
(In reply to comment #3)
> Robert, you can't change it in that way. Here is the conversation between
> Josh and me.
> 

Thanks, I just used it as a work around:-)

// Robert

> Hi Shane,
> 
> On 22/05/12 18:35, Wang, Shane wrote:
> > Josh, I just found I can't run Hob on my Ubuntu 10.04 after I checked out the latest master.
> >
> > Since Ubuntu 10.04 is a long-term-support version, can we do something to make Hob compatible with that?
> 
> The plan is to provide an external-python-tarball with a full Gtk+ & 
> PyGtk nativesdk stack built by OE-Core/Poky and installed into a 
> standalone sysroot on the users host.
> 
> Whilst I have a branch based on some work by Richard to achieve this it 
> hasn't been submitted to upstream as I haven't figured out a clean way 
> to handle things on the SDK host which would usually require a 
> postinstall in the target rootfs.
> 
> Aside: I really can't see a clean way around requiring postinst type 
> functionality for the SDK targets, particularly in the pagno case here. 
> I'm currently ruminating on supercharging the toolchain scripts to 
> handle this.
> 
> > What kind of failure did you meet on Ubuntu 10.04?
> 
> IIRC the set_action_widget() API I referred to in the original email 
> isn't available in the version of Gtk+ and PyGtk that was shipped with 
> Ubuntu 10.04.
> 
> This is required to add the search entry to the gtk.Notebook.
> 
> Cheers,
> Joshua
Comment 5 Dongxiao Xu 2012-06-26 07:56:08 UTC
Shane has fixed this bug in commit: "efd977010ea4c9f611089b19cebb81f7a501dafa".

For the issue of "Usually, The gtk version is greater than or equal to the pygtk on a host, but it seems that hob requires a greater version of pygtk than gtk, which seems strange.", for GTK versions, there are: "2.16, 2.18, 2.20, 2.24", and for pyGTK, the versions are: "2.16, 2.17, 2.21, 2.22", therefore the current judgement: "if gtkver  < (2, 20, 0) or pygtkver < (2, 21, 0):" does make sense.
Comment 6 liang li 2012-07-16 10:14:00 UTC
verified:
git info:   eb0cb7e8234f5d2e5623406e9660be91cf52f65e
git branch: poky/master