business/gnucash: Patched to build with goffice-0.8.x API.

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Vincent Batts 2010-07-01 02:59:08 -05:00 committed by Robby Workman
parent 0f3275a1a8
commit 1b02c473a2
3 changed files with 183 additions and 13 deletions

View file

@ -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.

View file

@ -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/*

View file

@ -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 <goffice/graph/gog-renderer-gnome-print.h>
#endif
-#include <goffice/graph/gog-style.h>
+/* 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 <goffice/graph/gog-style.h>
+# 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 <goffice/utils/go-style.h>
+# include <goffice/utils/go-styled-object.h>
+#endif
+
#include <goffice/graph/gog-styled-object.h>
#include <goffice/graph/gog-plot.h>
#include <goffice/graph/gog-series.h>
+#include <goffice/graph/gog-data-set.h>
+#include <goffice/utils/go-style.h>
+#include <goffice/utils/goffice-utils.h>
#include <goffice/utils/go-color.h>
#include <goffice/utils/go-marker.h>
-#include <goffice/graph/gog-data-set.h>
#include <goffice/data/go-data-simple.h>
#include <goffice/app/go-plugin.h>
#include <goffice/app/go-plugin-loader-module.h>
@@ -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);