how to get gtk-xmhtml to compile
- From: Gary V Vaughan <garyv aethos co uk>
- To: gnome-list gnome org
- Subject: how to get gtk-xmhtml to compile
- Date: Thu, 12 Feb 1998 18:35:39 +0000
Hello all!
I recently checked out the newly-split sources from the gnome CVS head
having wrestled unsuccessfully with compilation (in the unsplit tree) for a
week or so.
I had been unable to get guile-gtk to compile for a while and having taken
some advice (thanks Tom, thanks Hari), decided that my stock debian gtk was
to blame for my lack of success and that I should start from scratch!
I thought that by reporting my trails to the list I might hope to save some
others from the same frustrations, and perhaps generate some FAQ-fodder and
the odd fix (If I am wasting bandwidth, just holler and I'll be quiet!).
Todays project was to get the Gnome gtk+, and gnome-libs compiled and
installed...
Rumour has it that the Gnome gtk+ is required by other parts of gnome
so I checked it out followed the install instructions and it all worked
first time!
Next, I checked out the most recent gnome-libs, and followed the install
instructions to find that libgnomeui was missing dlopen and friends on the
final link so (having checked the Makefile) I reran make as:
make LIBS='-lm -ldl'
libgnomeui linked this time and the build continued. Should I generate a
patch to fix the Makefile.am's and post? Or will some kind soul fix it
anyway?
It got as far as gtk-xmhtml, which was unable to resolve a symbol in its
final link =(O| A bit of detective work seems to reveal that the API has
an interface missing compared to my previous gtk+, so I generated the
attached diffs after exporting the extra symbol in gtk+. Having applied
this patch, recompiled gtk+ and all of gnome-libs, everything links and
installs successfully and the htmltest seems to work okay too (modulo *much*
hacking to get a working docbook/jade installation {debian hamm has a broken
jadetex!} -- if anyone else running debian wants to know how I got this
working let me know).
I'm not actually sure whether the error is in gtk+ or xmhtml (and I don't
have the sources to my old versions anymore so I can't check which has
changed), however, I suspect that this diff isn't the right thing to do, and
that gtk_signal_get_handlers is not an exported interface for a reason, so I
think the gtk-xmhtml maintainer needs to figure out whether it is possible to
circumvent this call and patch xmhtml's code so that gtk+ doesn't need to be
hacked like this.
I noticed there are quite a lot of missing-prototype and miscast pointer
warning generated by gtk-xmhtml during compilation... I don't remember
having these previous to the CVS split, so perhaps more internals have
changed. Is gtk-xmhtml considered stable (wrt gtk at least)?
Thats it for now, I'll be trying to get gnome-guile installed tomorrow.
Stay tuned!
Cheers,
Gary V Vaughan.
--
{#include #.signature#}
WARNING: Cannot find '.signature' template file
*** gtk+/gtk/gtksignal.c~ Thu Feb 12 16:54:13 1998
--- gtk+/gtk/gtksignal.c Thu Feb 12 17:02:28 1998
***************
*** 28,34 ****
typedef struct _GtkSignal GtkSignal;
typedef struct _GtkSignalInfo GtkSignalInfo;
- typedef struct _GtkHandler GtkHandler;
typedef struct _GtkHandlerInfo GtkHandlerInfo;
typedef struct _GtkEmission GtkEmission;
--- 28,33 ----
*************** struct _GtkSignal
*** 53,74 ****
gint nparams;
};
- struct _GtkHandler
- {
- guint id : 28;
- guint blocked : 1;
- guint object_signal : 1;
- guint after : 1;
- guint no_marshal : 1;
- guint16 ref_count;
- guint16 signal_type;
- GtkSignalFunc func;
- gpointer func_data;
- GtkSignalDestroy destroy_func;
- GtkHandler *prev;
- GtkHandler *next;
- };
-
struct _GtkHandlerInfo
{
GtkObject *object;
--- 52,57 ----
*************** done:
*** 1069,1075 ****
gtk_object_unref (object);
}
! static GtkHandler*
gtk_signal_get_handlers (GtkObject *object,
gint signal_type)
{
--- 1052,1058 ----
gtk_object_unref (object);
}
! GtkHandler*
gtk_signal_get_handlers (GtkObject *object,
gint signal_type)
{
*** gtk+/gtk/gtksignal.h~ Tue Feb 10 23:49:15 1998
--- gtk+/gtk/gtksignal.h Thu Feb 12 17:02:26 1998
*************** typedef void (*GtkSignalMarshal) (Gtk
*** 44,51 ****
--- 44,68 ----
GtkType return_type);
typedef void (*GtkSignalDestroy) (gpointer data);
+ typedef struct _GtkHandler GtkHandler;
typedef struct _GtkSignalQuery GtkSignalQuery;
+ struct _GtkHandler
+ {
+ guint id : 28;
+ guint blocked : 1;
+ guint object_signal : 1;
+ guint after : 1;
+ guint no_marshal : 1;
+ guint16 ref_count;
+ guint16 signal_type;
+ GtkSignalFunc func;
+ gpointer func_data;
+ GtkSignalDestroy destroy_func;
+ GtkHandler *prev;
+ GtkHandler *next;
+ };
+
struct _GtkSignalQuery
{
gint object_type;
*************** void gtk_signal_disconnect
*** 123,128 ****
--- 140,147 ----
gint anid);
void gtk_signal_disconnect_by_data (GtkObject *object,
gpointer data);
+ GtkHandler* gtk_signal_get_handlers (GtkObject *object,
+ gint signal_type);
void gtk_signal_handler_block (GtkObject *object,
gint anid);
void gtk_signal_handler_block_by_data (GtkObject *object,
*** gnome-libs/gtk-xmhtml/gtk-xmhtml.c~ Thu Feb 12 17:40:49 1998
--- gnome-libs/gtk-xmhtml/gtk-xmhtml.c Thu Feb 12 17:42:47 1998
*************** gtk_xmhtml_focus (GtkWidget *widget, Gdk
*** 738,744 ****
* }
*/
/* invalidate current selection if there is one */
! if (gtk_signal_get_handlers (html, gtk_xmhtml_signals [GTK_XMHTML_ANCHOR_TRACK])
&& html->html.anchor_current_cursor_element)
_XmHTMLTrackCallback (html, event, NULL);
--- 738,744 ----
* }
*/
/* invalidate current selection if there is one */
! if (gtk_signal_get_handlers (GTK_OBJECT(html), gtk_xmhtml_signals [GTK_XMHTML_ANCHOR_TRACK])
&& html->html.anchor_current_cursor_element)
_XmHTMLTrackCallback (html, event, NULL);
*** gnome-libs/gtk-xmhtml/toolkit.h~ Thu Feb 12 17:38:08 1998
--- gnome-libs/gtk-xmhtml/toolkit.h Thu Feb 12 17:43:03 1998
*************** extern void wrap_gdk_cc_get_pixels (int
*** 83,89 ****
gulong *colors,
gint *nallocated);
! #define CHECK_CALLBACK(w,f,g) (gtk_signal_get_handlers (w, gtk_xmhtml_signals [GTK_XMHTML_##g]))
#define XtCallCallbackList(a,b,c) fprintf (stderr, "Warning callback being invoked\n");
#define TPROTO(f,a,b,c,d) f (a, b)
#define Toolkit_Widget_Parent(w) GTK_WIDGET(w)->parent
--- 83,89 ----
gulong *colors,
gint *nallocated);
! #define CHECK_CALLBACK(w,f,g) (gtk_signal_get_handlers (GTK_OBJECT(w), gtk_xmhtml_signals [GTK_XMHTML_##g]))
#define XtCallCallbackList(a,b,c) fprintf (stderr, "Warning callback being invoked\n");
#define TPROTO(f,a,b,c,d) f (a, b)
#define Toolkit_Widget_Parent(w) GTK_WIDGET(w)->parent
PGP signature
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]