From 1b02c473a20e83c10ba3e5bfdf2b9cd9e5179371 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Thu, 1 Jul 2010 02:59:08 -0500 Subject: business/gnucash: Patched to build with goffice-0.8.x API. Signed-off-by: Robby Workman --- business/gnucash/README | 11 +-- business/gnucash/gnucash.SlackBuild | 13 ++- business/gnucash/gnucash_goffice.patch | 172 +++++++++++++++++++++++++++++++++ 3 files changed, 183 insertions(+), 13 deletions(-) create mode 100644 business/gnucash/gnucash_goffice.patch (limited to 'business') diff --git a/business/gnucash/README b/business/gnucash/README index 9bce07c34d..b97f84f9ec 100644 --- a/business/gnucash/README +++ b/business/gnucash/README @@ -1,10 +1,9 @@ GNUCash is opensource accounting software. -This requires the following additional software, and it is suggested -that you build them in this order: - -slib libofx ORBit2 GConf libtasn1 gnome-keyring gnome-mime-data libbonobo -gnome-vfs libgnomecanvas libgnome libbonoboui libgnomeui libgnomecups -libgnomeprint libgnomeprintui gtkhtml goffice +This requires slib, libofx, ORBit2, GConf, libtasn1, gnome-keyring, +gnome-mime-data, libbonobo, gnome-vfs, libgnomecanvas, libgnome, libbonoboui, +libgnomeui, libgnomecups, libgnomeprint, libgnomeprintui, gtkhtml, and goffice. aqbanking is optional, but it's not available at SlackBuilds.org. + +Building the deps in the order listed above should give the desired results. diff --git a/business/gnucash/gnucash.SlackBuild b/business/gnucash/gnucash.SlackBuild index a4f3bd937c..af50c2a990 100644 --- a/business/gnucash/gnucash.SlackBuild +++ b/business/gnucash/gnucash.SlackBuild @@ -24,15 +24,13 @@ PRGNAM=gnucash VERSION=2.2.9 -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} -# Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i486 ;; arm*) ARCH=arm ;; - # Unless $ARCH is already set, use uname -m for all other archs: *) ARCH=$( uname -m ) ;; esac fi @@ -71,6 +69,9 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; +# Patch for new goffice API +patch -p1 < $CWD/gnucash_goffice.patch + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ @@ -96,10 +97,8 @@ mkdir -p $PKG/etc/gconf/gconf.xml.defaults find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -( cd $PKG/usr/man - find . -type f -exec gzip -9 {} \; - for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done -) +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done rm -f $PKG/usr/info/dir gzip -9 $PKG/usr/info/* diff --git a/business/gnucash/gnucash_goffice.patch b/business/gnucash/gnucash_goffice.patch new file mode 100644 index 0000000000..346410a703 --- /dev/null +++ b/business/gnucash/gnucash_goffice.patch @@ -0,0 +1,172 @@ +diff -Naur gnucash-2.2.9.orig//src/gnome-utils/gnc-html-graph-gog.c gnucash-2.2.9//src/gnome-utils/gnc-html-graph-gog.c +--- gnucash-2.2.9.orig//src/gnome-utils/gnc-html-graph-gog.c 2008-01-07 20:06:26.000000000 -0500 ++++ gnucash-2.2.9//src/gnome-utils/gnc-html-graph-gog.c 2010-06-30 08:42:43.009625615 -0400 +@@ -46,13 +46,31 @@ + #ifndef GTKHTML_USES_GTKPRINT + # include + #endif +-#include ++/* everything inside the following #ifndef can be safely removed when gnucash ++requires libgoffice >= 0.7.5, the contents of the #else block must stay. */ ++#ifndef GOG_TYPE_GRAPH ++# define GOG_TYPE_GRAPH GOG_GRAPH_TYPE ++# define GO_TYPE_PLUGIN_LOADER_MODULE GO_PLUGIN_LOADER_MODULE_TYPE ++# define GOG_TYPE_RENDERER GOG_RENDERER_TYPE ++# include ++# define GOStyle GogStyle ++# define go_styled_object_get_style gog_styled_object_get_style ++# define GO_STYLED_OBJECT GOG_STYLED_OBJECT ++# define GO_STYLE_FILL_PATTERN GOG_FILL_STYLE_PATTERN ++# define go_style_set_text_angle gog_style_set_text_angle ++#else ++# include ++# include ++#endif ++ + #include + #include + #include ++#include ++#include ++#include + #include + #include +-#include + #include + #include + #include +@@ -98,7 +116,7 @@ + libgoffice_init(); + + /* Initialize plugins manager */ +- go_plugins_init (NULL, NULL, NULL, NULL, TRUE, GO_PLUGIN_LOADER_MODULE_TYPE); ++ go_plugins_init (NULL, NULL, NULL, NULL, TRUE, GO_TYPE_PLUGIN_LOADER_MODULE); + + gnc_html_register_object_handler( "gnc-guppi-pie", handle_piechart ); + gnc_html_register_object_handler( "gnc-guppi-bar", handle_barchart ); +@@ -189,7 +207,7 @@ + gog_object_update (GOG_OBJECT (graph)); + + #if defined(HAVE_GOFFICE_0_5) +- renderer = GOG_RENDERER (g_object_new (GOG_RENDERER_TYPE, ++ renderer = GOG_RENDERER (g_object_new (GOG_TYPE_RENDERER, + "model", graph, + NULL)); + update_status = gog_renderer_update (renderer, eb->width, eb->height); +@@ -229,7 +247,7 @@ + GogObject **out_chart, + GogPlot **out_plot) + { +- *out_graph = g_object_new(GOG_GRAPH_TYPE, NULL); ++ *out_graph = g_object_new(GOG_TYPE_GRAPH, NULL); + *out_chart = gog_object_add_by_name(*out_graph, "Chart", NULL); + *out_plot = gog_plot_new_by_name(plot_type_name); + if (!*out_plot) +@@ -363,8 +381,13 @@ + } + gog_object_add_by_name(chart, "Legend", NULL); + ++#ifdef GO_COLOR_BLACK ++ GOG_STYLED_OBJECT(graph)->style->line.width = 5; ++ GOG_STYLED_OBJECT(graph)->style->line.color = GO_COLOR_BLACK; ++#else + GOG_STYLED_OBJECT(graph)->style->outline.width = 5; + GOG_STYLED_OBJECT(graph)->style->outline.color = RGBA_BLACK; ++#endif + + series = gog_plot_new_series(plot); + labelData = go_data_vector_str_new((char const * const *)labels, datasize, NULL); +@@ -401,7 +424,7 @@ + GogObject *graph, *chart; + GogPlot *plot; + GogSeries *series; +- GogStyle *style; ++ GOStyle *style; + GOData *label_data, *slice_data; + int data_rows, data_cols; + double *data = NULL; +@@ -489,11 +512,11 @@ + gog_series_set_dim (series, 1, slice_data, NULL); + go_data_emit_changed (GO_DATA (slice_data)); + +- style = gog_styled_object_get_style (GOG_STYLED_OBJECT (series)); +- style->fill.type = GOG_FILL_STYLE_PATTERN; ++ style = go_styled_object_get_style (GO_STYLED_OBJECT (series)); ++ style->fill.type = GO_STYLE_FILL_PATTERN; + if (gdk_color_parse (col_colors[i], &color)) { + style->fill.auto_back = FALSE; +- go_pattern_set_solid (&style->fill.pattern, GDK_TO_UINT (color)); ++ go_pattern_set_solid (&style->fill.pattern, GO_COLOR_FROM_GDK (color)); + } else { + g_warning("cannot parse color [%s]", col_colors[i]); + } +@@ -503,8 +526,8 @@ + if (rotate_row_labels) { + GogObject *object = gog_object_get_child_by_role ( + chart, gog_object_find_role_by_name (chart, "X-Axis")); +- style = gog_styled_object_get_style (GOG_STYLED_OBJECT (object)); +- gog_style_set_text_angle (style, 90.0); ++ style = go_styled_object_get_style (GO_STYLED_OBJECT (object)); ++ go_style_set_text_angle (style, 90.0); + } + + set_chart_titles_from_hash (chart, eb); +@@ -526,7 +549,7 @@ + GogPlot *plot; + GogSeries *series; + GOData *sliceData; +- GogStyle *style; ++ GOStyle *style; + int datasize; + double *xData, *yData; + gchar *marker_str, *color_str; +@@ -556,7 +579,7 @@ + } + + series = gog_plot_new_series( plot ); +- style = gog_styled_object_get_style(GOG_STYLED_OBJECT(series)); ++ style = go_styled_object_get_style(GO_STYLED_OBJECT(series)); + + sliceData = go_data_vector_val_new( xData, datasize, NULL ); + gog_series_set_dim( series, 0, sliceData, NULL ); +@@ -588,9 +611,9 @@ + GdkColor color; + if (gdk_color_parse(color_str, &color)) { + style->marker.auto_outline_color = FALSE; +- go_marker_set_outline_color(style->marker.mark, GDK_TO_UINT(color)); ++ go_marker_set_outline_color(style->marker.mark, GO_COLOR_FROM_GDK(color)); + style->line.auto_color = FALSE; +- style->line.color = GDK_TO_UINT(color); ++ style->line.color = GO_COLOR_FROM_GDK(color); + } else { + g_warning("cannot parse color [%s]", color_str); + } +@@ -602,15 +625,15 @@ + go_marker_set_fill_color(style->marker.mark, + go_marker_get_outline_color(style->marker.mark)); + } else { +- GogStyle *chart_style = +- gog_styled_object_get_style(GOG_STYLED_OBJECT(chart)); ++ GOStyle *chart_style = ++ go_styled_object_get_style(GO_STYLED_OBJECT(chart)); + +- if (chart_style->fill.type == GOG_FILL_STYLE_PATTERN ++ if (chart_style->fill.type == GO_STYLE_FILL_PATTERN + && chart_style->fill.pattern.pattern == GO_PATTERN_SOLID) { + style->marker.auto_fill_color = FALSE; + go_marker_set_fill_color(style->marker.mark, + chart_style->fill.pattern.back); +- } else if (chart_style->fill.type == GOG_FILL_STYLE_PATTERN ++ } else if (chart_style->fill.type == GO_STYLE_FILL_PATTERN + && chart_style->fill.pattern.pattern + == GO_PATTERN_FOREGROUND_SOLID) { + style->marker.auto_fill_color = FALSE; +@@ -639,7 +662,7 @@ + { + GogGraph *graph = GOG_GRAPH(g_object_get_data(G_OBJECT(eb), "graph")); + # ifdef HAVE_GOFFICE_0_5 +- GogRenderer *rend = g_object_new(GOG_RENDERER_TYPE, "model", graph, NULL); ++ GogRenderer *rend = g_object_new(GOG_TYPE_RENDERER, "model", graph, NULL); + # else + GogRendererCairo *rend = g_object_new(GOG_RENDERER_CAIRO_TYPE, "model", graph, + "cairo", cr, "is-vector", TRUE, NULL); -- cgit v1.2.3