x11-libs/guile-gtk: fix bugs #577630 and #590786.
authorDenis Dupeyron <calchan@gentoo.org>
Fri, 12 Aug 2016 18:19:40 +0000 (12:19 -0600)
committerDenis Dupeyron <calchan@gentoo.org>
Fri, 12 Aug 2016 18:20:10 +0000 (12:20 -0600)
Package-Manager: portage-2.3.0

x11-libs/guile-gtk/files/2.1_migrate_gh_functions.patch [new file with mode: 0644]
x11-libs/guile-gtk/guile-gtk-2.1-r3.ebuild [new file with mode: 0644]

diff --git a/x11-libs/guile-gtk/files/2.1_migrate_gh_functions.patch b/x11-libs/guile-gtk/files/2.1_migrate_gh_functions.patch
new file mode 100644 (file)
index 0000000..5a19487
--- /dev/null
@@ -0,0 +1,60 @@
+diff -ur guile-gtk-2.1.orig/glade/glade-support.c guile-gtk-2.1/glade/glade-support.c
+--- guile-gtk-2.1.orig/glade/glade-support.c   2016-08-12 12:00:45.894290499 -0600
++++ guile-gtk-2.1/glade/glade-support.c        2016-08-12 12:02:33.186666585 -0600
+@@ -17,7 +17,6 @@
+ #include <glade/glade-xml.h>
+ #include <libguile.h>
+-#include <guile/gh.h>
+ #include "config.h"
+ #include "guile-gtk.h"
+@@ -83,7 +82,7 @@
+       sgtk_protshell *protshell;
+       GClosure *closure;
+-      cb = scm_internal_cwdr ((scm_t_catch_body) gh_eval_str, (char*) handler_name,
++      cb = scm_internal_cwdr ((scm_t_catch_body) scm_c_eval_string, (char*) handler_name,
+                             scm_handle_by_message_noexit, "glade",
+                             &stack_item);
+diff -ur guile-gtk-2.1.orig/gtk-gl/gdk-gl-support.c guile-gtk-2.1/gtk-gl/gdk-gl-support.c
+--- guile-gtk-2.1.orig/gtk-gl/gdk-gl-support.c 2016-08-12 12:00:45.894290499 -0600
++++ guile-gtk-2.1/gtk-gl/gdk-gl-support.c      2016-08-12 12:02:19.530121760 -0600
+@@ -19,7 +19,6 @@
+ #include <gtkgl/gdkgl.h>
+ #include <libguile.h>
+-#include <guile/gh.h>
+ typedef struct {
+   char*               name;
+@@ -100,7 +99,7 @@
+           if (! SCM_INUMP (s_value))
+             goto error;
+           
+-          *aptr++ = gh_scm2int (s_value);
++          *aptr++ = scm_to_int (s_value);
+         }
+       }
+     }
+diff -ur guile-gtk-2.1.orig/guile-gtk.c guile-gtk-2.1/guile-gtk.c
+--- guile-gtk-2.1.orig/guile-gtk.c     2016-08-12 12:00:45.890957197 -0600
++++ guile-gtk-2.1/guile-gtk.c  2016-08-12 12:01:59.346968496 -0600
+@@ -28,7 +28,6 @@
+ #include <gdk/gdkx.h>
+ #include <libguile.h>
+-#include <guile/gh.h>
+ #include <libguile/dynl.h>
+ #include <libguile/tags.h>
+@@ -2196,7 +2195,7 @@
+ #if 0
+       /* Gone in Gtk 2 */
+     case GTK_TYPE_CALLBACK:
+-      return gh_procedure_p (obj);
++      return scm_is_true (scm_procedure_p (obj));
+ #endif
+     case G_TYPE_OBJECT:
+       return sgtk_is_a_gtkobj (type, obj);
diff --git a/x11-libs/guile-gtk/guile-gtk-2.1-r3.ebuild b/x11-libs/guile-gtk/guile-gtk-2.1-r3.ebuild
new file mode 100644 (file)
index 0000000..c24b3ad
--- /dev/null
@@ -0,0 +1,49 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+AUTOTOOLS_AUTORECONF=true
+WANT_AUTOMAKE=1.9
+
+inherit autotools-utils virtualx
+
+DESCRIPTION="GTK+ bindings for guile"
+HOMEPAGE="https://www.gnu.org/software/guile-gtk/"
+SRC_URI="mirror://gnu/guile-gtk/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE=""
+
+RDEPEND="
+       >=dev-scheme/guile-2[deprecated(+)]
+       x11-libs/gtk+:2
+       gnome-base/libglade:2.0
+       >=x11-libs/gtkglarea-1.90:2"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.0-g-object-ref.diff
+       "${FILESDIR}"/${PV}-prll-install.patch
+       "${FILESDIR}"/${PV}-brokentest.patch
+       "${FILESDIR}"/${PV}_migrate_gh_functions.patch
+)
+
+src_prepare() {
+       sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac || die
+       autotools-utils_src_prepare
+}
+
+src_test() {
+       cd "${BUILD_DIR}" || die
+       Xemake check
+}
+
+src_install() {
+       autotools-utils_src_install
+       insinto /usr/share/doc/${PF}/
+       doins -r examples
+}