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); + } + diff --git a/dia.spec b/dia.spec index cf371d9..bd31621 100644 --- a/dia.spec +++ b/dia.spec @@ -1,6 +1,6 @@ Name: dia Version: 0.97.2 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 1 Summary: Diagram drawing program Group: Applications/Multimedia @@ -9,6 +9,7 @@ URL: http://www.gnome.org/projects/dia/ Source0: ftp://ftp.gnome.org/pub/GNOME/sources/dia/0.97/dia-%{version}.tar.xz Patch0: dia-noglib.patch Patch1: dia-unregister-import.patch +Patch2: dia-glib.patch BuildRequires: libgnomeui-devel pygtk2-devel desktop-file-utils BuildRequires: intltool docbook-utils docbook-style-dsssl docbook-style-xsl @@ -30,6 +31,7 @@ and can export to PostScript(TM). %setup -q %patch0 -p0 -b .noglib %patch1 -p1 -b .unregister-import +%patch2 -p1 -b .glib sed -i 's|libdia_la_LDFLAGS = -avoid-version|libdia_la_LDFLAGS = -avoid-version $(shell pkg-config gtk+-2.0 libxml-2.0 libart-2.0 libgnome-2.0 --libs)|' \ lib/Makefile.* @@ -100,6 +102,9 @@ fi %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu May 02 2013 Jiri Popelka - 1:0.97.2-5 +- GLib drop support for adding interfaces after class_init (Gnome #694025) + * Mon Mar 25 2013 Jiri Popelka - 1:0.97.2-4 - Run autoreconf prior to running configure (#925250) @@ -252,10 +257,10 @@ fi * Mon Oct 17 2005 Caolan McNamara - move to extras -* Tue Apr 16 2005 Caolan McNamara +* Sat Apr 16 2005 Caolan McNamara - rebuild for new cairo soname -* Mon Apr 8 2005 Caolan McNamara +* Fri Apr 8 2005 Caolan McNamara - rh#165337# crash on >= 1000% xoom * Thu Apr 7 2005 Caolan McNamara