Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 578592 Details for
Bug 704520
drgeo fails to build with guile-2.0.1
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Fixes compilation against guile 2
drgeo-1.1.0-guile-fixups.patch (text/plain), 12.08 KB, created by
Jan Synacek
on 2012-04-19 10:49:45 UTC
(
hide
)
Description:
Fixes compilation against guile 2
Filename:
MIME Type:
Creator:
Jan Synacek
Created:
2012-04-19 10:49:45 UTC
Size:
12.08 KB
patch
obsolete
>diff -Naur drgeo-1.1.0-dist/drgenius_config.cc drgeo-1.1.0/drgenius_config.cc >--- drgeo-1.1.0-dist/drgenius_config.cc 2003-11-24 22:24:11.000000000 +0100 >+++ drgeo-1.1.0/drgenius_config.cc 2012-04-19 11:12:30.738659533 +0200 >@@ -80,7 +80,11 @@ > ret = gh_eval_str (scm); > g_free (scm); > g_free(value); >+#if SCM_MAJOR_VERSION < 2 > value = gh_scm2newstr (ret, NULL); >+#else >+ value = (gchar *) gh_scm2newstr ((const char *) ret, NULL); >+#endif > return value; > } > >diff -Naur drgeo-1.1.0-dist/drgenius_config.h drgeo-1.1.0/drgenius_config.h >--- drgeo-1.1.0-dist/drgenius_config.h 2004-04-29 22:05:20.000000000 +0200 >+++ drgeo-1.1.0/drgenius_config.h 2012-04-19 11:10:34.877671093 +0200 >@@ -25,7 +25,7 @@ > #ifndef DRGENIUS_CONFIG_H > #define DRGENIUS_CONFIG_H > >-#include <guile/gh.h> >+#include <guile_fixups.h> > #include <glade/glade.h> > #include <gtk/gtk.h> > #include <gmodule.h> >diff -Naur drgeo-1.1.0-dist/drgenius_main.cc drgeo-1.1.0/drgenius_main.cc >--- drgeo-1.1.0-dist/drgenius_main.cc 2004-04-09 22:00:04.000000000 +0200 >+++ drgeo-1.1.0/drgenius_main.cc 2012-04-19 11:10:34.879671093 +0200 >@@ -25,7 +25,6 @@ > #include <config.h> > #include <gtk/gtk.h> > #include <glade/glade.h> >-#include <guile/gh.h> > #include <libintl.h> > #include <string.h> > >@@ -36,6 +35,7 @@ > #include "drgeo_scm_interface.h" > #include "drgenius_help.h" > >+#include <guile_fixups.h> > > #define _(x) gettext (x) > #define N_(x) x >diff -Naur drgeo-1.1.0-dist/drgeo_init.cc drgeo-1.1.0/drgeo_init.cc >--- drgeo-1.1.0-dist/drgeo_init.cc 2004-01-20 23:14:46.000000000 +0100 >+++ drgeo-1.1.0/drgeo_init.cc 2012-04-19 11:10:34.880671092 +0200 >@@ -22,7 +22,7 @@ > * 675 Mass Ave, Cambridge, MA 02139, USA. > */ > >-#include <guile/gh.h> >+#include <guile_fixups.h> > #include <glib.h> > > void >diff -Naur drgeo-1.1.0-dist/geo/drgeo_scm_api.h drgeo-1.1.0/geo/drgeo_scm_api.h >--- drgeo-1.1.0-dist/geo/drgeo_scm_api.h 2003-09-23 22:21:47.000000000 +0200 >+++ drgeo-1.1.0/geo/drgeo_scm_api.h 2012-04-19 11:10:34.881671091 +0200 >@@ -24,7 +24,7 @@ > #ifndef DRGEO_SCM_API_H > #define DRGEO_SCM_API_H > >-#include <guile/gh.h> >+#include <guile_fixups.h> > > > #ifdef __cplusplus >diff -Naur drgeo-1.1.0-dist/geo/drgeo_scm_helper.h drgeo-1.1.0/geo/drgeo_scm_helper.h >--- drgeo-1.1.0-dist/geo/drgeo_scm_helper.h 2003-08-16 21:11:55.000000000 +0200 >+++ drgeo-1.1.0/geo/drgeo_scm_helper.h 2012-04-19 11:10:34.882671091 +0200 >@@ -25,7 +25,7 @@ > #define DRGEO_SCM_HELPER_H > > #include <gtk/gtk.h> >-#include <guile/gh.h> >+#include <guile_fixups.h> > #include "drgeo_drgeoVector.h" > > drgeoPoint & scmCoord2drgeoPoint (SCM x, SCM y); >diff -Naur drgeo-1.1.0-dist/geo/drgeo_scm_interface.cc drgeo-1.1.0/geo/drgeo_scm_interface.cc >--- drgeo-1.1.0-dist/geo/drgeo_scm_interface.cc 2004-10-17 10:50:11.000000000 +0200 >+++ drgeo-1.1.0/geo/drgeo_scm_interface.cc 2012-04-19 11:13:45.705652054 +0200 >@@ -789,7 +789,11 @@ > { > gchar *str; > >+#if SCM_MAJOR_VERSION < 2 > str = gh_scm2newstr (name, NULL); >+#else >+ str = (gchar *) gh_scm2newstr ((const char *) name, NULL); >+#endif > item->setName (str); > g_free (str); > item->initName (); >@@ -807,7 +811,11 @@ > mdi->newGeometricDocument (NULL); > figure = ((geoView *) mdi->activeView ())->figure (); > >+#if SCM_MAJOR_VERSION < 2 > str = gh_scm2newstr (name, NULL); >+#else >+ str = (gchar *) gh_scm2newstr ((const char *) name, NULL); >+#endif > mdi->renameView (((drgeoGtkDrawable *) figure->getDrawable())->getGeoView (), str); > g_free (str); > >diff -Naur drgeo-1.1.0-dist/geo/drgeo_scm_interface.h drgeo-1.1.0/geo/drgeo_scm_interface.h >--- drgeo-1.1.0-dist/geo/drgeo_scm_interface.h 2003-10-06 13:42:00.000000000 +0200 >+++ drgeo-1.1.0/geo/drgeo_scm_interface.h 2012-04-19 11:10:34.885671091 +0200 >@@ -24,7 +24,7 @@ > #ifndef DRGEO_SCM_INTERFACE_H > #define DRGEO_SCM_INTERFACE_H > >-#include <guile/gh.h> >+#include <guile_fixups.h> > #include "drgeo_figure.h" > > /* define scm_interface into a class */ >diff -Naur drgeo-1.1.0-dist/geo/drgeo_script.cc drgeo-1.1.0/geo/drgeo_script.cc >--- drgeo-1.1.0-dist/geo/drgeo_script.cc 2004-08-25 21:27:03.000000000 +0200 >+++ drgeo-1.1.0/geo/drgeo_script.cc 2012-04-19 11:14:44.169646221 +0200 >@@ -21,7 +21,7 @@ > * 675 Mass Ave, Cambridge, MA 02139, USA. > */ > >-#include <guile/gh.h> >+#include <guile_fixups.h> > #include "config.h" > #include "drgeo_script.h" > #include "drgeo_drawable.h" >@@ -153,7 +153,11 @@ > } > } > else if (gh_string_p (ret)) >+#if SCM_MAJOR_VERSION < 2 > setString (gh_scm2newstr (ret, NULL)); >+#else >+ setString ((char *) gh_scm2newstr ((const char *) ret, NULL)); >+#endif > else > setString (g_strdup (_("Unprintable result"))); > } >diff -Naur drgeo-1.1.0-dist/geo/drgeo_script.h drgeo-1.1.0/geo/drgeo_script.h >--- drgeo-1.1.0-dist/geo/drgeo_script.h 2003-09-22 18:38:19.000000000 +0200 >+++ drgeo-1.1.0/geo/drgeo_script.h 2012-04-19 11:10:34.887671091 +0200 >@@ -24,7 +24,7 @@ > #ifndef DRGEO_SCRIPT_H > #define DRGEO_SCRIPT_H > >-#include <guile/gh.h> >+#include <libguile.h> > #include "drgeo_value.h" > > class script:public value >diff -Naur drgeo-1.1.0-dist/geo/Makefile.in drgeo-1.1.0/geo/Makefile.in >--- drgeo-1.1.0-dist/geo/Makefile.in 2005-07-27 09:36:22.000000000 +0200 >+++ drgeo-1.1.0/geo/Makefile.in 2012-04-19 11:10:34.919671089 +0200 >@@ -192,7 +192,8 @@ > -DDRGEO_GLADEDIR=\""$(gladedir)"\" \ > -DDRGEO_ENCODEDIR=\""$(encodedir)"\" \ > -I$(includedir) \ >- $(DRGEO_CFLAGS) >+ $(DRGEO_CFLAGS) \ >+ $(GUILE_CFLAGS) > > > noinst_LIBRARIES = libgeo.a >@@ -247,7 +248,8 @@ > drgeo_scm_interface.h drgeo_scm_interface.cc \ > drgeo_scm_api.h drgeo_scm_api.cc \ > drgeo_scm_helper.h drgeo_scm_helper.cc \ >- drgeo_gtkhelpers.h drgeo_gtkhelpers.cc >+ drgeo_gtkhelpers.h drgeo_gtkhelpers.cc \ >+ ../guile-fixups.h ../guile-fixups.cc > > > CLEANFILES = $(BUILT_SOURCES) >diff -Naur drgeo-1.1.0-dist/guile_fixups.cc drgeo-1.1.0/guile_fixups.cc >--- drgeo-1.1.0-dist/guile_fixups.cc 1970-01-01 01:00:00.000000000 +0100 >+++ drgeo-1.1.0/guile_fixups.cc 2012-04-19 11:10:34.891671091 +0200 >@@ -0,0 +1,140 @@ >+#include <guile_fixups.h> >+#if SCM_MAJOR_VERSION >= 2 >+#include <assert.h> >+ >+static SCM >+eval_str_wrapper (void *data) >+{ >+ char *scheme_code = (char *) data; >+ return gh_eval_str (scheme_code); >+} >+ >+static SCM >+eval_file_wrapper (void *data) >+{ >+/* gh_eval_t real_eval_proc = (gh_eval_t) (* ((gh_eval_t *) data)); */ >+ >+ char *scheme_code = (char *) data; >+ return gh_eval_file (scheme_code); >+} >+ >+SCM >+gh_eval_str_with_catch (const char *scheme_code, scm_t_catch_handler handler) >+{ >+ /* FIXME: not there yet */ >+ return gh_catch (SCM_BOOL_T, (scm_t_catch_body) eval_str_wrapper, (void *) scheme_code, >+ (scm_t_catch_handler) handler, (void *) scheme_code); >+} >+ >+SCM >+gh_eval_file_with_catch (const char *scheme_code, scm_t_catch_handler handler) >+{ >+ /* FIXME: not there yet */ >+ return gh_catch (SCM_BOOL_T, (scm_t_catch_body) eval_file_wrapper, >+ (void *) scheme_code, (scm_t_catch_handler) handler, >+ (void *) scheme_code); >+} >+ >+/* This function takes care of all real GH initialization. Since it's >+ called by scm_boot_guile, it can safely work with heap objects, or >+ call functions that do so. */ >+static void >+gh_launch_pad (void *closure, int argc, char **argv) >+{ >+ main_prog_t c_main_prog = (main_prog_t) closure; >+ >+ c_main_prog (argc, argv); >+ exit (0); >+} >+ >+/* starts up the Scheme interpreter, and stays in it. c_main_prog() >+ is the address of the user's main program, since gh_enter() never >+ returns. */ >+void >+gh_enter (int argc, char *argv[], main_prog_t c_main_prog) >+{ >+ scm_boot_guile (argc, argv, gh_launch_pad, (void *) c_main_prog); >+ /* never returns */ >+} >+ >+static void * >+scm2whatever (SCM obj, void *m, size_t size) >+{ >+ scm_t_array_handle handle; >+ size_t len; >+ ssize_t inc; >+ const void *elts; >+ >+ elts = scm_uniform_vector_elements (obj, &handle, &len, &inc); >+ >+ if (inc != 1) >+ scm_misc_error (NULL, "only contiguous vectors can be converted: ~a", >+ scm_list_1 (obj)); >+ >+ if (m == 0) >+ m = malloc (len * sizeof (size)); >+ if (m != NULL) >+ memcpy (m, elts, len * size); >+ >+ scm_array_handle_release (&handle); >+ >+ return m; >+} >+ >+#define SCM2WHATEVER(obj,pred,utype,mtype) \ >+ if (scm_is_true (pred (obj))) \ >+ { \ >+ assert (sizeof (utype) == sizeof (mtype)); \ >+ return (mtype *)scm2whatever (obj, m, sizeof (utype)); \ >+ } >+ >+/* Convert a vector, weak vector or uniform vector into an array of >+ doubles. If result array in arg 2 is NULL, malloc a new one. If >+ out of memory, return NULL. */ >+double * >+gh_scm2doubles (SCM obj, double *m) >+{ >+ long i, n; >+ SCM val; >+ if (SCM_IMP (obj)) >+ scm_wrong_type_arg (0, 0, obj); >+ >+ /* XXX - f32vectors are rejected now. >+ */ >+ SCM2WHATEVER (obj, scm_f64vector_p, double, double) >+ >+ switch (SCM_TYP7 (obj)) >+ { >+ case scm_tc7_vector: >+ case scm_tc7_wvect: >+ n = SCM_SIMPLE_VECTOR_LENGTH (obj); >+ for (i = 0; i < n; ++i) >+ { >+ val = SCM_SIMPLE_VECTOR_REF (obj, i); >+ if (!SCM_I_INUMP (val) >+ && !(SCM_BIGP (val) || SCM_REALP (val))) >+ scm_wrong_type_arg (0, 0, val); >+ } >+ if (m == 0) >+ m = (double *) malloc (n * sizeof (double)); >+ if (m == NULL) >+ return NULL; >+ for (i = 0; i < n; ++i) >+ { >+ val = SCM_SIMPLE_VECTOR_REF (obj, i); >+ if (SCM_I_INUMP (val)) >+ m[i] = SCM_I_INUM (val); >+ else if (SCM_BIGP (val)) >+ m[i] = scm_to_long (val); >+ else >+ m[i] = SCM_REAL_VALUE (val); >+ } >+ break; >+ >+ default: >+ scm_wrong_type_arg (0, 0, obj); >+ } >+ return m; >+} >+ >+#endif /* SCM_MAJOR_VERSION */ >diff -Naur drgeo-1.1.0-dist/guile_fixups.h drgeo-1.1.0/guile_fixups.h >--- drgeo-1.1.0-dist/guile_fixups.h 1970-01-01 01:00:00.000000000 +0100 >+++ drgeo-1.1.0/guile_fixups.h 2012-04-19 11:10:34.890671091 +0200 >@@ -0,0 +1,42 @@ >+#ifndef _GUILE_FIXUPS_ >+#define _GUILE_FIXUPS_ >+ >+#include <libguile/version.h> >+ >+#if SCM_MAJOR_VERSION < 2 >+#include <guile/gh.h> >+ >+#elif SCM_MAJOR_VERSION == 2 >+#include <libguile.h> >+ >+#define gh_scm2int scm_to_int >+#define gh_scm2double scm_to_double >+#define gh_string_p scm_is_string >+#define gh_scm2newstr(a, b) scm_str2string((a)) >+#define gh_scm2ulong scm_to_ulong >+#define gh_car scm_car >+#define gh_cdr scm_cdr >+#define gh_cadr scm_cadr >+#define gh_null_p(l) scm_is_true(scm_null_p((l))) >+#define gh_ulong2scm scm_from_ulong >+#define gh_double2scm scm_from_double >+#define gh_list scm_list_n >+#define gh_new_procedure(p, f, nr, no, v) scm_c_define_gsubr((p), (size_t)(f), (nr), (no), (v)) >+#define gh_load(fname) gh_eval_file(fname) >+#define gh_eval_str scm_c_eval_string >+#define gh_catch scm_internal_catch >+#define gh_str02scm scm_from_locale_string >+#define gh_eval_file(f) scm_primitive_load(gh_str02scm((f))); >+ >+double *gh_scm2doubles (SCM obj, double *m); >+ >+SCM gh_eval_file_with_catch (const char *scheme_code, scm_t_catch_handler handler); >+SCM gh_eval_str_with_catch (const char *scheme_code, scm_t_catch_handler handler); >+ >+typedef void (*main_prog_t) (int argc, char **argv); >+typedef void (*repl_prog_t) (int argc, char **argv); >+void gh_enter (int argc, char *argv[], main_prog_t c_main_prog); >+ >+#endif // SCM_MAJOR_VERSION >+ >+#endif // _GUILE_FIXUPS_ >diff -Naur drgeo-1.1.0-dist/Makefile.am drgeo-1.1.0/Makefile.am >--- drgeo-1.1.0-dist/Makefile.am 2005-07-11 22:26:46.000000000 +0200 >+++ drgeo-1.1.0/Makefile.am 2012-04-19 11:10:34.888671091 +0200 >@@ -36,7 +36,8 @@ > drgeo_init.h \ > drgeo_init.cc \ > drgeo_printer.h \ >- drgeo_printer.cc >+ drgeo_printer.cc \ >+ guile_fixups.cc > > drgeo_LDFLAGS = -export-dynamic > >diff -Naur drgeo-1.1.0-dist/Makefile.in drgeo-1.1.0/Makefile.in >--- drgeo-1.1.0-dist/Makefile.in 2005-07-27 09:36:20.000000000 +0200 >+++ drgeo-1.1.0/Makefile.in 2012-04-19 11:10:34.920671088 +0200 >@@ -217,7 +217,9 @@ > drgeo_init.h \ > drgeo_init.cc \ > drgeo_printer.h \ >- drgeo_printer.cc >+ drgeo_printer.cc \ >+ guile_fixups.cc \ >+ guile_fixups.h > > > drgeo_LDFLAGS = -export-dynamic >@@ -253,7 +255,7 @@ > drgenius_config.$(OBJEXT) drgeo_adaptDialog.$(OBJEXT) \ > drgenius_view.$(OBJEXT) geo_view.$(OBJEXT) \ > editor_view.$(OBJEXT) drgeo_init.$(OBJEXT) \ >- drgeo_printer.$(OBJEXT) >+ drgeo_printer.$(OBJEXT) guile_fixups.$(OBJEXT) > drgeo_OBJECTS = $(am_drgeo_OBJECTS) > drgeo_DEPENDENCIES = $(top_builddir)/geo/libgeo.a >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 704520
: 578592 |
578593