Tue Jul 16 12:11:29 2013 UTC ()
Fix dia crash on start reported by Jan Danielsson in
http://mail-index.netbsd.org/pkgsrc-users/2013/07/12/msg018329.html
using fix from https://bugzilla.gnome.org/show_bug.cgi?id=694025
commited to dia git-head.


(prlw1)
diff -r1.81 -r1.82 pkgsrc/graphics/dia/Makefile
diff -r1.28 -r1.29 pkgsrc/graphics/dia/distinfo
diff -r0 -r1.1 pkgsrc/graphics/dia/patches/patch-app_render_gdk.c

cvs diff -r1.81 -r1.82 pkgsrc/graphics/dia/Makefile (expand / switch to unified diff)

--- pkgsrc/graphics/dia/Makefile 2013/06/06 12:54:28 1.81
+++ pkgsrc/graphics/dia/Makefile 2013/07/16 12:11:29 1.82
@@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
1# $NetBSD: Makefile,v 1.81 2013/06/06 12:54:28 wiz Exp $ 1# $NetBSD: Makefile,v 1.82 2013/07/16 12:11:29 prlw1 Exp $
2# 2#
3 3
4.include "Makefile.common" 4.include "Makefile.common"
5 5
6PKGREVISION= 14 6PKGREVISION= 15
7 7
8.include "options.mk" 8.include "options.mk"
9 9
10# just to convert the manpage 10# just to convert the manpage
11BUILD_DEPENDS+= docbook-xsl-[0-9]*:../../textproc/docbook-xsl 11BUILD_DEPENDS+= docbook-xsl-[0-9]*:../../textproc/docbook-xsl
12 12
13.include "../../sysutils/desktop-file-utils/desktopdb.mk" 13.include "../../sysutils/desktop-file-utils/desktopdb.mk"
14.include "../../graphics/hicolor-icon-theme/buildlink3.mk" 14.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
15.include "../../mk/bsd.pkg.mk" 15.include "../../mk/bsd.pkg.mk"

cvs diff -r1.28 -r1.29 pkgsrc/graphics/dia/distinfo (expand / switch to unified diff)

--- pkgsrc/graphics/dia/distinfo 2012/05/07 00:46:25 1.28
+++ pkgsrc/graphics/dia/distinfo 2013/07/16 12:11:29 1.29
@@ -1,15 +1,16 @@ @@ -1,15 +1,16 @@
1$NetBSD: distinfo,v 1.28 2012/05/07 00:46:25 dholland Exp $ 1$NetBSD: distinfo,v 1.29 2013/07/16 12:11:29 prlw1 Exp $
2 2
3SHA1 (dia-0.97.2.tar.xz) = dc7ed6f8cd83acc8f421d28f30e4042fe370e9ba 3SHA1 (dia-0.97.2.tar.xz) = dc7ed6f8cd83acc8f421d28f30e4042fe370e9ba
4RMD160 (dia-0.97.2.tar.xz) = f9270f1f2cb6ad505219463827d02e3759693796 4RMD160 (dia-0.97.2.tar.xz) = f9270f1f2cb6ad505219463827d02e3759693796
5Size (dia-0.97.2.tar.xz) = 5507004 bytes 5Size (dia-0.97.2.tar.xz) = 5507004 bytes
6SHA1 (patch-aa) = ab5acd47ba4557aa8cc4a5abb3ce1f41ea5e2574 6SHA1 (patch-aa) = ab5acd47ba4557aa8cc4a5abb3ce1f41ea5e2574
 7SHA1 (patch-app_render_gdk.c) = 2bff345b8168ef731eb977f1850fd6a725224c78
7SHA1 (patch-be) = dab7626daefcd702b31f54d198311d9be921e1ff 8SHA1 (patch-be) = dab7626daefcd702b31f54d198311d9be921e1ff
8SHA1 (patch-ca) = 8737f3ff19244e2f87ffb571da21159bc2248648 9SHA1 (patch-ca) = 8737f3ff19244e2f87ffb571da21159bc2248648
9SHA1 (patch-cb) = 02210139cbf38e91a61ad1e090f63f5635bb26ef 10SHA1 (patch-cb) = 02210139cbf38e91a61ad1e090f63f5635bb26ef
10SHA1 (patch-cc) = 2dd4c822d8771e48ff1ac67946d765e5d8b85d50 11SHA1 (patch-cc) = 2dd4c822d8771e48ff1ac67946d765e5d8b85d50
11SHA1 (patch-cd) = b7dd72a359fe6f36a56d2c16f94427c6977b0477 12SHA1 (patch-cd) = b7dd72a359fe6f36a56d2c16f94427c6977b0477
12SHA1 (patch-da) = 4ed80c2a7eaa2dbbebd8265c8b74faac20c4f6c2 13SHA1 (patch-da) = 4ed80c2a7eaa2dbbebd8265c8b74faac20c4f6c2
13SHA1 (patch-objects_custom_shape__typeinfo_c) = 128477ab7cc363a490e042062379585800893626 14SHA1 (patch-objects_custom_shape__typeinfo_c) = 128477ab7cc363a490e042062379585800893626
14SHA1 (patch-tests_test-boundingbox_c) = f05fe01fd2d79bf5b519808aa491458040097fb7 15SHA1 (patch-tests_test-boundingbox_c) = f05fe01fd2d79bf5b519808aa491458040097fb7
15SHA1 (patch-tests_test-objects_c) = 759b788aa55e3256758514906c1ce812fb3b6aba 16SHA1 (patch-tests_test-objects_c) = 759b788aa55e3256758514906c1ce812fb3b6aba

File Added: pkgsrc/graphics/dia/patches/Attic/patch-app_render_gdk.c
$NetBSD: patch-app_render_gdk.c,v 1.1 2013/07/16 12:11:29 prlw1 Exp $

Fix crash on start-up with newish glib2.
Bug 694025 - GLib drop support for adding interfaces after class_init
commit 213bdfe956bf8fe57c86316f68a09408fef1647e

--- app/render_gdk.c.orig	2009-11-07 17:13:53.000000000 +0000
+++ app/render_gdk.c
@@ -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,35 +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);
 }