commit:     2fb0b1af8eaca82d0eef36eaa5de9145f5bc9919
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  9 12:16:50 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Sep  9 12:18:33 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2fb0b1af

games-emulation/mupen64plus-core: Backport crash fix

Closes: https://bugs.gentoo.org/869326
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../files/mupen64plus-core-2.5.9-pitch.patch       | 29 +++++++++++++
 ...-r2.ebuild => mupen64plus-core-2.5.9-r3.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 <[email protected]>
+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
similarity index 81%
rename from games-emulation/mupen64plus-core/mupen64plus-core-2.5.9-r2.ebuild
rename to 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

Reply via email to