Re: g-wrap-1.9.9 and guile-gnome-platform 2.15.93 fails

Andreas Rottmann <[email protected]>
Newsgroups gmane.lisp.guile.gtk
Message-ID <[email protected]>
steve tell <[email protected]> writes:

> After building the recent g-wrap-1.9.9, I tried building
> guile-gnome-platform-2.15.93 with it, and ran into a problem:
>
>
>
> make[4]: Entering directory `/usr/src/redhat/BUILD/guile-gnome-platform-2.15.93/
> glib/gnome/gw'
> guile  -c \
>           "(debug-set! stack 400000) \
>            (use-modules (gnome-0)) \
>            (use-modules (g-wrap)) \
>            (use-modules (gnome gw gobject-spec)) \
>            (generate-wrapset 'guile 'gnome-gobject \"guile-gnome-gw-gobject\")"
> WARNING: (g-wrap util): imported module (srfi srfi-34) overrides core binding `raise'
> WARNING: (g-wrap): imported module (srfi srfi-34) overrides core binding `raise'
> WARNING: (g-wrap rti): imported module (srfi srfi-34) overrides core binding `raise'
> WARNING: (g-wrap c-types): imported module (srfi srfi-34) overrides core binding `raise'
> WARNING: (gnome gw support g-wrap): `declarations-cg' imported from both (g-wrap c-codegen) and (g-wrap scm-codegen)
> ERROR: No class slot with name `allowed-options' in class #<<gw-type-class> <gobject-object-type> 402489b0>
> make[4]: *** [guile-gnome-gw-gobject.c] Error 1
>
>
>
> The ERROR seems to be from this bit of code in support/gobject.scm:
>
> (for-each (lambda (null-ok-class)
>             (class-slot-set! null-ok-class 'allowed-options '(null-ok)))
>           (list <gobject-object-type> <gobject-boxed-type>
>                 <gobject-interface-type>))
>
>
> It gets past this if I reinstall g-wrap-1.9.9-RC1, but then chokes on
> some ffi.h issues (same ones I reported in RC1, and do seem fixed in the
> g-wrap release.)
>
> Anyone else seeing this "ERROR: No class slot with name `allowed-options'"
> and have any suggestions?
>
I've commited a fix to the bzr repo and attached the patch as well.


Regards, Rotty
-- 
Andreas Rottmann         | Rotty@ICQ      | 118634484@ICQ | [email protected]
http://rotty.uttx.net    | GnuPG Key: http://rotty.uttx.net/gpg.asc
Fingerprint              | C38A 39C5 16D7 B69F 33A3  6993 22C8 27F7 35A9 92E7
v2sw7MYChw5pr5OFma7u7Lw2m5g/l7Di6e6t5BSb7en6g3/5HZa2Xs6MSr1/2p7 hackerkey.com

Life is a sexually transmitted disease.

_______________________________________________
guile-gtk-general mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/guile-gtk-general
allowed-options.patch (text/x-diff, 2.8 KB)
=== modified file 'ChangeLog'
--- ChangeLog	2007-08-14 23:05:58 +0000
+++ ChangeLog	2007-08-17 08:40:39 +0000
@@ -1,3 +1,10 @@
+2007-08-15  Andreas Rottmann  <[email protected]>
+
+	* gnome/gw/support/gobject.scm (<gobject-object-type>)
+	(<gobject-boxed-type>, <gobject-interface-type>): Properly set
+	allowed-options via class declaration keyword instead of explicit
+	slot access.
+
 2007-08-13  Andy Wingo  <[email protected]>
 
 	* gnome/gw/support/gobject.scm (generate-wrapset): Make generated

=== modified file 'gnome/gw/support/gobject.scm'
--- gnome/gw/support/gobject.scm	2007-08-12 22:53:44 +0000
+++ gnome/gw/support/gobject.scm	2007-08-17 08:40:39 +0000
@@ -1,6 +1,6 @@
 ;; guile-gnome
 ;; Copyright (C) 2003,2004 Andy Wingo <wingo at pobox dot com>
-;; Copyright (C) 2004 Andreas Rottmann <rotty at debian dot org>
+;; Copyright (C) 2004,2007 Andreas Rottmann <rotty at debian dot org>
 
 ;; This program is free software; you can redistribute it and/or    
 ;; modify it under the terms of the GNU General Public License as   
@@ -194,7 +194,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Wrap objects.
 
-(define-class <gobject-object-type> (<gobject-classed-pointer-type>))
+(define-class <gobject-object-type> (<gobject-classed-pointer-type>)
+  #:allowed-options '(null-ok))
 
 (define-method (unwrap-null-checked (value <gw-value>)
                                     status-var
@@ -246,7 +247,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Wrap boxed types, represented on the scheme side by GValues.
 
-(define-class <gobject-boxed-type> (<gobject-classed-pointer-type>))
+(define-class <gobject-boxed-type> (<gobject-classed-pointer-type>)
+  #:allowed-options '(null-ok))
 
 (define-method (make-typespec (type <gobject-boxed-type>) (options <list>))
   (next-method type (cons 'unspecialized options)))
@@ -350,7 +352,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Wrap interfaces. We only understand interfaces implemented by objects.
 
-(define-class <gobject-interface-type> (<gobject-classed-pointer-type>))
+(define-class <gobject-interface-type> (<gobject-classed-pointer-type>)
+  #:allowed-options '(null-ok))
 
 (define-method (wrap-interface! (ws <gobject-wrapset-base>) . args)
   (let ((type (apply make <gobject-interface-type> args)))
@@ -516,11 +519,6 @@
                #:c-const-type-name (string-append "const " ctype))))
     (add-type-alias! ws ctype (name type))))
 
-(for-each (lambda (null-ok-class)
-            (class-slot-set! null-ok-class 'allowed-options '(null-ok)))
-          (list <gobject-object-type> <gobject-boxed-type>
-                <gobject-interface-type>))
-            
 ;; Used for functions that operate on classes, e.g.
 ;; gtk_widget_class_install_style_property,
 ;; gst_element_class_get_pad_template
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.