Add patch [1] to fix runtime after glib 2.36 update.

While here, add gmake to USES and sort. Use new lib_depends syntax. Change
LIBS to LDFLAGS and remove -lintl since glib-2.0 now supplies that.

Submitted by:	stefanf@ [1]
Obtained from:	upstream via OpenSUSE
This commit is contained in:
Koop Mast 2013-08-29 17:48:05 +00:00
parent 4b2c50eb4d
commit 95c193a9f6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=325617
2 changed files with 108 additions and 8 deletions

View File

@ -4,7 +4,7 @@
PORTNAME= dia
DISTVERSION= 0.97.2
PORTREVISION= 1
PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= graphics gnome
MASTER_SITES= GNOME
@ -13,18 +13,17 @@ DIST_SUBDIR= gnome2
MAINTAINER= gnome@FreeBSD.org
COMMENT= Diagram creation program, similar to Visio
LIB_DEPENDS= popt:${PORTSDIR}/devel/popt \
png15:${PORTSDIR}/graphics/png
LIB_DEPENDS= libpopt.so:${PORTSDIR}/devel/popt \
libpng15.so:${PORTSDIR}/graphics/png
USES= pathfix desktop-file-utils gettext
USES= desktop-file-utils gettext gmake pathfix
USE_XZ= yes
USE_GMAKE= yes
USE_GNOME= gtk20 gnomeprefix libxslt libartlgpl2 intlhack
INSTALLS_ICONS= yes
GNU_CONFIGURE= yes
CONFIGURE_ENV= LIBS="-L${LOCALBASE}/lib -lintl" \
LOCALBASE="${LOCALBASE}"
CONFIGURE_ENV= LOCALBASE="${LOCALBASE}"
CPPFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
CONFIGURE_ARGS= --disable-gnome
.include <bsd.port.options.mk>
@ -47,7 +46,7 @@ MANLANG= "" fr
.include <bsd.port.pre.mk>
.if ${ARCH} == "i386"
LIB_DEPENDS+= EMF:${PORTSDIR}/graphics/libemf
LIB_DEPENDS+= libEMF.so:${PORTSDIR}/graphics/libemf
CONFIGURE_ARGS+= --enable-libemf
PLIST_SUB+= WMF=""
.else

View File

@ -0,0 +1,101 @@
From 7ac3e9ffac09f99a1aa2fe97a4dc0a688c9746b0 Mon Sep 17 00:00:00 2001
From: Hans Breuer <hans@breuer.org>
Date: Sat, 16 Mar 2013 16:56:58 +0000
Subject: Bug 694025 - GLib drop support for adding interfaces after class_init
Without this Dia crashes at startup with new GLib version and the
DiaGdkRenderer being default. Make a new DiaGdkInteractiveRenderer which
follows the pattern also used for DiaCairoInteraciveRenderer. This should
be functional equivalent to what was there before and should work for all
current GLib versions.
(cherry picked from commit 213bdfe956bf8fe57c86316f68a09408fef1647e)
---
diff --git a/app/render_gdk.c b/app/render_gdk.c
index 60ccb7a..b1e7ba4 100644
--- app/render_gdk.c
+++ app/render_gdk.c
@@ -50,7 +50,21 @@ static void copy_to_window (DiaRenderer *renderer,
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 (DiaInteractiveRendererInterface* iface)
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);
}
--
cgit v0.9.2