diff options
author | 2006-07-18 13:12:37 +0000 | |
---|---|---|
committer | 2006-07-18 13:12:37 +0000 | |
commit | b3f30afe0cbb942e6bd8339aa0be6c14d6f7a646 (patch) | |
tree | 186888737b5c77cd1d37f00c18184415a01ea7f4 /app-emulation | |
parent | Stable on amd64 and x86 wrt bug #140584. (diff) | |
download | historical-b3f30afe0cbb942e6bd8339aa0be6c14d6f7a646.tar.gz historical-b3f30afe0cbb942e6bd8339aa0be6c14d6f7a646.tar.bz2 historical-b3f30afe0cbb942e6bd8339aa0be6c14d6f7a646.zip |
Fix for bug 95430. Thank Joël for report and upstream developer Richard Drummond for the patch.
Package-Manager: portage-2.1-r1
Diffstat (limited to 'app-emulation')
-rw-r--r-- | app-emulation/e-uae/ChangeLog | 9 | ||||
-rw-r--r-- | app-emulation/e-uae/Manifest | 19 | ||||
-rw-r--r-- | app-emulation/e-uae/e-uae-0.8.28-r3.ebuild | 129 | ||||
-rw-r--r-- | app-emulation/e-uae/files/digest-e-uae-0.8.28-r3 | 3 | ||||
-rw-r--r-- | app-emulation/e-uae/files/e-uae-0.8.28-themes_rendering_fix.diff | 215 |
5 files changed, 370 insertions, 5 deletions
diff --git a/app-emulation/e-uae/ChangeLog b/app-emulation/e-uae/ChangeLog index 50777e3cd331..7d357f9f60ac 100644 --- a/app-emulation/e-uae/ChangeLog +++ b/app-emulation/e-uae/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for app-emulation/e-uae # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/e-uae/ChangeLog,v 1.14 2006/07/17 11:18:05 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/e-uae/ChangeLog,v 1.15 2006/07/18 13:12:37 pva Exp $ + +*e-uae-0.8.28-r3 (18 Jul 2006) + + 18 Jul 2006; Peter Volkov <pva@gentoo.org> + +files/e-uae-0.8.28-themes_rendering_fix.diff, +e-uae-0.8.28-r3.ebuild: + Fix for bug 95430. Thank Joël for report and upstream developer + Richard Drummond for the patch. 17 Jul 2006; Peter Volkov <pva@gentoo.org> e-uae-0.8.28-r1.ebuild, e-uae-0.8.28-r2.ebuild: diff --git a/app-emulation/e-uae/Manifest b/app-emulation/e-uae/Manifest index 313ff47d0358..9080544abc87 100644 --- a/app-emulation/e-uae/Manifest +++ b/app-emulation/e-uae/Manifest @@ -18,6 +18,10 @@ AUX e-uae-0.8.28-shm-crash.patch 582 RMD160 a7a6c99ee6e9ea627bfc294fbe03d69a213f MD5 774c0436b6e91dd8f18b0df23f10c75b files/e-uae-0.8.28-shm-crash.patch 582 RMD160 a7a6c99ee6e9ea627bfc294fbe03d69a213f1810 files/e-uae-0.8.28-shm-crash.patch 582 SHA256 58ea8ef7d95c65ccfea57a3eeb5c6695e2b2cbac687c6819ce9862eed0d8bda7 files/e-uae-0.8.28-shm-crash.patch 582 +AUX e-uae-0.8.28-themes_rendering_fix.diff 5832 RMD160 0fbcf0d77176f09ccad6b037b835002b47b9c084 SHA1 4476276f4c618504962823bfacc633e7bb8e66fa SHA256 164acc45e9353f2b8551c133e892237fa087aaeda66eaf2cd23820254f7a5eb2 +MD5 4c3572a4f40235e86bf1a769eba1e6f9 files/e-uae-0.8.28-themes_rendering_fix.diff 5832 +RMD160 0fbcf0d77176f09ccad6b037b835002b47b9c084 files/e-uae-0.8.28-themes_rendering_fix.diff 5832 +SHA256 164acc45e9353f2b8551c133e892237fa087aaeda66eaf2cd23820254f7a5eb2 files/e-uae-0.8.28-themes_rendering_fix.diff 5832 DIST e-uae-0.8.27.tar.bz2 1129674 DIST e-uae-0.8.28.tar.bz2 1148790 RMD160 7e9fa21fa14b0ca3a32a28ccb236b9d7628a7f69 SHA1 11e647ed64420f85893ac77c072e268b650ae183 SHA256 afc8b30fb9aa0819a4e53b3eb0db8e658e5a2b23d7dbf436f6b5a49b2269da86 EBUILD e-uae-0.8.27.ebuild 1672 RMD160 4a6ef7be97f84be9a7d38f05483a50a723782c59 SHA1 d838ece3f626ba9f2f003c6c7a947fc1e0797558 SHA256 871286f65405519ab79134809032479297c7674aa9638fc497f7f078d77b5236 @@ -32,10 +36,14 @@ EBUILD e-uae-0.8.28-r2.ebuild 3816 RMD160 7c402dcdc992a3532a1bfb7710311f3e5bfbbc MD5 2ddcaee8acb13387c4bff6ba7c784e58 e-uae-0.8.28-r2.ebuild 3816 RMD160 7c402dcdc992a3532a1bfb7710311f3e5bfbbcdf e-uae-0.8.28-r2.ebuild 3816 SHA256 6ecffb266443a6ff4bf0bac23282855fdac21368ec442eb56d20a65dc174838c e-uae-0.8.28-r2.ebuild 3816 -MISC ChangeLog 2613 RMD160 5b6baab85e78e1020923f7e7eeade197378ddaf6 SHA1 a56dd5704cd77a2ddad509bcce2213a8d5453358 SHA256 807d792e77869a419e718fb47a9a68fed114cdbee4e0a4cb19f799cb1f1c64e2 -MD5 1bd5900884de5d7f73e897cce032b7f5 ChangeLog 2613 -RMD160 5b6baab85e78e1020923f7e7eeade197378ddaf6 ChangeLog 2613 -SHA256 807d792e77869a419e718fb47a9a68fed114cdbee4e0a4cb19f799cb1f1c64e2 ChangeLog 2613 +EBUILD e-uae-0.8.28-r3.ebuild 3869 RMD160 598617889bc6117bfecc40e7cd08aaf56d88088e SHA1 58c14b39a9f27a2220c54843284d69642e699c20 SHA256 5eda689deb7b43aa630ebae275bf579796aefa3ed46bc572395669b21f0271ec +MD5 fbe28706a4b0540803fe80f0cc94fc18 e-uae-0.8.28-r3.ebuild 3869 +RMD160 598617889bc6117bfecc40e7cd08aaf56d88088e e-uae-0.8.28-r3.ebuild 3869 +SHA256 5eda689deb7b43aa630ebae275bf579796aefa3ed46bc572395669b21f0271ec e-uae-0.8.28-r3.ebuild 3869 +MISC ChangeLog 2866 RMD160 26ed50029c9de0765fcbf62c91db0ca954ba8856 SHA1 e256cabab52b3a86614112e74867668fd584514e SHA256 f474062db1ea8f363c4921579e8feff9dc1b4016cf65bc98cd88f9f58a21e6dd +MD5 8742f62383fce2f325c1ac649a05ad6a ChangeLog 2866 +RMD160 26ed50029c9de0765fcbf62c91db0ca954ba8856 ChangeLog 2866 +SHA256 f474062db1ea8f363c4921579e8feff9dc1b4016cf65bc98cd88f9f58a21e6dd ChangeLog 2866 MISC metadata.xml 468 RMD160 3cc57496496e8ed0e18330d5523ceb3d417bf222 SHA1 575564530c1b5d164d1eedcd003b4f43dc435abc SHA256 6bdc3ef9c0c895a8d4f227e52c2bb044d38fc00c17c04199ffd7a1aaa023ec0f MD5 107be5d8d010a6b3dac228473128bdf4 metadata.xml 468 RMD160 3cc57496496e8ed0e18330d5523ceb3d417bf222 metadata.xml 468 @@ -49,3 +57,6 @@ SHA256 82cc02576ec30a11aaafa85d5e55d9118795f73e0db80ed544cded39f1df25ac files/di MD5 188bf5165e1f85783a9ba7fa185f9fd3 files/digest-e-uae-0.8.28-r2 244 RMD160 754a2776d6ff1b461b1278828ea678dd002b4e3c files/digest-e-uae-0.8.28-r2 244 SHA256 82cc02576ec30a11aaafa85d5e55d9118795f73e0db80ed544cded39f1df25ac files/digest-e-uae-0.8.28-r2 244 +MD5 188bf5165e1f85783a9ba7fa185f9fd3 files/digest-e-uae-0.8.28-r3 244 +RMD160 754a2776d6ff1b461b1278828ea678dd002b4e3c files/digest-e-uae-0.8.28-r3 244 +SHA256 82cc02576ec30a11aaafa85d5e55d9118795f73e0db80ed544cded39f1df25ac files/digest-e-uae-0.8.28-r3 244 diff --git a/app-emulation/e-uae/e-uae-0.8.28-r3.ebuild b/app-emulation/e-uae/e-uae-0.8.28-r3.ebuild new file mode 100644 index 000000000000..d8ab2b2f4c5f --- /dev/null +++ b/app-emulation/e-uae/e-uae-0.8.28-r3.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/e-uae/e-uae-0.8.28-r3.ebuild,v 1.1 2006/07/18 13:12:37 pva Exp $ + +inherit eutils flag-o-matic + +DESCRIPTION="The Ubiquitous Amiga Emulator with an emulation core largely based on WinUAE" +HOMEPAGE="http://www.rcdrummond.net/uae/" +SRC_URI="http://www.rcdrummond.net/uae/${P}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="X dga ncurses sdl gtk alsa oss sdl-sound capslib" + +# Note: opposed to ./configure --help zlib support required! Check +# src/Makefile.am that includes zfile.c unconditionaly. +RDEPEND="X? ( || ( ( x11-libs/libXt + x11-libs/libxkbfile + x11-libs/libXext + dga? ( x11-libs/libXxf86dga + x11-libs/libXxf86vm ) + ) + virtual/x11 + ) + ) + !X? ( sdl? ( media-libs/libsdl ) + !sdl? ( sys-libs/ncurses ) ) + alsa? ( media-libs/alsa-lib ) + !alsa? ( sdl-sound? ( media-libs/sdl-sound ) ) + gtk? ( >=x11-libs/gtk+-2.0 ) + capslib? ( games-emulation/caps ) + sys-libs/zlib + app-cdr/cdrtools" + +DEPEND="$RDEPEND + X? ( dga? ( x11-proto/xf86vidmodeproto + x11-proto/xf86dgaproto ) )" + +pkg_setup() { + # Sound setup. + if use alsa; then + elog "Choosing alsa as sound target to use." + myconf="--with-alsa --without-sdl-sound" + elif use sdl-sound ; then + if ! use sdl ; then + ewarn "sdl-sound is not enabled because sdl is switched off. Leaving" + ewarn "sound on oss autodetection." + myconf="--without-alsa --without-sdl-sound" + ebeep + else + elog "Choosing sdl-sound as sound target to use." + myconf="--without-alsa --with-sdl-sound" + fi + elif use oss ; then + elog "Choosing oss as sound target to use." + ewarn "oss will be autodetected. See output of configure." + myconf="--without-alsa --without-sdl-sound" + else + ewarn "There is no alsa, sdl-sound or oss in USE. Sound target disabled!" + myconf="--disable-audio" + fi + + # VIDEO setup. X is autodetected (there is no --with-X option). + if use X ; then + elog "Using X11 for video output." + myconf="$myconf --without-curses --without-sdl-gfx" + use dga && myconf="$myconf --enable-dga --enable-vidmode" + elif use sdl ; then + elog "Using sdl for video output." + myconf="$myconf --with-sdl --with-sdl-gfx --without-curses" + elif use ncurses; then + elog "Using ncurses for video output." + myconf="$myconf --with-curses --without-sdl-gfx" + else + ewarn "There is no X or sdl or ncurses in USE!" + ewarn "Following upstream falling back on ncurses." + myconf="$myconf --with-curses --without-sdl-gfx" + ebeep + fi + + use gtk && myconf="$myconf --enable-ui --enable-threads" + use gtk || myconf="$myconf --disable-ui" + + use capslib && myconf="$myconf --with-caps" + + myconf="$myconf --with-zlib" + + # And explicitly state defaults: + myconf="$myconf --enable-aga" + myconf="$myconf --enable-autoconfig --enable-scsi-device --enable-cdtv --enable-cd32" + myconf="$myconf --enable-bsdsock" +} + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}/${P}-shm-crash.patch" + epatch "${FILESDIR}/${P}-fix-joystick-conflicts.patch" + epatch "${FILESDIR}/${P}-fix-atoscroll-screen-support.patch" + epatch "${FILESDIR}/${P}-fix-JIT-cache-on-NX-cpu.patch" + epatch "${FILESDIR}/${P}-gtkui_64bit_fix.diff" + epatch "${FILESDIR}/${P}-themes_rendering_fix.diff" +} + +src_compile() { + strip-flags + + econf ${myconf} \ + --with-libscg-includedir=/usr/include/scsilib \ + || die "./configure failed" + + emake -j1 || die "emake failed" +} + +src_install() { + make DESTDIR="${D}" install || die "make install failed" + + insinto /usr/share/uae/amiga-tools + doins amiga/{*hack,trans*,uae*,*.library} + + # Rename it to e-uae + mv "${D}/usr/bin/uae" "${D}/usr/bin/e-uae" + mv "${D}/usr/bin/readdisk" "${D}/usr/bin/e-readdisk" + mv "${D}/usr/share/uae" "${D}/usr/share/${PN}" + + dodoc docs/* README ChangeLog CHANGES +} diff --git a/app-emulation/e-uae/files/digest-e-uae-0.8.28-r3 b/app-emulation/e-uae/files/digest-e-uae-0.8.28-r3 new file mode 100644 index 000000000000..f73743e1c92c --- /dev/null +++ b/app-emulation/e-uae/files/digest-e-uae-0.8.28-r3 @@ -0,0 +1,3 @@ +MD5 9fc186f9256d04f940304044e29175ef e-uae-0.8.28.tar.bz2 1148790 +RMD160 7e9fa21fa14b0ca3a32a28ccb236b9d7628a7f69 e-uae-0.8.28.tar.bz2 1148790 +SHA256 afc8b30fb9aa0819a4e53b3eb0db8e658e5a2b23d7dbf436f6b5a49b2269da86 e-uae-0.8.28.tar.bz2 1148790 diff --git a/app-emulation/e-uae/files/e-uae-0.8.28-themes_rendering_fix.diff b/app-emulation/e-uae/files/e-uae-0.8.28-themes_rendering_fix.diff new file mode 100644 index 000000000000..4c8eae83d68c --- /dev/null +++ b/app-emulation/e-uae/files/e-uae-0.8.28-themes_rendering_fix.diff @@ -0,0 +1,215 @@ +diff -Naur e-uae-0.8.28.orig/src/gui-gtk/led.c e-uae-0.8.28/src/gui-gtk/led.c +--- e-uae-0.8.28.orig/src/gui-gtk/led.c 2004-06-15 01:14:49.000000000 +0400 ++++ e-uae-0.8.28/src/gui-gtk/led.c 2006-07-18 17:01:48.000000000 +0400 +@@ -1,15 +1,17 @@ +-/* +- * led.c +- * +- * Copyright 2004 Martin Garton +- */ ++ /* ++ * E-UAE - The portable Amiga Emulator ++ * ++ * Custom Gtk+ LED widget ++ * ++ * Copyright 2004 Martin Garton ++ * Copyright 2006 Richard Drummond ++ */ + + #include <sys/types.h> + #include <sys/stat.h> + #include <unistd.h> + #include <string.h> + +-#include <gdk/gdkkeysyms.h> + #include <gtk/gtk.h> + + #include "led.h" +@@ -21,14 +23,19 @@ + static void led_class_init (LedClass *class); + static gint led_expose (GtkWidget *w, GdkEventExpose *event); + static void led_destroy (GtkObject *object); ++static void led_realize (GtkWidget *widget); ++static void led_unrealize (GtkWidget *widget); ++static void led_size_request (GtkWidget *widget, GtkRequisition *requisition); ++static void led_size_allocate (GtkWidget *widget, GtkAllocation *allocation); ++ + + guint led_get_type () + { + static guint led_type = 0; + + if (!led_type) { +- GtkTypeInfo led_info = { +- "Led", ++ static const GtkTypeInfo led_info = { ++ (char *) "Led", + sizeof (Led), + sizeof (LedClass), + (GtkClassInitFunc) led_class_init, +@@ -48,39 +55,102 @@ + { + GtkObjectClass *object_class = (GtkObjectClass *) class; + GtkWidgetClass *widget_class = (GtkWidgetClass *) class; +- parent_class = gtk_type_class (gtk_object_get_type ()); ++ parent_class = gtk_type_class (gtk_widget_get_type ()); + + object_class->destroy = led_destroy; + widget_class->expose_event = led_expose; ++ widget_class->realize = led_realize; ++ widget_class->unrealize = led_unrealize; ++ widget_class->size_request = led_size_request; ++ widget_class->size_allocate = led_size_allocate; + } + + static void led_init (Led *theled) + { + theled->color = LED_OFF; +- +- GTK_WIDGET (theled)->requisition.width = LED_W + GTK_MISC (theled)->xpad * 2; +- GTK_WIDGET (theled)->requisition.height = LED_H + GTK_MISC (theled)->ypad * 2; + } + +- + GtkWidget *led_new (void) + { + return gtk_type_new (led_get_type ()); + } + +- + static gint led_expose (GtkWidget *w, GdkEventExpose *event) + { + if (w && GTK_WIDGET_DRAWABLE (w)) { +- GtkStyle *style = gtk_style_copy (w->style); +- style->bg[GTK_STATE_NORMAL] = LED (w)->color; +- gtk_style_attach (style, w->window); +- gtk_draw_flat_box (style, w->window, GTK_STATE_NORMAL, GTK_SHADOW_NONE, +- 0, 0, LED_W, LED_H); ++ Led *theled = LED (w); ++ gdk_draw_rectangle (w->window, theled->gc, TRUE, 0, 0, ++ w->allocation.width, w->allocation.height); + } + return 0; + } + ++static void led_realize (GtkWidget *widget) ++{ ++ Led *theled; ++ GdkWindowAttr attributes; ++ gint attributes_mask; ++ ++ g_return_if_fail (widget != NULL); ++ g_return_if_fail (IS_LED (widget)); ++ ++ GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); ++ theled = LED (widget); ++ ++ attributes.x = widget->allocation.x; ++ attributes.y = widget->allocation.y; ++ attributes.width = widget->allocation.width; ++ attributes.height = widget->allocation.height; ++ attributes.wclass = GDK_INPUT_OUTPUT; ++ attributes.window_type = GDK_WINDOW_CHILD; ++ attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK; ++ attributes.visual = gtk_widget_get_visual (widget); ++ attributes.colormap = gtk_widget_get_colormap (widget); ++ ++ attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; ++ widget->window = gdk_window_new (widget->parent->window, &attributes, attributes_mask); ++ ++ gdk_window_set_user_data (widget->window, widget); ++ ++ theled->gc = gdk_gc_new (widget->window); ++ gdk_gc_set_rgb_fg_color (theled->gc, &theled->color); ++ ++ led_expose (widget, NULL); ++} ++ ++static void led_unrealize (GtkWidget *widget) ++{ ++ Led *theled = LED (widget); ++ ++ g_object_unref (theled->gc); ++ theled->gc = NULL; ++ ++ GTK_WIDGET_CLASS (parent_class)->unrealize (widget); ++} ++ ++static void led_size_request (GtkWidget *widget, GtkRequisition *requisition) ++{ ++ requisition->width = LED_W; ++ requisition->height = LED_H; ++} ++ ++static void led_size_allocate (GtkWidget *widget, GtkAllocation *allocation) ++{ ++ Led *theled = LED (widget); ++ ++ g_return_if_fail (widget != NULL); ++ g_return_if_fail (IS_LED (widget)); ++ g_return_if_fail (allocation != NULL); ++ ++ widget->allocation = *allocation; ++ ++ if (GTK_WIDGET_REALIZED (widget)) { ++ gdk_window_move_resize (widget->window, ++ allocation->x, allocation->y, ++ allocation->width, allocation->height); ++ } ++} ++ + static void led_destroy (GtkObject *o) + { + g_return_if_fail (o != NULL); +@@ -95,6 +165,8 @@ + { + l->color = col; + +- if (GTK_WIDGET_DRAWABLE (l)) ++ if (GTK_WIDGET_REALIZED (l)) { ++ gdk_gc_set_rgb_fg_color (l->gc, &l->color); + led_expose (GTK_WIDGET (l), NULL); ++ } + } +diff -Naur e-uae-0.8.28.orig/src/gui-gtk/led.h e-uae-0.8.28/src/gui-gtk/led.h +--- e-uae-0.8.28.orig/src/gui-gtk/led.h 2004-05-20 00:56:23.000000000 +0400 ++++ e-uae-0.8.28/src/gui-gtk/led.h 2006-07-18 17:01:42.000000000 +0400 +@@ -1,10 +1,16 @@ +-/* led.h */ ++ /* ++ * E-UAE - The portable Amiga Emulator ++ * ++ * Custom Gtk+ LED widget ++ * ++ * Copyright 2004 Martin Garton ++ * Copyright 2006 Richard Drummond ++ */ + + #ifndef __LED_H__ + #define __LED_H__ + + #include <gdk/gdk.h> +-#include <gtk/gtkmisc.h> + + #ifdef __cplusplus + extern "C" { +@@ -21,15 +27,15 @@ + + struct _Led + { +- GtkMisc widget; +- GdkColor color; ++ GtkWidget widget; ++ ++ GdkGC *gc; ++ GdkColor color; + }; + + struct _LedClass + { + GtkWidgetClass parent_class; +- +- //void (* led) (Led *led ); + }; + + guint led_get_type (void); |