pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc ruby-gnome2-glib, ruby-gnome2-gtk: pull upstream fixes...
details: https://anonhg.NetBSD.org/pkgsrc/rev/3997dfd8f288
branches: trunk
changeset: 379377:3997dfd8f288
user: tsutsui <tsutsui%pkgsrc.org@localhost>
date: Sun Apr 29 15:36:44 2018 +0000
description:
ruby-gnome2-glib, ruby-gnome2-gtk: pull upstream fixes for issue #1162.
Fixes crashes on mikutter.
Bump PKGREVISIONs.
diffstat:
devel/ruby-gnome2-glib/Makefile | 3 +-
devel/ruby-gnome2-glib/buildlink3.mk | 4 +-
devel/ruby-gnome2-glib/distinfo | 10 +-
devel/ruby-gnome2-glib/patches/patch-ext_glib2_glib2.def | 16 +
devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbglib.h | 17 +
devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__binding.c | 23 +
devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__closure.c | 48 ++
devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__object.c | 176 ++++++++++
devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobject.c | 114 ++++++
devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobject.h | 28 +
devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgprivate.h | 22 +
x11/ruby-gnome2-gtk/Makefile | 4 +-
x11/ruby-gnome2-gtk/buildlink3.mk | 4 +-
x11/ruby-gnome2-gtk/distinfo | 5 +-
x11/ruby-gnome2-gtk/patches/patch-ext_gtk2_rbgtkliststore.c | 27 +
x11/ruby-gnome2-gtk/patches/patch-ext_gtk2_rbgtktreestore.c | 27 +
x11/ruby-gnome2-gtk/patches/patch-ext_gtk2_rbgtktreeviewcolumn.c | 27 +
17 files changed, 546 insertions(+), 9 deletions(-)
diffs (truncated from 667 to 300 lines):
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/Makefile
--- a/devel/ruby-gnome2-glib/Makefile Sun Apr 29 14:58:48 2018 +0000
+++ b/devel/ruby-gnome2-glib/Makefile Sun Apr 29 15:36:44 2018 +0000
@@ -1,8 +1,9 @@
-# $NetBSD: Makefile,v 1.30 2018/02/21 16:59:59 jperkin Exp $
+# $NetBSD: Makefile,v 1.31 2018/04/29 15:36:44 tsutsui Exp $
#
DISTNAME= glib2-${VERSION}
PKGNAME= ${RUBY_PKGPREFIX}-gnome2-glib-${VERSION}
+PKGREVISION= 1
COMMENT= Ruby binding of GLib-2.x
CATEGORIES= devel
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/buildlink3.mk
--- a/devel/ruby-gnome2-glib/buildlink3.mk Sun Apr 29 14:58:48 2018 +0000
+++ b/devel/ruby-gnome2-glib/buildlink3.mk Sun Apr 29 15:36:44 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.11 2014/03/14 12:45:49 obache Exp $
+# $NetBSD: buildlink3.mk,v 1.12 2018/04/29 15:36:44 tsutsui Exp $
BUILDLINK_TREE+= ruby-gnome2-glib
@@ -6,7 +6,7 @@
RUBY_GNOME2_GLIB_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.ruby-gnome2-glib+= ${RUBY_PKGPREFIX}-gnome2-glib>=0.17.0
-BUILDLINK_ABI_DEPENDS.ruby-gnome2-glib+= ${RUBY_PKGPREFIX}-gnome2-glib>=2.2.0
+BUILDLINK_ABI_DEPENDS.ruby-gnome2-glib+= ${RUBY_PKGPREFIX}-gnome2-glib>=2.2.4nb1
BUILDLINK_PKGSRCDIR.ruby-gnome2-glib?= ../../devel/ruby-gnome2-glib
.include "../../devel/glib2/buildlink3.mk"
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/distinfo
--- a/devel/ruby-gnome2-glib/distinfo Sun Apr 29 14:58:48 2018 +0000
+++ b/devel/ruby-gnome2-glib/distinfo Sun Apr 29 15:36:44 2018 +0000
@@ -1,6 +1,14 @@
-$NetBSD: distinfo,v 1.14 2018/04/13 16:31:09 tsutsui Exp $
+$NetBSD: distinfo,v 1.15 2018/04/29 15:36:44 tsutsui Exp $
SHA1 (glib2-3.2.4.gem) = a1aa0ea0d88fe241825daee9f2a7e9a444cb60fe
RMD160 (glib2-3.2.4.gem) = f6b6da60e27bf9ebaee6757d0fa7df01b9dcb73e
SHA512 (glib2-3.2.4.gem) = d766787ad15ead3f0b8ff0a334fd0a8df5b6ea719fee36aa5c3aa38273d1e4ccfb1ceab4564b0c01e597a413a8e49009adf70a6ac27b930465a9aa7d8b033418
Size (glib2-3.2.4.gem) = 142336 bytes
+SHA1 (patch-ext_glib2_glib2.def) = 9f6e593c494930e28c683689d7438d14333377b8
+SHA1 (patch-ext_glib2_rbglib.h) = 97a9088fb749f0985d415ee068eceb1e78237661
+SHA1 (patch-ext_glib2_rbgobj__binding.c) = 1c6459564d08d86570ad631dbd95b20f9ff22ba5
+SHA1 (patch-ext_glib2_rbgobj__closure.c) = 6655f9a2e49f8bfd1eb0ec2208ab566d5d13b02e
+SHA1 (patch-ext_glib2_rbgobj__object.c) = c0099a33d3805d2137b1f76f8050bb1c075bfefa
+SHA1 (patch-ext_glib2_rbgobject.c) = 5e81544395ee1dc543ab5cf926ea19d1ade89431
+SHA1 (patch-ext_glib2_rbgobject.h) = 8023d86bc2d119f83d37c27e7686f6a55816616c
+SHA1 (patch-ext_glib2_rbgprivate.h) = 9cad0b23a174b500a940d5d1fa4d66a6aeac3566
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/patches/patch-ext_glib2_glib2.def
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/ruby-gnome2-glib/patches/patch-ext_glib2_glib2.def Sun Apr 29 15:36:44 2018 +0000
@@ -0,0 +1,16 @@
+$NetBSD: patch-ext_glib2_glib2.def,v 1.1 2018/04/29 15:36:44 tsutsui Exp $
+
+- pull upstream fix for issue #1162
+
+--- ext/glib2/glib2.def.orig 2018-04-29 15:03:29.000000000 +0000
++++ ext/glib2/glib2.def
+@@ -61,6 +61,9 @@ EXPORTS
+ rbgobj_class_init_func
+ rbgobj_register_type
+ rbgobj_object_alloc_func
++ rbgobj_object_add_relative
++ rbgobj_object_remove_relative
++ rbgobj_object_remove_relatives
+ rbgobj_set_signal_func
+ rbgobj_get_signal_func
+ rbgobj_set_signal_call_func
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbglib.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbglib.h Sun Apr 29 15:36:44 2018 +0000
@@ -0,0 +1,17 @@
+$NetBSD: patch-ext_glib2_rbglib.h,v 1.1 2018/04/29 15:36:44 tsutsui Exp $
+
+- pull upstream fix for issue #1162
+
+--- ext/glib2/rbglib.h.orig 2018-04-29 15:03:29.000000000 +0000
++++ ext/glib2/rbglib.h
+@@ -46,6 +46,10 @@ extern "C" {
+ # endif
+ #endif
+
++#ifndef RB_ALLOC
++# define RB_ALLOC(type) ALLOC(type)
++#endif
++
+ #ifndef RB_ALLOC_N
+ # define RB_ALLOC_N(type, n) ALLOC_N(type, n)
+ #endif
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__binding.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__binding.c Sun Apr 29 15:36:44 2018 +0000
@@ -0,0 +1,23 @@
+$NetBSD: patch-ext_glib2_rbgobj__binding.c,v 1.1 2018/04/29 15:36:44 tsutsui Exp $
+
+- pull upstream fix for issue #1162
+
+--- ext/glib2/rbgobj_binding.c.orig 2018-04-29 15:03:30.000000000 +0000
++++ ext/glib2/rbgobj_binding.c
+@@ -28,7 +28,15 @@
+ static VALUE
+ rg_unbind(VALUE self)
+ {
+- g_binding_unbind(_SELF(self));
++ GBinding *binding = _SELF(self);
++ GObject *source;
++ VALUE rb_source;
++
++ source = g_binding_get_source(binding);
++ rb_source = GOBJ2RVAL(source);
++ rbgobj_object_remove_relative(rb_source, self);
++ g_binding_unbind(binding);
++
+ return self;
+ }
+ #endif
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__closure.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__closure.c Sun Apr 29 15:36:44 2018 +0000
@@ -0,0 +1,48 @@
+$NetBSD: patch-ext_glib2_rbgobj__closure.c,v 1.1 2018/04/29 15:36:44 tsutsui Exp $
+
+- pull upstream fix for issue #1162
+
+--- ext/glib2/rbgobj_closure.c.orig 2018-04-29 15:03:30.000000000 +0000
++++ ext/glib2/rbgobj_closure.c
+@@ -1,6 +1,6 @@
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
+ /*
+- * Copyright (C) 2011-2016 Ruby-GNOME2 Project Team
++ * Copyright (C) 2011-2018 Ruby-GNOME2 Project Team
+ * Copyright (C) 2002-2006 Ruby-GNOME2 Project
+ * Copyright (C) 2002,2003 Masahiro Sakai
+ *
+@@ -191,8 +191,9 @@ rclosure_invalidate(G_GNUC_UNUSED gpoint
+ for (next = rclosure->objects; next; next = next->next) {
+ GObject *object = G_OBJECT(next->data);
+ VALUE obj = rbgobj_ruby_object_from_instance2(object, FALSE);
+- if (!NIL_P(rclosure->rb_holder) && !NIL_P(obj))
+- G_REMOVE_RELATIVE(obj, id_closures, rclosure->rb_holder);
++ if (!NIL_P(rclosure->rb_holder) && !NIL_P(obj)) {
++ rbgobj_object_remove_relative(obj, rclosure->rb_holder);
++ }
+ }
+
+ rclosure_unref(rclosure);
+@@ -286,16 +287,15 @@ rclosure_weak_notify(gpointer data, GObj
+ void
+ g_rclosure_attach(GClosure *closure, VALUE object)
+ {
+- static VALUE mGLibObject = (VALUE)NULL;
++ static VALUE cGLibObject = Qnil;
+ GRClosure *rclosure = (GRClosure *)closure;
+
+- G_RELATIVE2(object, Qnil, id_closures, rclosure->rb_holder);
+-
+- if (!mGLibObject) {
+- mGLibObject = rb_const_get(mGLib, rb_intern("Object"));
++ if (NIL_P(cGLibObject)) {
++ cGLibObject = rb_const_get(mGLib, rb_intern("Object"));
+ }
+- if (rb_obj_is_kind_of(object, mGLibObject)) {
++ if (rb_obj_is_kind_of(object, cGLibObject)) {
+ GObject *gobject;
++ rbgobj_object_add_relative(object, rclosure->rb_holder);
+ gobject = RVAL2GOBJ(object);
+ rclosure->count++;
+ g_object_weak_ref(gobject, rclosure_weak_notify, rclosure);
diff -r 60ab96e53507 -r 3997dfd8f288 devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__object.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/ruby-gnome2-glib/patches/patch-ext_glib2_rbgobj__object.c Sun Apr 29 15:36:44 2018 +0000
@@ -0,0 +1,176 @@
+$NetBSD: patch-ext_glib2_rbgobj__object.c,v 1.1 2018/04/29 15:36:44 tsutsui Exp $
+
+- pull upstream fix for issue #1162
+
+--- ext/glib2/rbgobj_object.c.orig 2018-04-29 15:03:30.000000000 +0000
++++ ext/glib2/rbgobj_object.c
+@@ -43,7 +43,8 @@ weak_notify(gpointer data, G_GNUC_UNUSED
+ gobj_holder *holder = data;
+
+ rbgobj_instance_call_cinfo_free(holder->gobj);
+- rbgobj_invalidate_relatives(holder->self);
++ g_hash_table_unref(holder->rb_relatives);
++ holder->rb_relatives = NULL;
+ holder->destroyed = TRUE;
+
+ g_object_unref(holder->gobj);
+@@ -51,11 +52,24 @@ weak_notify(gpointer data, G_GNUC_UNUSED
+ }
+
+ static void
++holder_relatives_mark(gpointer key, gpointer value, gpointer user_data)
++{
++ VALUE rb_relative = (VALUE)value;
++ rb_gc_mark(rb_relative);
++}
++
++static void
+ holder_mark(void *data)
+ {
+ gobj_holder *holder = data;
+- if (holder->gobj && !holder->destroyed)
+- rbgobj_instance_call_cinfo_mark(holder->gobj);
++
++ if (!holder->gobj)
++ return;
++ if (holder->destroyed)
++ return;
++
++ rbgobj_instance_call_cinfo_mark(holder->gobj);
++ g_hash_table_foreach(holder->rb_relatives, holder_relatives_mark, NULL);
+ }
+
+ static void
+@@ -91,6 +105,59 @@ static const rb_data_type_t rg_glib_obje
+ RUBY_TYPED_FREE_IMMEDIATELY,
+ };
+
++void
++rbgobj_object_add_relative(VALUE rb_gobject, VALUE rb_relative)
++{
++ gobj_holder *holder;
++ TypedData_Get_Struct(rb_gobject,
++ gobj_holder,
++ &rg_glib_object_type,
++ holder);
++ if (holder->rb_relatives) {
++ g_hash_table_insert(holder->rb_relatives,
++ (gpointer)(rb_relative),
++ (gpointer)(rb_relative));
++ }
++}
++
++void
++rbgobj_object_remove_relative(VALUE rb_gobject, VALUE rb_relative)
++{
++ gobj_holder *holder;
++ TypedData_Get_Struct(rb_gobject,
++ gobj_holder,
++ &rg_glib_object_type,
++ holder);
++ if (holder->rb_relatives) {
++ g_hash_table_remove(holder->rb_relatives,
++ (gpointer)(rb_relative));
++ }
++}
++
++static gboolean
++rbgobj_object_remove_relatives_body(gpointer key,
++ gpointer value,
++ gpointer user_data)
++{
++ VALUE rb_relative = (VALUE)value;
++ VALUE rb_relative_class = (VALUE)user_data;
++
++ return RVAL2CBOOL(rb_obj_is_kind_of(rb_relative, rb_relative_class));
++}
++
++void
++rbgobj_object_remove_relatives(VALUE rb_gobject, VALUE rb_relative_class)
++{
++ gobj_holder *holder;
++ TypedData_Get_Struct(rb_gobject,
++ gobj_holder,
++ &rg_glib_object_type,
++ holder);
++ g_hash_table_foreach_remove(holder->rb_relatives,
++ rbgobj_object_remove_relatives_body,
++ (gpointer)(rb_relative_class));
++}
++
+ VALUE
+ rbgobj_object_alloc_func(VALUE klass)
+ {
+@@ -105,6 +172,7 @@ rbgobj_object_alloc_func(VALUE klass)
+ holder->gobj = NULL;
+ holder->cinfo = NULL;
+ holder->destroyed = FALSE;
++ holder->rb_relatives = g_hash_table_new(g_direct_hash, g_direct_equal);
+
+ return result;
+ }
+@@ -686,13 +754,6 @@ static void
+ rg_destroy_bind_property_full_data(gpointer user_data)
+ {
+ RGBindPropertyCallbackData *data = (RGBindPropertyCallbackData *)user_data;
+-
+- if (!NIL_P(data->transform_to_callback))
+- G_CHILD_REMOVE(data->self, data->transform_to_callback);
+-
+- if (!NIL_P(data->transform_from_callback))
+- G_CHILD_REMOVE(data->self, data->transform_from_callback);
+-
+ xfree(data);
+ }
+
Home |
Main Index |
Thread Index |
Old Index