[packages/dia] - rel 5; glib fixes from fc (fixes segfault)
arekm
arekm at pld-linux.org
Thu Oct 3 15:18:03 CEST 2013
commit 4c662dd49444fd5bc071a1cfd8b34fcbc28b5c0f
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Thu Oct 3 15:18:00 2013 +0200
- rel 5; glib fixes from fc (fixes segfault)
dia-glib.patch | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dia.spec | 4 ++-
2 files changed, 88 insertions(+), 1 deletion(-)
---
diff --git a/dia.spec b/dia.spec
index 48b9f66..12a2ebe 100644
--- a/dia.spec
+++ b/dia.spec
@@ -8,7 +8,7 @@ Summary(uk.UTF-8): Програма для малювання діаграм
Summary(zh_CN.UTF-8): 基于GTK+的流程图程序
Name: dia
Version: 0.97.2
-Release: 4
+Release: 5
Epoch: 1
License: GPL v2+
Group: X11/Applications/Graphics
@@ -39,6 +39,7 @@ Source11: http://dia-installer.de/shapes/scenegraph/scenegraph.zip
Patch0: %{name}-python.patch
Patch1: %{name}-wmf-cast.patch
Patch2: %{name}-glib2.patch
+Patch3: %{name}-glib.patch
URL: https://live.gnome.org/Dia
BuildRequires: autoconf >= 2.50
BuildRequires: automake
@@ -132,6 +133,7 @@ PostScript(TM).
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
%{__sed} -i -e s#sr at Latn#sr at latin# po/LINGUAS
mv -f po/sr@{Latn,latin}.po
diff --git a/dia-glib.patch b/dia-glib.patch
new file mode 100644
index 0000000..17f6199
--- /dev/null
+++ b/dia-glib.patch
@@ -0,0 +1,85 @@
+diff -up dia-0.97.2/app/render_gdk.c.glib dia-0.97.2/app/render_gdk.c
+--- dia-0.97.2/app/render_gdk.c.glib 2013-05-02 14:23:22.294850484 +0200
++++ dia-0.97.2/app/render_gdk.c 2013-05-02 14:26:51.176963531 +0200
+@@ -50,7 +50,21 @@ static void copy_to_window (DiaRenderer
+ gpointer window,
+ int x, int y, int width, int height);
+
+-static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
++typedef struct _DiaGdkInteractiveRenderer DiaGdkInteractiveRenderer;
++struct _DiaGdkInteractiveRenderer
++{
++ DiaGdkRenderer parent_instance; /*!< inheritance in object oriented C */
++};
++typedef struct _DiaGdkInteractiveRendererClass DiaGdkInteractiveRendererClass;
++struct _DiaGdkInteractiveRendererClass
++{
++ DiaGdkRendererClass parent_class; /*!< the base class */
++};
++#define DIA_TYPE_GDK_INTERACTIVE_RENDERER (dia_gdk_interactive_renderer_get_type ())
++#define DIA_GDK_INTERACTIVE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_GDK_INTERACTIVE_RENDERER, DiaGdkInteractiveRenderer))
++
++static void
++dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
+ {
+ iface->clip_region_clear = clip_region_clear;
+ iface->clip_region_add_rect = clip_region_add_rect;
+@@ -61,36 +75,35 @@ static void dia_gdk_renderer_iface_init
+ iface->set_size = set_size;
+ }
+
++G_DEFINE_TYPE_WITH_CODE (DiaGdkInteractiveRenderer, dia_gdk_interactive_renderer, DIA_TYPE_GDK_RENDERER,
++ G_IMPLEMENT_INTERFACE (DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE, dia_gdk_renderer_iface_init));
++
++static void
++dia_gdk_interactive_renderer_class_init(DiaGdkInteractiveRendererClass *klass)
++{
++}
++static void
++dia_gdk_interactive_renderer_init(DiaGdkInteractiveRenderer *object)
++{
++ DiaGdkInteractiveRenderer *ia_renderer = DIA_GDK_INTERACTIVE_RENDERER (object);
++ DiaGdkRenderer *renderer = DIA_GDK_RENDERER(object);
++ DiaRenderer *dia_renderer = DIA_RENDERER(object);
++
++ dia_renderer->is_interactive = 1;
++
++ renderer->gc = NULL;
++ renderer->pixmap = NULL;
++ renderer->clip_region = NULL;
++}
++
+ DiaRenderer *
+ new_gdk_renderer(DDisplay *ddisp)
+ {
+ DiaGdkRenderer *renderer;
+ GType renderer_type = 0;
+
+- renderer = g_object_new (DIA_TYPE_GDK_RENDERER, NULL);
++ renderer = g_object_new (DIA_TYPE_GDK_INTERACTIVE_RENDERER, NULL);
+ renderer->transform = dia_transform_new (&ddisp->visible, &ddisp->zoom_factor);
+- if (!DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer))
+- {
+- static const GInterfaceInfo irenderer_iface_info =
+- {
+- (GInterfaceInitFunc) dia_gdk_renderer_iface_init,
+- NULL, /* iface_finalize */
+- NULL /* iface_data */
+- };
+-
+- renderer_type = DIA_TYPE_GDK_RENDERER;
+- /* register the interactive renderer interface */
+- g_type_add_interface_static (renderer_type,
+- DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE,
+- &irenderer_iface_info);
+-
+- }
+- renderer->parent_instance.is_interactive = 1;
+- renderer->gc = NULL;
+-
+- renderer->pixmap = NULL;
+- renderer->clip_region = NULL;
+-
+ return DIA_RENDERER(renderer);
+ }
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/dia.git/commitdiff/4c662dd49444fd5bc071a1cfd8b34fcbc28b5c0f
More information about the pld-cvs-commit
mailing list