packages: g-wrap/g-wrap.spec, g-wrap/g-wrap-git.patch (NEW) - rel 4; add gi...

arekm arekm at pld-linux.org
Sun Sep 11 15:49:40 CEST 2011


Author: arekm                        Date: Sun Sep 11 13:49:40 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 4; add git fixes for guile 2

---- Files affected:
packages/g-wrap:
   g-wrap.spec (1.65 -> 1.66) , g-wrap-git.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/g-wrap/g-wrap.spec
diff -u packages/g-wrap/g-wrap.spec:1.65 packages/g-wrap/g-wrap.spec:1.66
--- packages/g-wrap/g-wrap.spec:1.65	Sun Sep 11 13:51:43 2011
+++ packages/g-wrap/g-wrap.spec	Sun Sep 11 15:49:34 2011
@@ -4,13 +4,14 @@
 Summary(pt_BR.UTF-8):	Um utilitário para geração automática de código para exportar bibliotecas C para guile scheme e rscheme
 Name:		g-wrap
 Version:	1.9.13
-Release:	3
+Release:	4
 Epoch:		2
 License:	LGPL v2.1+
 Group:		Libraries
 Source0:	http://download.savannah.gnu.org/releases/g-wrap/%{name}-%{version}.tar.gz
 # Source0-md5:	5952a389fd00f123dfb86d269a1d6d67
 Patch0:		%{name}-info.patch
+Patch1:		%{name}-git.patch
 URL:		http://www.nongnu.org/g-wrap/
 BuildRequires:	autoconf >= 2.50
 BuildRequires:	automake >= 1.5
@@ -75,6 +76,9 @@
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
+
+touch config.rpath
 
 %build
 %{__libtoolize}
@@ -146,6 +150,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.66  2011/09/11 13:49:34  arekm
+- rel 4; add git fixes for guile 2
+
 Revision 1.65  2011/09/11 11:51:43  arekm
 - rel 3; drop libffi version deps; gcc provides libffi seems to be enough
 

================================================================
Index: packages/g-wrap/g-wrap-git.patch
diff -u /dev/null packages/g-wrap/g-wrap-git.patch:1.1
--- /dev/null	Sun Sep 11 15:49:40 2011
+++ packages/g-wrap/g-wrap-git.patch	Sun Sep 11 15:49:34 2011
@@ -0,0 +1,174 @@
+commit ce9d1e1c64e3575c0987999263b82741235499e2
+Author: Andy Wingo <wingo at pobox.com>
+Date:   Tue Dec 15 11:40:58 2009 +0100
+
+    guile 1.9 compatibility in guile-runtime.c
+    
+    * guile/g-wrap/guile-runtime.c (gw_guile_add_subr_method): In Guile 1.9
+      it's OK to have a subr as a method procedure, which is good, as there
+      is no more scm_closure.
+      (gw_guile_ensure_latent_variables_hash_and_binder):
+      (gw_guile_procedure_to_method_public): Avoid deprecated SCM_INUM
+      things.
+
+diff --git a/guile/g-wrap/guile-runtime.c b/guile/g-wrap/guile-runtime.c
+index ad49108..f71e8fd 100644
+--- a/guile/g-wrap/guile-runtime.c
++++ b/guile/g-wrap/guile-runtime.c
+@@ -1,5 +1,5 @@
+ /**********************************************************************
+-Copyright (C) 2003-2005 Andreas Rottmann
++Copyright (C) 2003-2005, 2009 Andreas Rottmann
+  
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+@@ -197,6 +197,9 @@ gw_guile_add_subr_method (SCM generic, SCM subr, SCM all_specializers,
+     formals = scm_cons (scm_from_locale_symbol (buffer), formals);
+   }
+ 
++#if SCM_MAJOR_VERSION <= 1 && SCM_MINOR_VERSION < 9
++  /* in Guile 1.8 and before, the procedure for a method had to be an
++     interpreted closure. */
+   if (use_optional_args)
+   {
+     SCM f_apply = scm_c_eval_string ("apply");
+@@ -213,6 +216,9 @@ gw_guile_add_subr_method (SCM generic, SCM subr, SCM all_specializers,
+     procm = scm_closure (scm_list_2 (formals, scm_cons (subr, formals)),
+                          scm_top_level_env (SCM_TOP_LEVEL_LOOKUP_CLOSURE));
+   }
++#else
++  procm = subr;
++#endif
+ 
+   meth = scm_apply_0 (scm_sym_make,
+                       scm_list_5 (scm_class_method,
+@@ -456,7 +462,7 @@ gw_guile_ensure_latent_variables_hash_and_binder (SCM module)
+       return SCM_BOOL_F; /* won't get here */
+     }
+ 
+-    scm_struct_set_x (module, SCM_MAKINUM (scm_module_index_binder),
++    scm_struct_set_x (module, scm_from_int (scm_module_index_binder),
+                       scm_c_make_gsubr ("%gw-module-binder", 3, 0,
+                                         0, gw_module_binder_proc));
+ 
+@@ -531,11 +537,12 @@ gw_guile_procedure_to_method_public (SCM proc, SCM specializers,
+   SCM pair;
+   SCM existing_latents;
+   SCM entry;
++  int c_n_req_args;
+ 
+   SCM_VALIDATE_PROC (1, proc);
+   SCM_VALIDATE_LIST (2, specializers);
+   SCM_VALIDATE_SYMBOL (3, generic_name);
+-  SCM_VALIDATE_INUM (4, n_req_args);
++  SCM_VALIDATE_INT_COPY (4, n_req_args, c_n_req_args);
+   /* the fifth is a bool */
+   
+   generics = gw_guile_ensure_generics_module ();
+@@ -553,7 +560,7 @@ gw_guile_procedure_to_method_public (SCM proc, SCM specializers,
+                                 proc,
+                                 specializers,
+                                 scm_current_module (),
+-                                scm_to_int (n_req_args), 
++                                c_n_req_args,
+                                 scm_is_true (use_optional_args));
+       return;
+     }
+commit 6821dfbd43514e55ce78850d3aabf86f3326c8f4
+Author: Andy Wingo <wingo at pobox.com>
+Date:   Tue Dec 15 12:13:54 2009 +0100
+
+    use Scheme's add-method!
+    
+    * guile/g-wrap/guile-runtime.c: Keep a pointer to the `make' variable,
+      not the value.
+      (gw_guile_add_subr_method): Call the Scheme add-method! instead of
+      scm_add_method. The C function is removed in Guile 1.9.
+
+diff --git a/guile/g-wrap/guile-runtime.c b/guile/g-wrap/guile-runtime.c
+index f71e8fd..715e542 100644
+--- a/guile/g-wrap/guile-runtime.c
++++ b/guile/g-wrap/guile-runtime.c
+@@ -36,7 +36,8 @@ USA.
+ 
+ static SCM is_a_p_proc = SCM_UNSPECIFIED;
+ static SCM module_add_x = SCM_UNSPECIFIED;
+-static SCM scm_sym_make = SCM_UNSPECIFIED;
++static SCM var_make = SCM_UNSPECIFIED;
++static SCM var_add_method_x = SCM_UNSPECIFIED;
+ 
+ /* TODO: Use snarfer for kewords & symbols */
+ static SCM k_specializers = SCM_UNSPECIFIED;
+@@ -220,11 +221,11 @@ gw_guile_add_subr_method (SCM generic, SCM subr, SCM all_specializers,
+   procm = subr;
+ #endif
+ 
+-  meth = scm_apply_0 (scm_sym_make,
++  meth = scm_apply_0 (SCM_VARIABLE_REF (var_make),
+                       scm_list_5 (scm_class_method,
+                                   k_specializers, specializers,
+                                   k_procedure, procm));
+-  scm_add_method (generic, meth);
++  scm_call_2 (SCM_VARIABLE_REF (var_add_method_x), generic, meth);
+ } 
+ 
+ /* What's going on here?
+@@ -349,7 +350,7 @@ allocate_generic_variable (SCM module, SCM sym)
+ 
+   if (scm_is_false (var)) {
+     /* Symbol unbound, make a new generic */
+-    generic = scm_apply_0 (scm_sym_make,
++    generic = scm_apply_0 (SCM_VARIABLE_REF (var_make),
+                            scm_list_3 (scm_class_generic, k_name, sym));
+     return scm_make_variable (generic);
+   } else if (scm_is_true (scm_call_2 (is_a_p_proc, scm_variable_ref (var),
+@@ -361,7 +362,7 @@ allocate_generic_variable (SCM module, SCM sym)
+   } else if (scm_is_true (scm_procedure_p (scm_variable_ref (var)))) {
+     /* Make a generic that falls back on the original binding. NB: generics also
+        satisfy procedure?. */
+-    generic = scm_apply_0 (scm_sym_make,
++    generic = scm_apply_0 (SCM_VARIABLE_REF (var_make),
+                            scm_list_5 (scm_class_generic,
+                                        k_name, sym,
+                                        k_default, scm_variable_ref (var)));
+@@ -879,9 +880,10 @@ gw_guile_runtime_init (void)
+   {
+     scm_load_goops();
+ 
+-    scm_sym_make = scm_permanent_object (
+-            SCM_VARIABLE_REF (scm_c_module_lookup (scm_module_goops,
+-                                                   "make")));
++    var_make =
++      scm_permanent_object (scm_c_module_lookup (scm_module_goops, "make"));
++    var_add_method_x =
++      scm_permanent_object (scm_c_module_lookup (scm_module_goops, "add-method!"));
+     is_a_p_proc = scm_permanent_object (
+             SCM_VARIABLE_REF (scm_c_module_lookup (scm_module_goops,
+                                                    "is-a?")));
+From eeb1aaeaf26ef510cbb535a7e9e04776cd74926f Mon Sep 17 00:00:00 2001
+From: Andreas Rottmann <a.rottmann at gmx.at>
+Date: Sun, 27 Feb 2011 15:37:39 +0000
+Subject: Fix SCM_VERSION_17X compatibility macro definition for Guile 2.x
+
+* guile/g-wrap/guile-compatibility.h: Also define SCM_VERSION_17X on
+  Guile 2.x.
+---
+diff --git a/guile/g-wrap/guile-compatibility.h b/guile/g-wrap/guile-compatibility.h
+index 1169725..c875e98 100644
+--- a/guile/g-wrap/guile-compatibility.h
++++ b/guile/g-wrap/guile-compatibility.h
+@@ -38,8 +38,10 @@ extern "C" {
+ #endif
+ 
+ /* Define this macro if Guile 1.7.x or better is in use. */
+-#if defined (SCM_MINOR_VERSION) && (SCM_MINOR_VERSION >= 7) && \
+-    defined (SCM_MAJOR_VERSION) && (SCM_MAJOR_VERSION >= 1)
++#if defined (SCM_MAJOR_VERSION) &&                              \
++  ((SCM_MAJOR_VERSION >= 2) ||                                  \
++   ((SCM_MAJOR_VERSION == 1) &&                                 \
++    defined (SCM_MINOR_VERSION) && (SCM_MINOR_VERSION >= 7)))
+ #define SCM_VERSION_17X 1
+ #endif
+ 
+--
+cgit v0.8.3.4
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/g-wrap/g-wrap.spec?r1=1.65&r2=1.66&f=u



More information about the pld-cvs-commit mailing list