summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2022-09-09 14:16:50 +0200
committerMichał Górny <mgorny@gentoo.org>2022-09-09 14:18:33 +0200
commit2fb0b1af8eaca82d0eef36eaa5de9145f5bc9919 (patch)
tree5618f5df2c2200766097e5ba84503617d38a8cda
parentxfce-extra/xfce4-windowck-plugin: New package, v0.5.0 (diff)
downloadgentoo-2fb0b1af.tar.gz
gentoo-2fb0b1af.tar.bz2
gentoo-2fb0b1af.zip
games-emulation/mupen64plus-core: Backport crash fix
Closes: https://bugs.gentoo.org/869326 Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r--games-emulation/mupen64plus-core/files/mupen64plus-core-2.5.9-pitch.patch29
-rw-r--r--games-emulation/mupen64plus-core/mupen64plus-core-2.5.9-r3.ebuild (renamed from games-emulation/mupen64plus-core/mupen64plus-core-2.5.9-r2.ebuild)47
2 files changed, 57 insertions, 19 deletions
diff --git a/games-emulation/mupen64plus-core/files/mupen64plus-core-2.5.9-pitch.patch b/games-emulation/mupen64plus-core/files/mupen64plus-core-2.5.9-pitch.patch
new file mode 100644
index 000000000000..449e4252dae2
--- /dev/null
+++ b/games-emulation/mupen64plus-core/files/mupen64plus-core-2.5.9-pitch.patch
@@ -0,0 +1,29 @@
+From 8fac78d8cb54da960ca85a49547dcc4fb952457d Mon Sep 17 00:00:00 2001
+From: VarNepvius <14352929+VarNepvius@users.noreply.github.com>
+Date: Tue, 6 Sep 2022 20:31:03 +0200
+Subject: [PATCH] Fix wrong pitch argument in call to SDL_CreateRGBSurfaceFrom.
+
+---
+ src/api/vidext_sdl2_compat.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/api/vidext_sdl2_compat.h b/src/api/vidext_sdl2_compat.h
+index 06d778dd9..071a64402 100644
+--- a/src/api/vidext_sdl2_compat.h
++++ b/src/api/vidext_sdl2_compat.h
+@@ -474,8 +474,14 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags)
+ if (SDL_GL_MakeCurrent(SDL_VideoWindow, SDL_VideoContext) < 0) {
+ return NULL;
+ }
++
++ /* Pitch: size of of line in bytes */
++ /* Add 7 to bpp before division, to ensure correct rounding towards infinity
++ * in cases where bits per pixel do not cleanly divide by 8 (such as 15)
++ */
++ int pitch = (bpp + 7) / 8 * width;
+ SDL_VideoSurface =
+- SDL_CreateRGBSurfaceFrom(NULL, width, height, bpp, 0, 0, 0, 0, 0);
++ SDL_CreateRGBSurfaceFrom(NULL, width, height, bpp, pitch, 0, 0, 0, 0);
+ if (!SDL_VideoSurface) {
+ return NULL;
+ }
diff --git a/games-emulation/mupen64plus-core/mupen64plus-core-2.5.9-r2.ebuild b/games-emulation/mupen64plus-core/mupen64plus-core-2.5.9-r3.ebuild
index 459fd3cd6239..38e80fb81924 100644
--- a/games-emulation/mupen64plus-core/mupen64plus-core-2.5.9-r2.ebuild
+++ b/games-emulation/mupen64plus-core/mupen64plus-core-2.5.9-r3.ebuild
@@ -1,41 +1,50 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-MY_P=${PN}-src-${PV}
inherit toolchain-funcs
+MY_P=${PN}-src-${PV}
DESCRIPTION="A fork of Mupen64 Nintendo 64 emulator, core library"
HOMEPAGE="https://www.mupen64plus.org/"
-SRC_URI="https://github.com/mupen64plus/${PN}/releases/download/${PV}/${MY_P}.tar.gz"
+SRC_URI="
+ https://github.com/mupen64plus/${PN}/releases/download/${PV}/${MY_P}.tar.gz
+"
+S=${WORKDIR}/${MY_P}
LICENSE="GPL-2+"
SLOT="0/2-sdl2"
KEYWORDS="~amd64 ~x86"
IUSE="debugger gles2-only lirc new-dynarec opencv +osd cpu_flags_x86_sse"
+REQUIRED_USE="gles2-only? ( !osd )"
-RDEPEND="media-libs/libpng:0=
- media-libs/libsdl2:0=[joystick,opengl,video]
- sys-libs/zlib:0=[minizip]
- gles2-only? ( media-libs/libsdl2:0[gles2] )
- lirc? ( app-misc/lirc:0 )
+DEPEND="
+ media-libs/libpng:=
+ media-libs/libsdl2[joystick,opengl,video]
+ sys-libs/zlib[minizip]
+ gles2-only? ( media-libs/libsdl2[gles2] )
+ lirc? ( app-misc/lirc )
opencv? ( media-libs/opencv:= )
osd? (
media-fonts/dejavu
- media-libs/freetype:2=
- virtual/opengl:0=
- virtual/glu:0=
- )"
-DEPEND="${RDEPEND}"
+ media-libs/freetype:2
+ virtual/opengl
+ virtual/glu
+ )
+"
+RDEPEND="
+ ${DEPEND}
+"
BDEPEND="
cpu_flags_x86_sse? ( dev-lang/nasm )
- virtual/pkgconfig"
-
-REQUIRED_USE="gles2-only? ( !osd )"
-S=${WORKDIR}/${MY_P}
+ virtual/pkgconfig
+"
-PATCHES=( "${FILESDIR}"/${PN}-2.5.9-fix-gcc10-fno-common.patch )
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-gcc10-fno-common.patch
+ "${FILESDIR}"/${P}-pitch.patch
+)
src_prepare() {
default