commit: e17dcd37000234ba0ae79246a09d5c09ff33a16e Author: Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com> AuthorDate: Sat Jan 5 18:11:13 2019 +0000 Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> CommitDate: Sat Jan 5 19:43:35 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e17dcd37
games-emulation/dosbox: fix for xorg 1.20 issue * Added patch for xorg 1.20 issue (https://sourceforge.net/p/dosbox/code-0/4177/). * Changed HOMEPAGE Signed-off-by: Azamat H. Hackimov <azamat.hackimov <AT> gmail.com> Package-Manager: Portage-2.3.51, Repoman-2.3.11 Closes: https://github.com/gentoo/gentoo/pull/10747 Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> ...9999.ebuild => dosbox-0.74_p20160629-r3.ebuild} | 33 ++++++++----------- games-emulation/dosbox/dosbox-9999.ebuild | 4 +-- .../dosbox/files/dosbox-0.74.2_events.patch | 37 ++++++++++++++++++++++ 3 files changed, 53 insertions(+), 21 deletions(-) diff --git a/games-emulation/dosbox/dosbox-9999.ebuild b/games-emulation/dosbox/dosbox-0.74_p20160629-r3.ebuild similarity index 65% copy from games-emulation/dosbox/dosbox-9999.ebuild copy to games-emulation/dosbox/dosbox-0.74_p20160629-r3.ebuild index 421603aa2fd..140ff29f6f0 100644 --- a/games-emulation/dosbox/dosbox-9999.ebuild +++ b/games-emulation/dosbox/dosbox-0.74_p20160629-r3.ebuild @@ -1,46 +1,41 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit autotools desktop flag-o-matic -GLIDE_PATCH=841e1071597b64ead14dd08c25a03206b2d1d1b6 -SRC_URI="glide? ( https://raw.githubusercontent.com/voyageur/openglide/${GLIDE_PATCH}/platform/dosbox/dosbox_glide.diff -> dosbox_glide-${GLIDE_PATCH}.diff )" - -if [[ ${PV} = 9999 ]]; then - ESVN_REPO_URI="https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk" - inherit subversion -else - SRC_URI+=" mirror://sourceforge/dosbox/${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~ppc64 ~x86" -fi +PATCH=3989 +GLIDE_PATCH=3722fc563b737d2d7933df6a771651c2154e6f7b DESCRIPTION="DOS emulator" -HOMEPAGE="http://dosbox.sourceforge.net/" +HOMEPAGE="https://www.dosbox.com/" +SRC_URI="mirror://gentoo/dosbox-code-0-${PATCH}-dosbox-trunk.zip + glide? ( https://raw.githubusercontent.com/voyageur/openglide/${GLIDE_PATCH}/platform/dosbox/dosbox_glide.diff -> dosbox_glide-${GLIDE_PATCH}.diff )" LICENSE="GPL-2" SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc64 ~x86" IUSE="alsa +core-inline debug glide hardened opengl X" -DEPEND="alsa? ( media-libs/alsa-lib ) +RDEPEND="alsa? ( media-libs/alsa-lib ) glide? ( media-libs/openglide ) opengl? ( virtual/glu virtual/opengl ) debug? ( sys-libs/ncurses:0 ) X? ( x11-libs/libX11 ) media-libs/libpng:0= - media-libs/libsdl[joystick,opengl?,video,X] + media-libs/libsdl[joystick,opengl?,video,X?] media-libs/sdl-net media-libs/sdl-sound sys-libs/zlib" -RDEPEND=${DEPEND} +DEPEND="${RDEPEND} + app-arch/unzip" -if [[ ${PV} = 9999 ]]; then - S=${WORKDIR}/${PN} -fi +S=${WORKDIR}/${PN}-code-0-${PATCH}-dosbox-trunk PATCHES=( - "${FILESDIR}"/${PN}-0.74-gcc46.patch + "${FILESDIR}/${PN}-0.74-gcc46.patch" + "${FILESDIR}/${PN}-0.74.2_events.patch" ) src_prepare() { diff --git a/games-emulation/dosbox/dosbox-9999.ebuild b/games-emulation/dosbox/dosbox-9999.ebuild index 421603aa2fd..8c4711e5620 100644 --- a/games-emulation/dosbox/dosbox-9999.ebuild +++ b/games-emulation/dosbox/dosbox-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -17,7 +17,7 @@ else fi DESCRIPTION="DOS emulator" -HOMEPAGE="http://dosbox.sourceforge.net/" +HOMEPAGE="https://www.dosbox.com/" LICENSE="GPL-2" SLOT="0" diff --git a/games-emulation/dosbox/files/dosbox-0.74.2_events.patch b/games-emulation/dosbox/files/dosbox-0.74.2_events.patch new file mode 100644 index 00000000000..fee09a65a4c --- /dev/null +++ b/games-emulation/dosbox/files/dosbox-0.74.2_events.patch @@ -0,0 +1,37 @@ +Index: src/gui/sdlmain.cpp +=================================================================== +--- a/src/gui/sdlmain.cpp (revision 4177) ++++ b/src/gui/sdlmain.cpp (working copy) +@@ -1426,6 +1426,12 @@ + #define DB_POLLSKIP 1 + #endif + ++#if defined(LINUX) ++#define SDL_XORG_FIX 1 ++#else ++#define SDL_XORG_FIX 0 ++#endif ++ + void GFX_Events() { + //Don't poll too often. This can be heavy on the OS, especially Macs. + //In idle mode 3000-4000 polls are done per second without this check. +@@ -1449,6 +1455,19 @@ + } + #endif + while (SDL_PollEvent(&event)) { ++#if SDL_XORG_FIX ++ // Special code for broken SDL with Xorg 1.20.1, where pairs of inputfocus gain and loss events are generated ++ // when locking the mouse in windowed mode. ++ if (event.type == SDL_ACTIVEEVENT && event.active.state == SDL_APPINPUTFOCUS && event.active.gain == 0) { ++ SDL_Event test; //Check if the next event would undo this one. ++ if (SDL_PeepEvents(&test,1,SDL_PEEKEVENT,SDL_ACTIVEEVENTMASK) == 1 && test.active.state == SDL_APPINPUTFOCUS && test.active.gain == 1) { ++ // Skip both events. ++ SDL_PeepEvents(&test,1,SDL_GETEVENT,SDL_ACTIVEEVENTMASK); ++ continue; ++ } ++ } ++#endif ++ + switch (event.type) { + case SDL_ACTIVEEVENT: + if (event.active.state & SDL_APPINPUTFOCUS) {