Tiny Core Linux

Tiny Core Extensions => TCE Talk => Topic started by: bmarkus on October 09, 2009, 12:02:23 PM

Title: gtk2 is too old (?)
Post by: bmarkus on October 09, 2009, 12:02:23 PM
Current gtk2 version in the repo is 2.14.7 dated back to January 2009, while current is 2.18.2

It is causing a problem maintaining one of my extensions (libwnck) where 2.14.7 is too old to compile latest version.

Jason:

I know your are working a lot for TC. It is not urgent, but soon will cause problems keeping extensions up to date as gtk2 is one the most crucial library and used by many extensions.

Title: Re: gtk2 is too old (?)
Post by: Jason W on October 09, 2009, 12:44:42 PM
I have ignored gtk2 for as long as I can.  :)   It being a critical library, I left it alone since it was working so well.  Gtk2 now requires more hardcoded X lib dependencies, but I have built it once last week and with the other libs I put in the Xlibs_support extension it should be all good. 

I will shoot for it tonight.  It may require pygtk to be updated as it's defs are only for 2.10, 2.12, and 2.14.  But pygtk is a quick build.

Title: Re: gtk2 is too old (?)
Post by: bmarkus on October 09, 2009, 12:50:23 PM
To be on the safe side maybe you can make a test version like with Python 2.5 -> 2.6 move not to risk applications stability.
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 09, 2009, 12:52:57 PM
I think that would be a good idea since there seems to be more substantial changes from our version to 2.18.  I will upload a test version tonight to allow testing.
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 10, 2009, 02:34:14 AM
Ok.  Here is a build to test, left as one for testing - I will split it up before posting.  It creates the /usr/local/tce.installed/{gtk2,gtk2-devs,gtk2-locales} with the startup script.  It is named aaa-gtk2-testing so it will get loaded first upon boot and no other apps will complain of gtk2 not being available in the tcedir.  I uploaded it here since it is not meant for widespread use so it is no in the repo.

http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/2.x/tce/src/gtk-testing/
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 10, 2009, 03:06:28 PM
Gtk2 2.18 seems to play well with current pygtk and the gtk apps I normally use.  I will test rebuild Shiretoko and other apps with it, and if I don't see issues or get negative feedback I will seperate this into packages and replace the current gtk2, gtk2-dev, and gtk2-locale extensions in a week.
Title: Re: gtk2 is too old (?)
Post by: Juanito on October 11, 2009, 07:46:18 AM
Is /usr/local/include/gtk-2.0/gdk/gdkconfig.h missing from the extension, maybe?

I get this when trying to compile rygel-0.4.2 and bluez-gnome-1.8 against the new extension:
Code: [Select]
make[3]: Leaving directory `/usr/src/rygel-0.4.2/src/rygel'
Making all in ui
make[3]: Entering directory `/usr/src/rygel-0.4.2/src/ui'
  CC     rygel-preferences-dialog.o
In file included from /usr/local/include/gtk-2.0/gdk/gdkscreen.h:32,
                 from /usr/local/include/gtk-2.0/gdk/gdkapplaunchcontext.h:31,
                 from /usr/local/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/local/include/gtk-2.0/gtk/gtk.h:32,
                 from rygel-preferences-dialog.c:30:
/usr/local/include/gtk-2.0/gdk/gdktypes.h:55:23: error: gdkconfig.h: No such file or directory
In file included from /usr/local/include/gtk-2.0/gtk/gtkwindow.h:35,
                 from /usr/local/include/gtk-2.0/gtk/gtkdialog.h:35,
                 from /usr/local/include/gtk-2.0/gtk/gtkaboutdialog.h:32,
                 from /usr/local/include/gtk-2.0/gtk/gtk.h:33,
                 from rygel-preferences-dialog.c:30:
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:77: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:78: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:79: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:80: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:81: error: field 'GSEAL' declared as a function

Edit: Should Xlibs_support and Xorg-7.4-devs be deps for the extension?
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 11, 2009, 09:11:53 AM
I made the dep file more in line with gtk2-dev.  I will look into the header file, most likely I need to recompile.
Title: Re: gtk2 is too old (?)
Post by: Juanito on October 11, 2009, 10:46:42 AM
I checked again with the current gtk2 -  bluez-gnome compiles without problems and I cannot test rygel as it requires gtk2 > 2.16.
Title: Re: gtk2 is too old (?)
Post by: bmarkus on October 11, 2009, 04:49:42 PM
gtk2.tczl is listed in aaa-gtk2-testing.tczl.dep which blocks system startup (TC 2.4.1):

Quote
Xorg-7.4-dev.tcz
perl5.tcz
atk.tczl
atk-devs.tcz
cairo.tczl
cairo-devs.tcz
glib2.tczl
glib2-dev.tcz
fontconfig.tczl
fontconfig-devs.tcz
expat2.tczl
expat2-devs.tcz
libxml2.tczl
libxml2-devs.tcz
graphics-libs-1.tczl
graphics-libs-1-devs.tcz
gtk2.tczl
pixman.tczl
pixman-devs.tcz
pango.tczl
pango-devs.tcz
Xlibs_support.tczl

Removing it systems starts and applications look OK.

However can't compile libwnck, there is a long list of error messages, mostly duplicate member and field '...' declared as a function in different header files. Same result compiling other applications.
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 11, 2009, 08:51:44 PM
I will adjust the dep file.

I will need to recompile, may not get to it this week though.

EDIT:  But I will see what I can do.
Title: Re: gtk2 is too old (?)
Post by: Juanito on October 11, 2009, 11:32:07 PM
there is a long list of error messages, mostly duplicate member and field '...' declared as a function in different header files. Same result compiling other applications.

A useful trick, in case you didn't know, is to do as follows:
Code: [Select]
$ script compile_error
$ make
<ctrl-d>
$ beaver compile_error

This will allow you to see the initial make error in case the terminal window buffer overflows.
Title: Re: gtk2 is too old (?)
Post by: bmarkus on October 12, 2009, 01:59:10 AM
there is a long list of error messages, mostly duplicate member and field '...' declared as a function in different header files. Same result compiling other applications.

A useful trick, in case you didn't know, is to do as follows:
Code: [Select]
$ script compile_error
$ make
<ctrl-d>
$ beaver compile_error

This will allow you to see the initial make error in case the terminal window buffer overflows.

Thanks for the advice on script command. I have never used it, more convenient than redirect output. I'm using MC for editing files. So to see messages is not a problem, but to fix them  ??? . These are the messages compiling libwnck:

Quote
root@box:/mnt/sdb3/src/libwnck/libwnck-2.28.0# make
make  all-recursive
make[1]: Entering directory `/mnt/sdb3/src/libwnck/libwnck-2.28.0'
Making all in libwnck
make[2]: Entering directory `/mnt/sdb3/src/libwnck/libwnck-2.28.0/libwnck'
  CC     wnck-enum-types.lo
In file included from /usr/local/include/gtk-2.0/gdk/gdkscreen.h:32,
                 from /usr/local/include/gtk-2.0/gdk/gdkapplaunchcontext.h:31,
                 from /usr/local/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/local/include/gtk-2.0/gtk/gtk.h:32,
                 from ../libwnck/pager.h:27,
                 from ../libwnck/libwnck.h:32,
                 from wnck-enum-types.c:4:
/usr/local/include/gtk-2.0/gdk/gdktypes.h:55:23: error: gdkconfig.h: No such file or directory
In file included from /usr/local/include/gtk-2.0/gtk/gtkwindow.h:35,
                 from /usr/local/include/gtk-2.0/gtk/gtkdialog.h:35,
                 from /usr/local/include/gtk-2.0/gtk/gtkaboutdialog.h:32,
                 from /usr/local/include/gtk-2.0/gtk/gtk.h:33,
                 from ../libwnck/pager.h:27,
                 from ../libwnck/libwnck.h:32,
                 from wnck-enum-types.c:4:
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:77: warning: parameter names (without types) in function declaration
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:77: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:78: warning: parameter names (without types) in function declaration
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:78: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:79: warning: parameter names (without types) in function declaration
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:79: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:80: warning: parameter names (without types) in function declaration
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:80: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:81: warning: parameter names (without types) in function declaration
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:81: error: field 'GSEAL' declared as a function
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:78: error: duplicate member 'GSEAL'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:79: error: duplicate member 'GSEAL'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:79: error: duplicate member '({anonymous})'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:80: error: duplicate member 'GSEAL'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:80: error: duplicate member '({anonymous})'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:80: error: duplicate member '({anonymous})'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:81: error: duplicate member 'GSEAL'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:81: error: duplicate member '({anonymous})'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:81: error: duplicate member '({anonymous})'
/usr/local/include/gtk-2.0/gtk/gtkaccelgroup.h:81: error: duplicate member '({anonymous})
...
...
...
...
Title: Re: gtk2 is too old (?)
Post by: Juanito on October 12, 2009, 03:41:24 AM
To be confirmed, but I believe the problem is this:
Code: [Select]
/usr/local/include/gtk-2.0/gdk/gdktypes.h:55:23: error: gdkconfig.h: No such file or directory
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 12, 2009, 07:19:01 AM
As I made the extension with the "touch /tmp/mark && make install && find /usr/local......" method so the pixbuf loaders would be created, there likely is an issue with missing files. 

I will rebuild this when I can, and using Arch or Gentoo's build method I will use the DESTDIR option and create the immodule and pixbuf loaders manually in the DESTDIR directory so there will be no missing files.,
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 12, 2009, 11:08:52 AM
I (hopefully) fixed the package and uploaded it, it contains that missing header now.
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 12, 2009, 02:48:00 PM
Reuploaded with fixed permissions.
Title: Re: gtk2 is too old (?)
Post by: bmarkus on October 12, 2009, 02:53:46 PM
It is OK now, all applications I tested compiled and work correctly. For me it looks good, great job Jason!

Just one notice. md5sum was not updated and had to be recreated. It was easy to recognize thanks to the file date.
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 12, 2009, 03:05:30 PM
It seems that DESTDIR played better than doing a live make install with the /tmp/mark routine.  Not saying that the /tmp/mark method is faulty, but something was amiss somewhere for that instance.  CRUX, Arch, and Gentoo port build files give some useful info on packages that need extra steps when installing into a temporary directory.  Creating immodules and loaders was the key with gtk2.

Maybe this one will be a keeper!
Title: Re: gtk2 is too old (?)
Post by: bmarkus on October 12, 2009, 03:16:23 PM
I'm using the new test version and do not see any issue.  :-*
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 12, 2009, 10:44:01 PM
This seems to behave fine for runtime on the gtk apps I use, and after some compile tests of my own I hope to upload this later this week.
Title: Re: gtk2 is too old (?)
Post by: Juanito on October 13, 2009, 05:53:16 AM
rygel compiles against your latest version without errors now  ;D
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 18, 2009, 01:21:46 PM
2.18.3 is not installing the locales, when I get that situated I think it is good to go for the repo.
Title: Re: gtk2 is too old (?)
Post by: Jason W on October 21, 2009, 11:08:56 PM
I rebuilt my system and forgot to install gettext.  Locales are good to go now.

Hopefully will upload this tomorrow - version 2.18.3.