[Glade-devel] please help: bug: glade2 file conversion to glade3 failed

Tristan Van Berkom tristan.van.berkom at gmail.com
Mon Nov 23 11:41:07 EST 2009


On Mon, Nov 23, 2009 at 2:29 PM, Saku Masukita
<sakumasukita at googlemail.com> wrote:
>
> On Sun, Nov 22, 2009 at 5:11 PM, Tristan Van Berkom
> <tristan.van.berkom at gmail.com> wrote:
>>
>> Hello.
>>
>> Glade does not come with any conversion script.
>
> Well, apparently the script comes from a package
> called libglade2-dev as the following output shows:
>
> $ dpkg-query -S /usr/bin/libglade-convert
> libglade2-dev: /usr/bin/libglade-convert
>

Thats an old conversion script to convert files from
Glade 1 format to a format readable by libglade.

By now libglade is  deprecated and people are migrating
to GtkBuilder (which essentially does what libglade did,
except has some advantages such as doing it natively
from the GTK+ widget code).

You dont need a conversion tool to load a file created
with Glade 2, in Glade 3 - just open the file in Glade 3.

You will encounter a bug where everything seems horizontally
oriented (because the file was created with Glade 2 in an
old version, it wont output the orientation property needed
to tell VBoxes that they need to be vertical, sorry about that).

libgnomeui is an old library that does lots of gnome specific
stuff, it pulls in lots of dependencies you dont want to build
nowadays and most of the widgets if not all, have equal
coverage in GTK+ by now (i.e. its another old and deprecated
widget library).

You can at least start by loading the file in Glade, fixing
the orientation property where you need to (search vbox
in the search entry should help), then convert it to GtkBuilder
(use the project preferences dialog) and see what deprecated
widgets dissapear in the conversion - should give you an idea
of what widget types you need to replace to move on to GtkBuilder.

Cheers,
       -Tristan


> The list of files which are part of this ubuntu package
> are the following which seem to include version 2 of
> a static library called libglade which I presume is
> used to create executable files which parse a
> glade XML file when run. The list is reported
> below:
>
> $ dpkg-query -L libglade2-dev
> /.
> /usr
> /usr/share
> /usr/share/doc
> /usr/share/doc/libglade2-dev
> /usr/share/doc/libglade2-dev/copyright
> /usr/share/doc/libglade2-dev/examples
> /usr/share/doc/libglade2-dev/examples/bonobo.glade
> /usr/share/doc/libglade2-dev/examples/simple.glade.gz
> /usr/share/doc/libglade2-dev/examples/first.glade
> /usr/share/doc/libglade2-dev/examples/example.glade.gz
> /usr/share/doc-base
> /usr/share/doc-base/libglade2-dev
> /usr/share/man
> /usr/share/man/man1
> /usr/share/man/man1/libglade-convert.1.gz
> /usr/share/gtk-doc
> /usr/share/gtk-doc/html
> /usr/share/gtk-doc/html/libglade
> /usr/share/gtk-doc/html/libglade/GladeXML.html
> /usr/share/gtk-doc/html/libglade/home.png
> /usr/share/gtk-doc/html/libglade/index.html
> /usr/share/gtk-doc/html/libglade/index.sgml
> /usr/share/gtk-doc/html/libglade/left.png
> /usr/share/gtk-doc/html/libglade/libglade-Libglade-Build.html
> /usr/share/gtk-doc/html/libglade/libglade-Libglade-Initialisation.html
> /usr/share/gtk-doc/html/libglade/libglade-Libglade-SAX-Parser.html
> /usr/share/gtk-doc/html/libglade/libglade-dtd-exceptions.html
> /usr/share/gtk-doc/html/libglade/libglade-dtd.html
> /usr/share/gtk-doc/html/libglade/libglade-embedding.html
> /usr/share/gtk-doc/html/libglade/libglade-extending.html
> /usr/share/gtk-doc/html/libglade/libglade-i18n.html
> /usr/share/gtk-doc/html/libglade/libglade-lib.html
> /usr/share/gtk-doc/html/libglade/libglade-modules.html
> /usr/share/gtk-doc/html/libglade/libglade-notes.html
> /usr/share/gtk-doc/html/libglade/libglade.devhelp
> /usr/share/gtk-doc/html/libglade/libglade.devhelp2
> /usr/share/gtk-doc/html/libglade/right.png
> /usr/share/gtk-doc/html/libglade/style.css
> /usr/share/gtk-doc/html/libglade/up.png
> /usr/include
> /usr/include/libglade-2.0
> /usr/include/libglade-2.0/glade
> /usr/include/libglade-2.0/glade/glade.h
> /usr/include/libglade-2.0/glade/glade-init.h
> /usr/include/libglade-2.0/glade/glade-xml.h
> /usr/include/libglade-2.0/glade/glade-build.h
> /usr/include/libglade-2.0/glade/glade-parser.h
> /usr/lib
> /usr/lib/libglade-2.0.a
> /usr/lib/libglade-2.0.la
> /usr/lib/pkgconfig
> /usr/lib/pkgconfig/libglade-2.0.pc
> /usr/bin
> /usr/bin/libglade-convert
> /usr/share/doc/libglade2-dev/README
> /usr/share/doc/libglade2-dev/AUTHORS
> /usr/share/doc/libglade2-dev/NEWS.gz
> /usr/share/doc/libglade2-dev/changelog.Debian.gz
> /usr/lib/libglade-2.0.so
> $
>
> However when I look at the list of installed packages
> related to glade I get the all of the following:
>
> BEGIN OUTPUT +++++++++++++++++++++++++++++
>
> $ dpkg-query -l '*glade*'
> Desired=Unknown/Install/Remove/Purge/Hold
> |
> Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err:
> uppercase=bad)
> ||/ Name
> Version                                  Description
> +++-========================================-========================================-================================================================================================
> un  glade
> <none>                                   (no description available)
> ii  glade-3
> 3.6.3-0ubuntu1                           GTK+ 2 User Interface Builder
> un  glade-gnome
> <none>                                   (no description available)
> un  glade-gnome-3
> <none>                                   (no description available)
> ii  libglade2-0
> 1:2.6.4-1                                library to load .glade files at
> runtime
> ii  libglade2-dev
> 1:2.6.4-1                                development files for libglade
> ii  libglade2.0-cil
> 2.12.8-2                                 CLI binding for the Glade libraries
> 2.6
> un  libgladeui-1-1
> <none>                                   (no description available)
> un  libgladeui-1-2
> <none>                                   (no description available)
> un  libgladeui-1-3
> <none>                                   (no description available)
> un  libgladeui-1-4
> <none>                                   (no description available)
> un  libgladeui-1-5
> <none>                                   (no description available)
> un  libgladeui-1-7
> <none>                                   (no description available)
> un  libgladeui-1-8
> <none>                                   (no description available)
> ii  libgladeui-1-9
> 3.6.3-0ubuntu1                           GTK+ User Interface Build core
> library
> un  python-glade
> <none>                                   (no description available)
> ii  python-glade2
> 2.14.1-1ubuntu1                          GTK+ bindings: Glade support
> un  python2.3-glade2
> <none>                                   (no description available)
> un  python2.4-glade2
> <none>                                   (no description available)
> un  python2.5-glade2
> <none>                                   (no description available)
> un  python2.6-glade2
> <none>                                   (no description available)
>
> END OUTPUT +++++++++++++++++++++++++++++
>
> I am puzzled with the fact that on the download site there are only
> these two directories which seem pertinent to modern glade /
> libglade development but there is no libgladeui package. So
> I do not understand what the difference is between libglade
> and libgladeui. What is libgladeui?
>
> http://ftp.gnome.org/pub/GNOME/sources/glade3/3.6/
> http://ftp.gnome.org/pub/GNOME/sources/libglade/2.6/
>
>>
>> Just make sure you have the gnome plugin for Glade installed
>> on your system and then try to load the file directly in Glade.
>
>
> Well, as far as I remember I do not remember using any
> gnome-specific widgets which are not part of GTK inside
> my glade 2 XML file but I am going to try your suggestion
> just in case...
>
> $ sudo apt-get install glade-gnome
>
> No luck with this, as after such apt-get installation I still
> get the same error messages when trying to use
> libglade-convert to convert my glade 2 XML file
> to a glade 3 XML file.
>
> So let us try and install glade-gnome-2 instead...
>
> $ sudo apt-get install glade-gnome-2
>
> And let us also try and install glade-gnome-3 ...
>
> $ sudo apt-get install glade-gnome-3
>
> Well, even after these installs I still get the
> same error message when I try to convert
> my glade 2 XML file to a glade 3 XML file,
> exactly the same as reported originally.
>
> Traceback (most recent call last):
>   File "/usr/bin/libglade-convert", line 1212, in <module>
>     main()
>   File "/usr/bin/libglade-convert", line 1209, in main
>     handle_file(args[0])
>   File "/usr/bin/libglade-convert", line 1172, in handle_file
>     check_widget(widgetdef, requireslist)
>   File "/usr/bin/libglade-convert", line 1148, in check_widget
>     elif widget['class'][:5] == 'Gnome' and 'gnome' not in requirelist:
> TypeError: 'NoneType' object is unsubscriptable
>
>
>> From there, you will probably want to use GtkBuilder, for
>> that you will first have to figure out how to eliminate the
>> deprecated libgnomeui widgets from your project, then
>> convert the project format in the preferences.
>
> What exactly is libgnomeui? I am stuck and I am not sure
> about how to proceed with the XML glade 2 file conversion
> to glade 3 XML.
>
> Thank you for your help
> with the conversion,
>
> Saku
>
>>
>> Cheers,
>>        -Tristan
>>
>> On Sun, Nov 22, 2009 at 2:53 PM, Saku Masukita
>> <sakumasukita at googlemail.com> wrote:
>> >
>> > Hello,
>> >
>> > I am running ubuntu 9.04 and wanted to use glade
>> > so I ran the following command at a shell prompt:
>> >
>> > $ sudo apt-get install glade-3
>> >
>> > I have an old glade2 file from November of 2004
>> > and would like to convert it to the glade3 file format
>> > but for whatever reason the python conversion tool
>> > which comes with glade3 is failing to work.
>> >
>> > $ libglade-convert foo.glade
>> > Traceback (most recent call last):
>> >   File "/usr/bin/libglade-convert", line 1212, in <module>
>> >     main()
>> >   File "/usr/bin/libglade-convert", line 1209, in main
>> >     handle_file(args[0])
>> >   File "/usr/bin/libglade-convert", line 1172, in handle_file
>> >     check_widget(widgetdef, requireslist)
>> >   File "/usr/bin/libglade-convert", line 1148, in check_widget
>> >     elif widget['class'][:5] == 'Gnome' and 'gnome' not in requirelist:
>> > TypeError: 'NoneType' object is unsubscriptable
>> >
>> > I am not sure what is causing this.
>> >
>> > The glade 2 file which is causing these errors can be found at:
>> >
>> > http://whm.sourceforge.net/foo.glade
>> >
>> > Thank you for your help,
>> >
>> > Hopefully libglade-converter can be fixed to address this problem,
>> >
>> > Thanks,
>> >
>> > Saku Masukita
>> >
>> >
>> >
>> > _______________________________________________
>> > Glade-devel maillist  -  Glade-devel at lists.ximian.com
>> > http://lists.ximian.com/mailman/listinfo/glade-devel
>> >
>> >
>
>


More information about the Glade-devel mailing list