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