summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarijn Schouten <hkbst@gentoo.org>2007-07-25 17:36:58 +0000
committerMarijn Schouten <hkbst@gentoo.org>2007-07-25 17:36:58 +0000
commit0dea33c21b15f6bac4a8be6eaa7d5f4f2c111b10 (patch)
tree09e11813e1bee22179a60c2bfeae26bba71c0fe7 /dev-scheme
parent Fix URI address bar spoofing issue in 3.5.6 as well. (diff)
downloadgentoo-2-0dea33c21b15f6bac4a8be6eaa7d5f4f2c111b10.tar.gz
gentoo-2-0dea33c21b15f6bac4a8be6eaa7d5f4f2c111b10.tar.bz2
gentoo-2-0dea33c21b15f6bac4a8be6eaa7d5f4f2c111b10.zip
add patch to fix bug 186603
(Portage version: 2.1.3_rc9)
Diffstat (limited to 'dev-scheme')
-rw-r--r--dev-scheme/drscheme/ChangeLog8
-rw-r--r--dev-scheme/drscheme/drscheme-360-r3.ebuild91
-rw-r--r--dev-scheme/drscheme/files/360p1.patch142
-rw-r--r--dev-scheme/drscheme/files/digest-drscheme-360-r33
4 files changed, 243 insertions, 1 deletions
diff --git a/dev-scheme/drscheme/ChangeLog b/dev-scheme/drscheme/ChangeLog
index d45b631d21d1..15e030aa1b7e 100644
--- a/dev-scheme/drscheme/ChangeLog
+++ b/dev-scheme/drscheme/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-scheme/drscheme
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-scheme/drscheme/ChangeLog,v 1.50 2007/07/25 17:14:02 hkbst Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-scheme/drscheme/ChangeLog,v 1.51 2007/07/25 17:36:58 hkbst Exp $
+
+*drscheme-360-r3 (25 Jul 2007)
+
+ 25 Jul 2007; Marijn Schouten <hkBst@gentoo.org> +files/360p1.patch,
+ +drscheme-360-r3.ebuild:
+ add patch to fix bug 186603
25 Jul 2007; Marijn Schouten <hkBst@gentoo.org> -drscheme-301-r2.ebuild,
-drscheme-352-r2.ebuild:
diff --git a/dev-scheme/drscheme/drscheme-360-r3.ebuild b/dev-scheme/drscheme/drscheme-360-r3.ebuild
new file mode 100644
index 000000000000..1e011cfa67d2
--- /dev/null
+++ b/dev-scheme/drscheme/drscheme-360-r3.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-scheme/drscheme/drscheme-360-r3.ebuild,v 1.1 2007/07/25 17:36:58 hkbst Exp $
+
+inherit eutils multilib flag-o-matic libtool
+
+DESCRIPTION="DrScheme programming environment. Includes mzscheme."
+HOMEPAGE="http://www.plt-scheme.org/software/drscheme/"
+SRC_URI="http://download.plt-scheme.org/bundles/${PV}/plt/plt-${PV}-src-unix.tgz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="3m backtrace cairo jpeg opengl perl png X"
+
+RDEPEND="X? ( x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXaw
+ >=x11-libs/libXft-2.1.12
+ media-libs/freetype
+ media-libs/fontconfig )
+ cairo? ( >=x11-libs/cairo-1.2.3 )
+ jpeg? ( media-libs/jpeg )
+ opengl? ( virtual/opengl )
+ png? ( media-libs/libpng )"
+
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/plt-${PV}/src"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}/.."
+
+ epatch "${FILESDIR}/${PN}-350-fPIC.patch"
+ epatch "${FILESDIR}/${P}-DESTDIR-3m.patch"
+ epatch "${FILESDIR}/360p1.patch"
+
+ cd "${S}/mzscheme/gc"
+ elibtoolize
+ cd "${S}"
+
+ # lib dir fixups
+ sed -ie 's:-rpath ${absprefix}/lib:-rpath ${absprefix}/'$(get_libdir)':g' configure
+}
+
+src_compile() {
+ # -O3 seems to cause some miscompiles, this should fix #141925 and #133888
+ replace-flags -O? -O2
+
+ econf $(use_enable X mred) \
+ --enable-shared \
+ --enable-lt=/usr/bin/libtool \
+ $(use_enable backtrace) \
+ $(use_enable cairo) \
+ $(use_enable jpeg libjpeg) \
+ $(use_enable opengl gl) \
+ $(use_enable perl) \
+ $(use_enable png libpng) \
+ || die "econf failed"
+
+ emake || die "emake failed"
+
+ if use 3m; then
+ emake -j1 3m || die "emake 3m failed"
+ fi
+}
+
+src_install() {
+ export MZSCHEME_DYNEXT_LINKER_FLAGS=$(raw-ldflags)
+
+ make DESTDIR="${D}" install || die "make install failed"
+
+ if use 3m; then
+ make DESTDIR="${D}" install-3m || die "make install-m3 failed"
+ fi
+
+ dodoc ${WORKDIR}/plt/{readme.txt,src/README}
+
+ mv -f "${D}"/usr/share/plt/doc/* "${D}/usr/share/doc/${PF}/"
+ rm -rf "${D}/usr/share/plt/doc"
+
+ # needed so online help works
+ keepdir /usr/share/plt
+ dosym "/usr/share/doc/${PF}" "/usr/share/plt/doc"
+
+ if use X; then
+ newicon "${WORKDIR}/plt-${PV}/collects/icons/PLT-206.png" drscheme.png
+ make_desktop_entry drscheme "DrScheme" drscheme.png "Development"
+ fi
+}
diff --git a/dev-scheme/drscheme/files/360p1.patch b/dev-scheme/drscheme/files/360p1.patch
new file mode 100644
index 000000000000..c541e6c05a99
--- /dev/null
+++ b/dev-scheme/drscheme/files/360p1.patch
@@ -0,0 +1,142 @@
+Index: src/mred/mredx.cxx
+===================================================================
+--- src/mred/mredx.cxx (.../v360) (revision 5838)
++++ src/mred/mredx.cxx (.../v360p1) (revision 5838)
+@@ -151,7 +151,43 @@
+
+ static unsigned long lastUngrabTime;
+ static unsigned long lastUnhideTime;
++static int need_unhide = 0;
+
++class Check_Ungrab_Record {
++public:
++ Window window;
++ int x, y, x_root, y_root;
++ Check_Ungrab_Record *next;
++};
++
++static int cur_registered = 0;
++static Check_Ungrab_Record *first_cur = NULL, *last_cur = NULL;
++
++static void CheckUngrab(Display *dpy, Check_Ungrab_Record *cur)
++{
++ Window root;
++ int x, y;
++ unsigned w, h, b, d;
++
++ XGetGeometry(dpy, cur->window,
++ &root, &x, &y, &w, &h,
++ &b, &d);
++ if ((cur->x < 0) || (cur->y < 0)
++ || ((unsigned int)cur->x > w) || ((unsigned int)cur->y > h)) {
++ /* Looks bad, but is it a click in a MrEd window
++ that we could care about? */
++
++ wxWindow *w;
++ w = wxLocationToWindow(cur->x_root, cur->y_root);
++
++ if (w) {
++ /* Looks like we need to ungrab */
++ XUngrabPointer(dpy, 0);
++ XUngrabKeyboard(dpy, 0);
++ }
++ }
++}
++
+ static Bool CheckPred(Display *display, XEvent *e, char *args)
+ {
+ Window window;
+@@ -163,7 +199,7 @@
+ case MotionNotify:
+ if (e->xbutton.time > lastUnhideTime) {
+ lastUnhideTime = e->xbutton.time;
+- wxUnhideAllCursors();
++ need_unhide = 1;
+ }
+ break;
+ default:
+@@ -197,28 +233,22 @@
+ /* lastUngrabTime keeps us from checking the same events
+ over and over again. */
+ if (e->xbutton.time > lastUngrabTime) {
+- Window root;
+- int x, y;
+- unsigned w, h, b, d;
+-
+- XGetGeometry(XtDisplay(widget), e->xbutton.window,
+- &root, &x, &y, &w, &h,
+- &b, &d);
+- if ((e->xbutton.x < 0) || (e->xbutton.y < 0)
+- || ((unsigned int)e->xbutton.x > w) || ((unsigned int)e->xbutton.y > h)) {
+- /* Looks bad, but is it a click in a MrEd window
+- that we could care about? */
+-
+- wxWindow *w;
+- w = wxLocationToWindow(e->xbutton.x_root, e->xbutton.y_root);
+-
+- if (w) {
+- /* Looks like we need to ungrab */
+- XUngrabPointer(XtDisplay(widget), 0);
+- XUngrabKeyboard(XtDisplay(widget), 0);
+- }
++ Check_Ungrab_Record *cur;
++ if (!cur_registered) {
++ wxREGGLOB(first_cur);
++ wxREGGLOB(last_cur);
+ }
+-
++ cur = new WXGC_PTRS Check_Ungrab_Record;
++ cur->window = e->xbutton.window;
++ cur->x = e->xbutton.x;
++ cur->y = e->xbutton.y;
++ cur->x_root = e->xbutton.x_root;
++ cur->y_root = e->xbutton.y_root;
++ if (last_cur)
++ last_cur->next = cur;
++ else
++ first_cur = cur;
++ last_cur = cur;
+ lastUngrabTime = e->xbutton.time;
+ }
+ }
+@@ -339,6 +369,7 @@
+ XEvent *event, MrEdContext **which)
+ {
+ Display *d;
++ int got;
+
+ if (which)
+ *which = NULL;
+@@ -351,7 +382,20 @@
+ else
+ d = XtDisplay(orig_top_level);
+
+- if (XCheckIfEvent(d, event, CheckPred, (char *)which)) {
++ got = XCheckIfEvent(d, event, CheckPred, (char *)which);
++
++ if (need_unhide) {
++ need_unhide = 0;
++ wxUnhideAllCursors();
++ }
++
++ while (first_cur) {
++ CheckUngrab(d, first_cur);
++ first_cur = first_cur->next;
++ }
++ last_cur = NULL;
++
++ if (got) {
+ just_check = 0;
+ return 1;
+ } else if (short_circuit) {
+Index: collects/version/patchlevel.ss
+===================================================================
+--- collects/version/patchlevel.ss (.../v360) (revision 5838)
++++ collects/version/patchlevel.ss (.../v360p1) (revision 5838)
+@@ -1,5 +1,5 @@
+ ;; this file contains the current patch level of DrScheme
+ ;; it is usually `0' in the repository, and changed only when a patch is made.
+ (module patchlevel mzscheme
+- (define patchlevel 0)
++ (define patchlevel 1)
+ (provide patchlevel))
diff --git a/dev-scheme/drscheme/files/digest-drscheme-360-r3 b/dev-scheme/drscheme/files/digest-drscheme-360-r3
new file mode 100644
index 000000000000..d327f48d3562
--- /dev/null
+++ b/dev-scheme/drscheme/files/digest-drscheme-360-r3
@@ -0,0 +1,3 @@
+MD5 84bcab3ff30c333ae3c6b732518bdf27 plt-360-src-unix.tgz 14106005
+RMD160 cbe045f26f429d7df85540f09135c90bde45f84c plt-360-src-unix.tgz 14106005
+SHA256 014cd5c91231a5b6dd67c90ca9d2c26a7466abe0d072a37a40a605b29870f3bd plt-360-src-unix.tgz 14106005