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 <[email protected]> +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 <[email protected]> +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 <[email protected]> +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 _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
