diff options
Diffstat (limited to 'dev-scheme')
-rw-r--r-- | dev-scheme/gauche-gtk/ChangeLog | 9 | ||||
-rw-r--r-- | dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff | 71 | ||||
-rw-r--r-- | dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff | 11 | ||||
-rw-r--r-- | dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff | 23 | ||||
-rw-r--r-- | dev-scheme/gauche-gtk/gauche-gtk-0.6_pre1.ebuild | 81 |
5 files changed, 194 insertions, 1 deletions
diff --git a/dev-scheme/gauche-gtk/ChangeLog b/dev-scheme/gauche-gtk/ChangeLog index 30491467f6f6..9080839b86ce 100644 --- a/dev-scheme/gauche-gtk/ChangeLog +++ b/dev-scheme/gauche-gtk/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-scheme/gauche-gtk # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche-gtk/ChangeLog,v 1.13 2011/03/29 12:19:38 angelos Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche-gtk/ChangeLog,v 1.14 2011/11/27 08:05:49 hattya Exp $ + +*gauche-gtk-0.6_pre1 (27 Nov 2011) + + 27 Nov 2011; Akinori Hattori <hattya@gentoo.org> + +files/gauche-gtk-gtk-lib.hints.diff, +files/gauche-gtk-h2s-cpp.diff, + +files/gauche-gtk-h2s-gdk-pixbuf.diff, +gauche-gtk-0.6_pre1.ebuild: + new upstream snapshot. fixes bug #239821. 29 Mar 2011; Christoph Mende <angelos@gentoo.org> gauche-gtk-0.4.1.ebuild: Fixed slot deps diff --git a/dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff b/dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff new file mode 100644 index 000000000000..be54ee550ba7 --- /dev/null +++ b/dev-scheme/gauche-gtk/files/gauche-gtk-gtk-lib.hints.diff @@ -0,0 +1,71 @@ +--- a/src/gtk-lib.hints ++++ b/src/gtk-lib.hints +@@ -527,8 +527,10 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));" + (add-mixin! "Scm_GtkEditableClass" "Scm_GtkCellEditableClass")) + + ;; we can't free the return value of gtk_entry_get_text. +-(define-cproc gtk-entry-get-text (entry::<gtk-entry>) +- "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_entry_get_text(entry)));") ++(define-cproc-fix gtk-entry-get-text ++ (fix-arguments! '(entry::<gtk-entry>)) ++ (fix-body! ++ "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_entry_get_text(entry)));")) + + ;;================================================================== + ;; gtkfilesel.h +@@ -539,8 +541,10 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));" + ;; gtk_file_selection_get_filename returns mbstr encoded by the current + ;; locale. We canonicalize it to utf8. The Scheme glue code converts + ;; it to Gauche's internal encoding. +-(define-cproc gtk-file-selection-get-filename (sel::<gtk-file-selection>) +- "const gchar *fn_mb = gtk_file_selection_get_filename(sel); ++(define-cproc-fix gtk-file-selection-get-filename ++ (fix-arguments! '(sel::<gtk-file-selection>)) ++ (fix-body! ++ "const gchar *fn_mb = gtk_file_selection_get_filename(sel); + gchar *fn_utf8 = g_filename_to_utf8(fn_mb, -1, NULL, NULL, NULL); + if (fn_utf8 == NULL) { + Scm_Error(\"got a filename including multibyte chars which can't be converted to UTF8: %s\", fn_mb); +@@ -549,7 +553,7 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));" + SCM_RETURN(SCM_MAKE_STR_COPYING(fn_utf8)); + #else + SCM_RETURN(Scm_MakeString(fn_utf8, -1, -1, SCM_MAKSTR_COPYING|SCM_MAKSTR_INCOMPLETE)); +-#endif") ++#endif")) + + (define-cproc gtk-file-selection-get-selections (sel::<gtk-file-selection>) + "gchar **fns_mb = gtk_file_selection_get_selections(sel); +@@ -609,10 +613,14 @@ SCM_RETURN(Scm_Values2(Scm_MakeInteger(n_properties), h));" + (input-file "gtklabel.h") + + ;; Memory is owned by the widget so we don't need to free them. +-(define-cproc gtk-label-get-text (label::<gtk-label>) +- "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_text(label)));") +-(define-cproc gtk-label-get-label (label::<gtk-label>) +- "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_label(label)));") ++(define-cproc-fix gtk-label-get-text ++ (fix-arguments! '(label::<gtk-label>)) ++ (fix-body! ++ "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_text(label)));")) ++(define-cproc-fix gtk-label-get-label ++ (fix-arguments! '(label::<gtk-label>)) ++ (fix-body! ++ "SCM_RETURN(SCM_MAKE_STR_COPYING(gtk_label_get_label(label)));")) + + (define-cproc-fix gtk-label-get-seleciton-bounds + (fix-arguments! '(label::<gtk-label>)) +@@ -1121,9 +1129,11 @@ return SCM_MAKE_STR_COPYING((char*)string);")) + + (input-file "gtkprogressbar.h") + +-(define-cproc gtk-progress-bar-get-text (pbar::<gtk-progress-bar>) +- "gchar *g = gtk_progress_bar_get_text(pbar); +- SCM_RETURN(SCM_MAKE_STR_COPYING_SAFELY(g));") ++(define-cproc-fix gtk-progress-bar-get-text ++ (fix-arguments! '(pbar::<gtk-progress-bar>)) ++ (fix-body! ++ "gchar *g = gtk_progress_bar_get_text(pbar); ++ SCM_RETURN(SCM_MAKE_STR_COPYING_SAFELY(g));")) + + ;;================================================================== + ;; gtkradiobutton diff --git a/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff new file mode 100644 index 000000000000..081c83df1fe5 --- /dev/null +++ b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-cpp.diff @@ -0,0 +1,11 @@ +--- a/lib/h2s/parse.scm ++++ b/lib/h2s/parse.scm +@@ -329,6 +329,8 @@ + (#/^\}\s*([\w_]+)/ (#f name) (make-enum name (reverse enums))) ; -----> + ;; empty line: + (#/^\s*$/ () (loop (read-line) enums)) ++ ;; preprocessor directive: ++ (#/^\s*#\s*\w+/ () (loop (read-line) enums)) + ;; + (test has-comment? (skip-comment line (cut loop <> enums) err-eof)) ; what if?: new_value, /* boring comment*/ + (#/\s+([\w_]+),?/ (#f enum) diff --git a/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff new file mode 100644 index 000000000000..9e8bbcf6e72d --- /dev/null +++ b/dev-scheme/gauche-gtk/files/gauche-gtk-h2s-gdk-pixbuf.diff @@ -0,0 +1,23 @@ +--- a/src/h2s-gtk.scm ++++ b/src/h2s-gtk.scm +@@ -50,6 +50,11 @@ + (define pango-directory + (find-header-dir #`"pango-,|pango-version|/pango/pango.h" + *header-search-paths*)) ++(define gdk-pixbuf-directory ++ (guard (e [(<error> e) ++ gtk-directory]) ++ (find-header-dir #`"gdk-pixbuf-,|gtk-version|/gdk-pixbuf/gdk-pixbuf.h" ++ *header-search-paths* ))) + + + (define (parse-gdk) +@@ -64,7 +69,7 @@ + (call-with-input-file "PANGOFILES" port->string-list))) + + (define (parse-gdk-pixbuf) +- (parse-headers #`",|gtk-directory|/gdk-pixbuf" ++ (parse-headers #`",|gdk-pixbuf-directory|/gdk-pixbuf" + (call-with-input-file "GDKPIXBUFFILES" port->string-list))) + + ;; defaults for the gauche-gtk package: diff --git a/dev-scheme/gauche-gtk/gauche-gtk-0.6_pre1.ebuild b/dev-scheme/gauche-gtk/gauche-gtk-0.6_pre1.ebuild new file mode 100644 index 000000000000..52ae52d31bce --- /dev/null +++ b/dev-scheme/gauche-gtk/gauche-gtk-0.6_pre1.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche-gtk/gauche-gtk-0.6_pre1.ebuild,v 1.1 2011/11/27 08:05:49 hattya Exp $ + +EAPI="4" + +inherit autotools eutils + +MY_P="${P/g/G}" +MY_PN="${PN/g/G}2" +PV_COMMIT="598828842a339a44c32ab8c16f5f9a77f3c1c799" + +DESCRIPTION="GTK2 binding for Gauche" +HOMEPAGE="http://practical-scheme.net/gauche/" +SRC_URI="https://github.com/shirok/${MY_PN}/tarball/${PV_COMMIT} -> ${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~ppc ~x86" +IUSE="examples glgd nls opengl" +RESTRICT="test" + +DEPEND="${RDEPEND} + dev-util/pkgconfig" +RDEPEND="x11-libs/gtk+:2 + dev-scheme/gauche + opengl? ( + x11-libs/gtkglext + dev-scheme/gauche-gl + )" +S="${WORKDIR}/shirok-${MY_PN}-${PV_COMMIT:0:7}" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-h2s-gdk-pixbuf.diff + epatch "${FILESDIR}"/${PN}-gtk-lib.hints.diff + epatch "${FILESDIR}"/${PN}-h2s-cpp.diff + eautoconf +} + +src_configure() { + local myconf + if use opengl; then + if use glgd; then + myconf="--enable-glgd" + if use nls; then + myconf="${myconf}-pango" + fi + else + myconf="--enable-gtkgl" + fi + fi + + econf ${myconf} +} + +src_compile() { + emake stubs + emake +} + +src_install() { + emake DESTDIR="${D}" install + dodoc ChangeLog README + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + docinto examples + dodoc examples/*.scm + # install gtk-tutorial + docinto examples/gtk-tutorial + dodoc examples/gtk-tutorial/* + if use opengl; then + # install gtkglext + dodoc -r examples/gtkglext + if use glgd; then + # install glgd + dodoc -r examples/glgd + fi + fi + fi +} |