diff options
Diffstat (limited to 'games-emulation')
33 files changed, 1170 insertions, 633 deletions
diff --git a/games-emulation/RetroArch/Manifest b/games-emulation/RetroArch/Manifest new file mode 100644 index 000000000..c2f97488e --- /dev/null +++ b/games-emulation/RetroArch/Manifest @@ -0,0 +1 @@ +DIST RetroArch-1.16.0.3.tar.gz 49084629 BLAKE2B e04b33585085679262da52ba37a960c1b5076628ffeaadd0beb7bceaf092f7a202677622fec5156ee61afdffbbaae050379d8038ef331475b17a7f0bbb8c50b3 SHA512 a208905257ef5ac38f055195a06167cba5727f470abcba20015ae47bec9af5936fbdc50badb146502d6ccf8de76eaad5846a131974919bb99ea5a0a008624bc1 diff --git a/games-emulation/RetroArch/RetroArch-1.16.0.3.ebuild b/games-emulation/RetroArch/RetroArch-1.16.0.3.ebuild new file mode 100644 index 000000000..987fcfce5 --- /dev/null +++ b/games-emulation/RetroArch/RetroArch-1.16.0.3.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic + +DESCRIPTION="RetroArch is a frontend for emulators, game engines and media players" +HOMEPAGE="https://www.retroarch.com" + +SRC_URI="https://github.com/libretro/RetroArch/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" + +IUSE="7zip alsa cg cpu_flags_arm_neon cpu_flags_arm_vfp cpu_flags_x86_sse2 cheevos debug dispmanx +egl filters ffmpeg gles2 gles3 hid jack kms libass libusb materialui network openal +opengl osmesa oss +ozone +pulseaudio +rgui sdl sdl2 +truetype +threads udev v4l2 videocore vulkan wayland +X xinerama xmb xv zlib" + +REQUIRED_USE=" + || ( alsa jack openal oss pulseaudio ) + || ( opengl sdl sdl2 vulkan dispmanx ) + || ( kms X wayland videocore ) + || ( materialui ozone rgui xmb ) + alsa? ( threads ) + arm? ( gles2? ( egl ) ) + !arm? ( + egl? ( opengl ) + gles2? ( opengl ) + ) + cg? ( opengl ) + dispmanx? ( videocore arm ) + gles2? ( !cg ) + gles3? ( gles2 ) + kms? ( egl ) + libass? ( ffmpeg ) + libusb? ( hid ) + sdl? ( rgui ) + sdl2? ( rgui !sdl ) + videocore? ( arm ) + vulkan? ( amd64 ) + wayland? ( egl ) + xinerama? ( X ) + xv? ( X ) +" + +RDEPEND=" + alsa? ( media-libs/alsa-lib:0= ) + cg? ( media-gfx/nvidia-cg-toolkit:0= ) + arm? ( dispmanx? ( || ( media-libs/raspberrypi-userland:0 media-libs/raspberrypi-userland-bin:0 ) ) ) + ffmpeg? ( >=media-video/ffmpeg-2.1.3:0= ) + jack? ( virtual/jack:= ) + libass? ( media-libs/libass:0= ) + libusb? ( virtual/libusb:1= ) + openal? ( media-libs/openal:0= ) + opengl? ( media-libs/mesa:0=[gles2?] ) + osmesa? ( media-libs/mesa:0=[osmesa?] ) + pulseaudio? ( media-libs/libpulse:0= ) + sdl? ( >=media-libs/libsdl-1.2.10:0=[joystick] ) + sdl2? ( media-libs/libsdl2:0=[joystick] ) + truetype? ( media-libs/freetype:2= ) + udev? ( virtual/udev:0= + X? ( x11-drivers/xf86-input-evdev:0= ) + ) + amd64? ( vulkan? ( media-libs/vulkan-loader:0= ) ) + v4l2? ( media-libs/libv4l:0= ) + wayland? ( media-libs/mesa:0=[wayland?] ) + X? ( + x11-base/xorg-server:0= + >=x11-libs/libxkbcommon-0.4.0:0= + ) + xinerama? ( x11-libs/libXinerama:0= ) + xv? ( x11-libs/libXv:0= ) + zlib? ( sys-libs/zlib:0= ) +" + +DEPEND="${RDEPEND} + virtual/pkgconfig +" + +src_configure() { + if use cg; then + append-ldflags -L"${EPREFIX}/"opt/nvidia-cg-toolkit/$(get_libdir) + append-cflags -I"${EPREFIX}/"opt/nvidia-cg-toolkit/include + fi + + # Absolute path of the directory containing Retroarch shared libraries. + export RETROARCH_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/retroarch" + + if use filters; then + # Replace stock defaults with Gentoo-specific defaults. + sed -i retroarch.cfg \ + -e 's:# \(video_filter_dir =\):\1 "/'${RETROARCH_LIB_DIR}'/filters/video/":' \ + -e 's:# \(audio_filter_dir =\):\1 "/'${RETROARCH_LIB_DIR}'/filters/audio/":' \ + || die '"sed" failed.' + fi + + # Note that OpenVG support is hard-disabled. (See ${RDEPEND} above.) + ./configure \ + --prefix="${EPREFIX}/usr" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}" \ + --enable-dynamic \ + --disable-vg \ + $(use_enable 7zip) \ + $(use_enable alsa) \ + $(use_enable cheevos) \ + $(use_enable cg) \ + $(use_enable cpu_flags_arm_neon neon) \ + $(use_enable cpu_flags_arm_vfp floathard) \ + $(use_enable cpu_flags_x86_sse2 sse) \ + $(use_enable dispmanx) \ + $(use_enable egl) \ + $(use_enable ffmpeg) \ + $(use_enable gles2 opengles) \ + $(use_enable gles3 opengles3) \ + $(use_enable hid) \ + $(use_enable jack) \ + $(use_enable kms) \ + $(use_enable libass ssa) \ + $(use_enable libusb) \ + $(use_enable materialui) \ + $(use_enable network networking) \ + $(use_enable openal al) \ + $(use_enable opengl) \ + $(use_enable osmesa) \ + $(use_enable oss) \ + $(use_enable ozone) \ + $(use_enable pulseaudio pulse) \ + $(use_enable rgui) \ + $(use_enable sdl) \ + $(use_enable sdl2) \ + $(use_enable threads) \ + $(use_enable truetype freetype) \ + $(use_enable udev) \ + $(use_enable v4l2) \ + $(use_enable videocore) \ + $(use_enable vulkan) \ + $(use_enable wayland) \ + $(use_enable X x11) \ + $(use_enable xinerama) \ + $(use_enable xmb) \ + $(use_enable xv xvideo) \ + $(use_enable zlib) +} + +src_compile() { + emake $(usex debug "DEBUG=1" "") + if use filters; then + emake $(usex debug "build=debug" "build=release") -C gfx/video_filters/ + emake $(usex debug "build=debug" "build=release") -C libretro-common/audio/dsp_filters/ + fi +} + +src_install() { + # Install core files and directories. + emake DESTDIR="${D}" install + + # Install documentation. + dodoc README.md + + if use filters; then + # Install video filters. + insinto ${RETROARCH_LIB_DIR}/filters/video/ + doins "${S}"/gfx/video_filters/*.so + doins "${S}"/gfx/video_filters/*.filt + + # Install audio filters. + insinto ${RETROARCH_LIB_DIR}/filters/audio/ + doins "${S}"/libretro-common/audio/dsp_filters/*.dsp + fi +} + +pkg_postinst() { + if use oss; then + ewarn "" + ewarn "OSS support is enabled, however it is not installed as a dependency." + ewarn "Make sure you have OSS installed in your system." + ewarn "" + fi +} diff --git a/games-emulation/RetroArch/metadata.xml b/games-emulation/RetroArch/metadata.xml new file mode 100644 index 000000000..b1549cca8 --- /dev/null +++ b/games-emulation/RetroArch/metadata.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Rafael Rondão</name> + <email>rafael.rondao@gmail.com</email> + </maintainer> + <use> + <flag name="7zip">Compile in 7z support</flag> + <flag name="alsa">ALSA support</flag> + <flag name="cg">Cg shader support</flag> + <flag name="cheevos">Retro Achievements</flag> + <flag name="debug">Enable a debug build</flag> + <flag name="dispmanx">Dispmanx video support</flag> + <flag name="egl">EGL context support</flag> + <flag name="filters">Install audio/video filters</flag> + <flag name="ffmpeg">FFmpeg support</flag> + <flag name="gles2">Use GLESv2 instead of desktop GL</flag> + <flag name="gles3">OpenGLES3 support</flag> + <flag name="hid">Low-level HID (Human Interface Device) support</flag> + <flag name="jack">JACK support</flag> + <flag name="kms">KMS context support</flag> + <flag name="libass">SSA/ASS for FFmpeg subtitle support</flag> + <flag name="libusb">Libusb HID support</flag> + <flag name="materialui">MaterialUI menu</flag> + <flag name="network">Networking features (recommended)</flag> + <flag name="openal">OpenAL support</flag> + <flag name="opengl">OpenGL 2.0 support</flag> + <flag name="osmesa">Off-screen Mesa rendering</flag> + <flag name="oss">OSS support</flag> + <flag name="ozone">Ozone menu</flag> + <flag name="pulseaudio">PulseAudio support</flag> + <flag name="rgui">RGUI menu</flag> + <flag name="sdl">SDL support</flag> + <flag name="sdl2">SDL2 support (disables SDL 1.x)</flag> + <flag name="truetype">FreeType support</flag> + <flag name="threads">Threading support</flag> + <flag name="udev">Udev/Evdev gamepad support</flag> + <flag name="v4l2">Video4linux2 support</flag> + <flag name="videocore">Broadcom Videocore 4 support</flag> + <flag name="vulkan">Vulkan support</flag> + <flag name="wayland">Wayland support</flag> + <flag name="X">Everything X11</flag> + <flag name="xinerama">Xinerama support</flag> + <flag name="xmb">XMB menu</flag> + <flag name="xv">XVideo support</flag> + <flag name="zlib">zlib support (ZIP extract, PNG decoding/encoding)</flag> + </use> + <upstream> + <remote-id type="github">libretro/RetroArch</remote-id> + </upstream> +</pkgmetadata> diff --git a/games-emulation/citra/citra-9999.ebuild b/games-emulation/citra/citra-9999.ebuild deleted file mode 100644 index aa5eff558..000000000 --- a/games-emulation/citra/citra-9999.ebuild +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright 2020-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake git-r3 xdg - -DESCRIPTION="A Nintendo 3DS Emulator" -HOMEPAGE="https://citra-emu.org" -EGIT_REPO_URI="https://github.com/citra-emu/citra" -EGIT_SUBMODULES=( "*" "-boost" "-catch" "-cryptopp" "-enet" "-inih" "-libressl" "-externals/dynarmic/externals/xbyak" "-zstd" ) - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="" -IUSE="cubeb +hle-sound nls +qt5 sdl system-libfmt +telemetry video" - -DEPEND=" - !hle-sound? ( media-libs/fdk-aac ) - hle-sound? ( media-video/ffmpeg[fdk] ) - qt5? ( nls? ( dev-qt/linguist ) - dev-qt/qtgui - dev-qt/qtmultimedia - dev-qt/qtnetwork - dev-qt/qtopengl - dev-qt/qtwidgets ) - sdl? ( - media-libs/libsdl2 - >=dev-libs/inih-52 - ) - system-libfmt? ( <=dev-libs/libfmt-8 ) - video? ( media-video/ffmpeg ) - >=app-arch/zstd-1.4.8 - >=dev-libs/openssl-1.1 - dev-cpp/catch:0 - dev-libs/boost:= - dev-libs/crypto++ - net-libs/enet:1.3 -" -RDEPEND="${DEPEND}" -REQUIRED_USE="|| ( qt5 sdl )" - -src_unpack() { - if use system-libfmt; then - EGIT_SUBMODULES+=( "-fmt" "-externals/dynarmic/externals/fmt" ) - fi - git-r3_src_unpack - - cp -a "${S}"/externals/xbyak "${S}"/externals/dynarmic/externals/ || die - - # Do not fetch via sources because this file always changes - curl https://api.citra-emu.org/gamedb/ > "${S}"/compatibility_list.json -} - -src_prepare() { - # Do not care about submodules wanted one are already fetched - sed -i -e '/check_submodules_present()/d' CMakeLists.txt || die - - # Unbundle inih - sed -i -e '/inih/d' externals/CMakeLists.txt || die - sed -i -e '1ifind_package(PkgConfig REQUIRED)\npkg_check_modules(INIH REQUIRED INIReader)' \ - -e '/target_link_libraries/s/inih/${INIH_LIBRARIES}/' src/citra/CMakeLists.txt || die - sed -i -e 's:inih/cpp/::' src/citra/config.cpp || die - - # Fix boost unbundling - sed -i -e '/(-DBOOST_ERROR_CODE_HEADER_ONLY/,/)/d' CMakeLists.txt || die - sed -i -e '/[Bb][Oo][Oo][Ss][Tt]/d' externals/CMakeLists.txt || die - - # Unbundle libressl (TODO rework scopes, find_package(OpenSSL is called 5 times) - sed -i -e '$afind_package(OpenSSL 1.1)\nset(OPENSSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto PARENT_SCOPE)' \ - CMakeLists.txt || die - sed -i -e 's/# LibreSSL/find_package(OpenSSL 1.1)\nif (NOT OPENSSL_FOUND)\n/' \ - -e 's/-DHAVE_INET_NTOP)$/&\nendif()\n/' externals/CMakeLists.txt || die - sed -i -e '/get_directory_property(OPENSSL_LIBS/,/)/d' \ - -e 's/OPENSSL_LIBS/OPENSSL_LIBRARIES/' \ - src/web_service/CMakeLists.txt \ - src/core/CMakeLists.txt || die - sed -i -e 's/{PLATFORM_LIBRARIES}/& OpenSSL::SSL OpenSSL::Crypto/' \ - src/{citra,citra_qt,dedicated_room,tests}/CMakeLists.txt || die - sed -i -e '1ifind_package(OpenSSL 1.1)' src/{citra,citra_qt,dedicated_room,tests}/CMakeLists.txt || die - - if use system-libfmt; then # Unbundle libfmt - sed -i -e '/fmt/d' externals/CMakeLists.txt || die - sed -i -e 's/fmt/&::&/' -e '1ifind_package(fmt)' \ - src/{core,citra,citra_qt,dedicated_room,input_common,tests,video_core}/CMakeLists.txt - sed -i -e '1ifind_package(fmt)' externals/dynarmic/src/CMakeLists.txt || die - fi - - # Unbundle zstd - sed -i -e 's:libzstd_static:${ZSTD_LIBRARIES}:' \ - -e '1ifind_package(PkgConfig REQUIRED)\npkg_check_modules(ZSTD REQUIRED libzstd)' \ - src/common/CMakeLists.txt || die - sed -i -e '/zstd/d' externals/CMakeLists.txt || die - - # Unbundle enet - sed -i -e 's:enet:${ENET_LIBRARIES}:' \ - -e '1ifind_package(PkgConfig REQUIRED)\npkg_check_modules(ENET REQUIRED libenet)' \ - src/network/CMakeLists.txt || die - sed -i -e '/#include.*enet/{s/"/</;s/"/>/}' src/network/*cpp || die - sed -i -e '/enet/d' externals/CMakeLists.txt || die - - # Unbundle crypto++ - sed -i -e 's:cryptopp:${CRYPTOPP_LIBRARIES}:' \ - -e '1ifind_package(PkgConfig REQUIRED)\npkg_check_modules(CRYPTOPP REQUIRED libcryptopp)' \ - src/dedicated_room/CMakeLists.txt \ - src/core/CMakeLists.txt || die - sed -i -e '/cryptopp/d' externals/CMakeLists.txt || die - - # TODO unbundle catch - sed -i -e '1ifind_package(Catch2)' src/tests/CMakeLists.txt externals/{dynarmic,teakra}/tests/CMakeLists.txt || die - sed -i -e '/target_link_libraries/s/catch/Catch2::Catch2/' externals/{dynarmic,teakra}/tests/CMakeLists.txt || die - sed -i -e '/target_link_libraries/s/catch-single-include/Catch2::Catch2/' src/tests/CMakeLists.txt || die - sed -i -e '/catch/d' externals/CMakeLists.txt externals/{dynarmic,teakra}/externals/CMakeLists.txt || die - grep -rl 'include <catch.hpp>' externals/{dynarmic,teakra} | xargs sed -i -e '/include/s:catch.hpp:catch/&:' || die - - # TODO unbundle xbyak (wait for 5.96 in ytree) - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DBUILD_SHARED_LIBS=OFF - -DENABLE_CUBEB=$(usex cubeb) - -DENABLE_FFMPEG_AUDIO_DECODER=$(usex hle-sound) - -DENABLE_FFMPEG_VIDEO_DUMPER=$(usex hle-sound) - -DENABLE_QT=$(usex qt5) - -DENABLE_QT_TRANSLATION=$(use qt5 && usex nls || echo OFF) - -DENABLE_SDL2=$(usex sdl) - -DENABLE_WEB_SERVICE=$(usex telemetry) - -DGENERATE_QT_TRANSLATION=$(use qt5 && usex nls || echo OFF) - -DUSE_SYSTEM_BOOST=ON - ) - cmake_src_configure - - # This would be better in src_unpack but it would be unlinked - mv "${S}"/compatibility_list.json "${BUILD_DIR}"/dist/compatibility_list/ || die -} diff --git a/games-emulation/citra/metadata.xml b/games-emulation/citra/metadata.xml deleted file mode 100644 index 87cb3dfdc..000000000 --- a/games-emulation/citra/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<maintainer type="person"> - <name>Samuel Bauer</name> - <email>samuel.bauer@yahoo.fr</email> -</maintainer> -<use> - <flag name="cubeb">Enables the cubeb audio backend</flag> - <flag name="hle-sound">Enable HLE sound via FFmpeg audio (AAC) decoder</flag> - <flag name="system-libfmt">Use system libfmt</flag> - <flag name="telemetry">Enable web services (telemetry, etc.)</flag> - <flag name="video">Enable FFmpeg video dumper</flag> -</use> -</pkgmetadata> diff --git a/games-emulation/conty/Manifest b/games-emulation/conty/Manifest new file mode 100644 index 000000000..79f7a26fe --- /dev/null +++ b/games-emulation/conty/Manifest @@ -0,0 +1,2 @@ +DIST conty-1.25.1 1406491989 BLAKE2B 5106200f9b9e565044b8c525fb53349235ba78207e00b69dfdd0071439fef1eac55f204c89a9f0949b416c5d07d7e22f589062de57ba34b5a106cd0723b345e6 SHA512 3f74ac40583e362ee7bc05684aa7d2f77f7d2b908f98d179539a714cd9a83cc58948c12352fd948df9b446bb9119c078c6ffae874a9bdbf726167fb1e45ed8ee +DIST conty-1.25.2 1400806116 BLAKE2B 2cb6fffe4603a5f147cbdf802277b0c0ea73924151397463484aa3e715dc3c42ce25961811b51a898af5ed8a3289d7e4e3b32a9b4c864c47852880f6c9e511e4 SHA512 1cdc34f689b04d44504b57fa93665e9a27546f16ebc1541889212b0612d76ecac654384be5ffe694c59336bd2bdcd9498bf591957f5f721c4de2e238f049485a diff --git a/games-emulation/conty/conty-1.25.1.ebuild b/games-emulation/conty/conty-1.25.1.ebuild new file mode 100644 index 000000000..00680ba83 --- /dev/null +++ b/games-emulation/conty/conty-1.25.1.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2024 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Easy to use unprivileged Linux container packed in a single portable executable" +HOMEPAGE="https://github.com/Kron4ek/Conty" + +inherit linux-info + +NAME="${PN}_lite_dwarfs.sh" + +SRC_URI="https://github.com/Kron4ek/Conty/releases/download/${PV}/${NAME} -> $P" +KEYWORDS="~amd64" + +LICENSE="MIT" +SLOT="0" +RESTRICT="strip" + +RDEPEND="sys-fs/fuse:0" + +S="${WORKDIR}" + +QA_PREBUILT="*" + +CONFIG_CHECK=" + IA32_EMULATION + USER_NS +" + +src_install() { + dobin "${DISTDIR}/${P}" +} + +pkg_postinst() { + einfo "How to use: $ ${NAME} [command] [command_arguments]" + einfo "For example: ${NAME} steam" + einfo "or" + einfo "WINEPREFIX=$HOME/wine-conty ${NAME} gamescope -f -- wine ./game.exe" + +} diff --git a/games-emulation/conty/conty-1.25.2.ebuild b/games-emulation/conty/conty-1.25.2.ebuild new file mode 100644 index 000000000..00680ba83 --- /dev/null +++ b/games-emulation/conty/conty-1.25.2.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2024 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Easy to use unprivileged Linux container packed in a single portable executable" +HOMEPAGE="https://github.com/Kron4ek/Conty" + +inherit linux-info + +NAME="${PN}_lite_dwarfs.sh" + +SRC_URI="https://github.com/Kron4ek/Conty/releases/download/${PV}/${NAME} -> $P" +KEYWORDS="~amd64" + +LICENSE="MIT" +SLOT="0" +RESTRICT="strip" + +RDEPEND="sys-fs/fuse:0" + +S="${WORKDIR}" + +QA_PREBUILT="*" + +CONFIG_CHECK=" + IA32_EMULATION + USER_NS +" + +src_install() { + dobin "${DISTDIR}/${P}" +} + +pkg_postinst() { + einfo "How to use: $ ${NAME} [command] [command_arguments]" + einfo "For example: ${NAME} steam" + einfo "or" + einfo "WINEPREFIX=$HOME/wine-conty ${NAME} gamescope -f -- wine ./game.exe" + +} diff --git a/games-emulation/conty/metadata.xml b/games-emulation/conty/metadata.xml new file mode 100644 index 000000000..c1ffd9150 --- /dev/null +++ b/games-emulation/conty/metadata.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <name>Vitaly Zdanevich</name> + <email>zdanevich.vitaly@ya.ru</email> + </maintainer> + <longdescription> +This is an easy to use compressed unprivileged Linux container packed into a single executable. It is designed to be as simple and user-friendly as possible. You can use it to run any applications, including games (Vulkan and OpenGL). + +Includes, among others, these apps: Wine-GE, Steam, Lutris, PlayOnLinux, GameHub, Minigalaxy, Legendary, Bottles, MultiMC, MangoHud, Gamescope, RetroArch, Sunshine. + +Based on Arch Linux. + +All applications that you run with Conty read and store their configs in your HOME directory as if you weren't using the container at all. + +No performance overhead. Since it's just a container, there is virtually no performance overhead, all applications will run at full speed. Regarding memory usage, Conty uses a bit more memory due to compression and because applications from the container can't share libraries with your system apps. + +Supports Xorg, Wayland and XWayland. + +Supports Chaotic-AUR and ALHP repositories. AUR is also supported. + </longdescription> + <upstream> + <remote-id type="github">Kron4ek/Conty</remote-id> + <bugs-to>https://github.com/Kron4ek/Conty/issues</bugs-to> + </upstream> +</pkgmetadata> diff --git a/games-emulation/dosbox-x/Manifest b/games-emulation/dosbox-x/Manifest new file mode 100644 index 000000000..c57446ce7 --- /dev/null +++ b/games-emulation/dosbox-x/Manifest @@ -0,0 +1 @@ +DIST dosbox-x-v2024.03.01.tar.gz 119593920 BLAKE2B 42c994247e55c1b2d67ed9e1bf90e99ddf9a08476b18ab802757becc0ee6959231d3665e39cfaef02a6b1c234e3faff10597d396d8d30ce01d8123b5107327bc SHA512 0eb835da3fdfd7f1c6160aa1a32a7eff7c38f46184f7cee088e0fb8edf09327f058fd45e7995955a7f335c704ddd69c1627731899a01687563990bb06f4d9cd1 diff --git a/games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild b/games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild new file mode 100644 index 000000000..3a9d16acc --- /dev/null +++ b/games-emulation/dosbox-x/dosbox-x-2024.03.01.ebuild @@ -0,0 +1,215 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools toolchain-funcs xdg + +if [[ "${PV}" == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/joncampbell123/dosbox-x.git" +else + SRC_URI="https://github.com/joncampbell123/dosbox-x/archive/dosbox-x-v${PV}.tar.gz" + S="${WORKDIR}/${PN}-${PN}-v${PV}" + KEYWORDS="~amd64" +fi + +DESCRIPTION="Complete, accurate DOS emulator forked from DOSBox" +HOMEPAGE="https://dosbox-x.com/" + +# Stay consistent with games-emulation/dosbox::gentoo even though source file +# headers specify the GPL version to be "either version 2 of the License, or +# (at your option) any later version." The same header is used in both the +# DOSBox source tree and the DOSBox-X source tree. +LICENSE="GPL-2" +SLOT="0" + +IUSE="X debug ffmpeg fluidsynth opengl png slirp truetype" +# Unit tests are only available in debug builds +RESTRICT="!debug? ( test )" + +BDEPEND=" + dev-lang/nasm + sys-libs/libcap +" + +# Unconditionally pulling in automagically-enabled optional dependencies: +# - media-libs/alsa-lib +# - media-libs/sdl2-net +# - net-libs/libpcap +# +# With media-libs/libsdl2[-X,wayland], this package does work on a Wayland +# desktop, but (at least on GNOME) the program does not launch in a movable +# and resizable window; whereas with media-libs/libsdl2[X], it does. Thus, +# unconditionally require media-libs/libsdl2[X] for better user experience. +# +# DOSBox-X works with multiple audio backends of SDL 2 but requires at least +# one available backend (https://bugs.gentoo.org/901303). Unconditionally +# depending on media-libs/libsdl2[alsa] to satisfy this requirement since +# this ebuild already unconditionally pulls in media-libs/alsa-lib. +COMMON_DEPEND=" + media-libs/alsa-lib + media-libs/libsdl2[X,alsa,opengl?,sound,threads,video] + media-libs/sdl2-net + net-libs/libpcap + sys-libs/zlib + X? ( + x11-libs/libX11 + x11-libs/libXrandr + x11-libs/libxkbfile + ) + debug? ( sys-libs/ncurses:= ) + ffmpeg? ( media-video/ffmpeg:= ) + fluidsynth? ( media-sound/fluidsynth:= ) + opengl? ( media-libs/libglvnd[X] ) + png? ( media-libs/libpng:= ) + slirp? ( net-libs/libslirp ) + truetype? ( media-libs/freetype ) +" + +DEPEND=" + ${COMMON_DEPEND} +" + +# DOSBox-X can still run normally without any of these dependencies -- +# it just cannot show a file dialog. However, upon the initial launch, +# DOSBox-X will try to show a file dialog to let the user choose the +# working directory; without one of these dependencies, the user would +# see nothing when they launch DOSBox-X for the first time. +FILE_DIALOG_DEPEND=" + || ( + gnome-extra/zenity + kde-apps/kdialog + x11-misc/xdialog + ) +" + +RDEPEND=" + ${COMMON_DEPEND} + ${FILE_DIALOG_DEPEND} +" + +pkg_pretend() { + if use ffmpeg && use !png; then + ewarn "Setting the 'ffmpeg' USE flag when the 'png' USE flag is" + ewarn "unset does not have any effect. Unsetting the 'png' USE" + ewarn "flag disables the video capture feature, so additional" + ewarn "video capture formats enabled by the 'ffmpeg' USE flag" + ewarn "will end up being unused." + fi +} + +src_prepare() { + default + + # https://bugs.gentoo.org/887669 + # Mask lines touching '-O*', and avoid creating an empty command + # list as a result to not break 'if', 'for', or functions + sed -i -E -e 's/((C|CXX)FLAGS=.*-O)/: \1/' configure.ac || + die "Failed to stop configure.ac from touching '-O*' compiler flags" + + eautoreconf +} + +src_configure() { + local myconf=( + # Always use SDL 2, even though the package provides the option to + # build with SDL 1.x, because this package is expected to be built + # with the bundled, heavily-modified version of SDL 1.x if that + # branch is used. Compiler errors are likely to occur if the + # bundled version of SDL 1.x is not used. Bundled dependencies + # should be avoided on Gentoo, so SDL 2 is more preferable. + --enable-sdl2 + + # Explicitly enable ALSA MIDI support, same as default. As of + # v2022.08.0, even when it is disabled, media-libs/alsa-lib will + # still be automagically linked if it is present in the build + # environment (presumably for other components of this package), + # so the dependency cannot be made optional by disabling this + # option. Plus, disabling this option has no observable effect + # on build time, build size, or the program's functionality, as + # 'mididevice=alsa' still works with '--disable-alsa-midi'. + --enable-alsa-midi + + $(use_enable debug '' heavy) + + $(use_enable X x11) + $(use_enable ffmpeg avcodec) + $(use_enable fluidsynth libfluidsynth) + $(use_enable opengl) + $(use_enable png screenshots) + $(use_enable slirp libslirp) + $(use_enable truetype freetype) + ) + + econf "${myconf[@]}" +} + +src_compile() { + # https://bugs.gentoo.org/856352 + emake AR="$(tc-getAR)" +} + +src_test() { + set -- src/dosbox-x -tests + echo "${@}" >&2 + "${@}" || die "Unit tests failed" +} + +pkg_preinst() { + xdg_pkg_preinst + + # Returns whether or not the USE flag specified with the first positional + # argument is newly enabled for this installation of the package. + newuse() { + local flag="${1}" + + # The 'has_version' call tests if any USE flags are newly enabled. + # It is to extract information about any existing copy of this + # package installed on the system, which is why it should be made + # before the new copy of this package just built is merged. + use "${flag}" && ! has_version "${CATEGORY}/${PN}[${flag}]" + } + + newuse debug && PRINT_NOTES_FOR_DEBUGGER=1 + newuse fluidsynth && PRINT_NOTES_FOR_FLUIDSYNTH=1 +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ "${PRINT_NOTES_FOR_DEBUGGER}" ]]; then + elog + elog "Note on the Debugger" + elog + elog "The debugger can only be started when DOSBox-X is launched" + elog "from a terminal. Otherwise, the \"Start DOSBox-X Debugger\"" + elog "option in the \"Debug\" drop-down menu would be unavailable." + elog + elog "For more information about the debugger, please consult:" + elog " ${EPREFIX}/usr/share/doc/${PF}/README.debugger*" + fi + + if [[ "${PRINT_NOTES_FOR_FLUIDSYNTH}" ]]; then + elog + elog "Note on FluidSynth" + elog + elog "To use FluidSynth as the MIDI device for DOSBox-X, a soundfont" + elog "is required. If no existing soundfont is available, a new one" + elog "can be installed and configured for DOSBox-X very easily:" + elog + elog "1. Install the following package:" + elog " media-sound/fluid-soundfont" + elog "2. Add the following lines to DOSBox-X's configuration file:" + elog " [midi]" + elog " mididevice=fluidsynth" + elog + elog "Usually, there is no need to explicitly specify the soundfont" + elog "file's path because the package mentioned in step 1 installs" + elog "soundfont files to a standard location, allowing them to be" + elog "detected and selected automatically." + elog + elog "For advanced FluidSynth configuration, please consult:" + elog " https://dosbox-x.com/wiki/Guide%3ASetting-up-MIDI-in-DOSBox%E2%80%90X#_fluidsynth" + fi +} diff --git a/games-emulation/dosbox-x/dosbox-x-9999.ebuild b/games-emulation/dosbox-x/dosbox-x-9999.ebuild new file mode 100644 index 000000000..3a9d16acc --- /dev/null +++ b/games-emulation/dosbox-x/dosbox-x-9999.ebuild @@ -0,0 +1,215 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools toolchain-funcs xdg + +if [[ "${PV}" == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/joncampbell123/dosbox-x.git" +else + SRC_URI="https://github.com/joncampbell123/dosbox-x/archive/dosbox-x-v${PV}.tar.gz" + S="${WORKDIR}/${PN}-${PN}-v${PV}" + KEYWORDS="~amd64" +fi + +DESCRIPTION="Complete, accurate DOS emulator forked from DOSBox" +HOMEPAGE="https://dosbox-x.com/" + +# Stay consistent with games-emulation/dosbox::gentoo even though source file +# headers specify the GPL version to be "either version 2 of the License, or +# (at your option) any later version." The same header is used in both the +# DOSBox source tree and the DOSBox-X source tree. +LICENSE="GPL-2" +SLOT="0" + +IUSE="X debug ffmpeg fluidsynth opengl png slirp truetype" +# Unit tests are only available in debug builds +RESTRICT="!debug? ( test )" + +BDEPEND=" + dev-lang/nasm + sys-libs/libcap +" + +# Unconditionally pulling in automagically-enabled optional dependencies: +# - media-libs/alsa-lib +# - media-libs/sdl2-net +# - net-libs/libpcap +# +# With media-libs/libsdl2[-X,wayland], this package does work on a Wayland +# desktop, but (at least on GNOME) the program does not launch in a movable +# and resizable window; whereas with media-libs/libsdl2[X], it does. Thus, +# unconditionally require media-libs/libsdl2[X] for better user experience. +# +# DOSBox-X works with multiple audio backends of SDL 2 but requires at least +# one available backend (https://bugs.gentoo.org/901303). Unconditionally +# depending on media-libs/libsdl2[alsa] to satisfy this requirement since +# this ebuild already unconditionally pulls in media-libs/alsa-lib. +COMMON_DEPEND=" + media-libs/alsa-lib + media-libs/libsdl2[X,alsa,opengl?,sound,threads,video] + media-libs/sdl2-net + net-libs/libpcap + sys-libs/zlib + X? ( + x11-libs/libX11 + x11-libs/libXrandr + x11-libs/libxkbfile + ) + debug? ( sys-libs/ncurses:= ) + ffmpeg? ( media-video/ffmpeg:= ) + fluidsynth? ( media-sound/fluidsynth:= ) + opengl? ( media-libs/libglvnd[X] ) + png? ( media-libs/libpng:= ) + slirp? ( net-libs/libslirp ) + truetype? ( media-libs/freetype ) +" + +DEPEND=" + ${COMMON_DEPEND} +" + +# DOSBox-X can still run normally without any of these dependencies -- +# it just cannot show a file dialog. However, upon the initial launch, +# DOSBox-X will try to show a file dialog to let the user choose the +# working directory; without one of these dependencies, the user would +# see nothing when they launch DOSBox-X for the first time. +FILE_DIALOG_DEPEND=" + || ( + gnome-extra/zenity + kde-apps/kdialog + x11-misc/xdialog + ) +" + +RDEPEND=" + ${COMMON_DEPEND} + ${FILE_DIALOG_DEPEND} +" + +pkg_pretend() { + if use ffmpeg && use !png; then + ewarn "Setting the 'ffmpeg' USE flag when the 'png' USE flag is" + ewarn "unset does not have any effect. Unsetting the 'png' USE" + ewarn "flag disables the video capture feature, so additional" + ewarn "video capture formats enabled by the 'ffmpeg' USE flag" + ewarn "will end up being unused." + fi +} + +src_prepare() { + default + + # https://bugs.gentoo.org/887669 + # Mask lines touching '-O*', and avoid creating an empty command + # list as a result to not break 'if', 'for', or functions + sed -i -E -e 's/((C|CXX)FLAGS=.*-O)/: \1/' configure.ac || + die "Failed to stop configure.ac from touching '-O*' compiler flags" + + eautoreconf +} + +src_configure() { + local myconf=( + # Always use SDL 2, even though the package provides the option to + # build with SDL 1.x, because this package is expected to be built + # with the bundled, heavily-modified version of SDL 1.x if that + # branch is used. Compiler errors are likely to occur if the + # bundled version of SDL 1.x is not used. Bundled dependencies + # should be avoided on Gentoo, so SDL 2 is more preferable. + --enable-sdl2 + + # Explicitly enable ALSA MIDI support, same as default. As of + # v2022.08.0, even when it is disabled, media-libs/alsa-lib will + # still be automagically linked if it is present in the build + # environment (presumably for other components of this package), + # so the dependency cannot be made optional by disabling this + # option. Plus, disabling this option has no observable effect + # on build time, build size, or the program's functionality, as + # 'mididevice=alsa' still works with '--disable-alsa-midi'. + --enable-alsa-midi + + $(use_enable debug '' heavy) + + $(use_enable X x11) + $(use_enable ffmpeg avcodec) + $(use_enable fluidsynth libfluidsynth) + $(use_enable opengl) + $(use_enable png screenshots) + $(use_enable slirp libslirp) + $(use_enable truetype freetype) + ) + + econf "${myconf[@]}" +} + +src_compile() { + # https://bugs.gentoo.org/856352 + emake AR="$(tc-getAR)" +} + +src_test() { + set -- src/dosbox-x -tests + echo "${@}" >&2 + "${@}" || die "Unit tests failed" +} + +pkg_preinst() { + xdg_pkg_preinst + + # Returns whether or not the USE flag specified with the first positional + # argument is newly enabled for this installation of the package. + newuse() { + local flag="${1}" + + # The 'has_version' call tests if any USE flags are newly enabled. + # It is to extract information about any existing copy of this + # package installed on the system, which is why it should be made + # before the new copy of this package just built is merged. + use "${flag}" && ! has_version "${CATEGORY}/${PN}[${flag}]" + } + + newuse debug && PRINT_NOTES_FOR_DEBUGGER=1 + newuse fluidsynth && PRINT_NOTES_FOR_FLUIDSYNTH=1 +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ "${PRINT_NOTES_FOR_DEBUGGER}" ]]; then + elog + elog "Note on the Debugger" + elog + elog "The debugger can only be started when DOSBox-X is launched" + elog "from a terminal. Otherwise, the \"Start DOSBox-X Debugger\"" + elog "option in the \"Debug\" drop-down menu would be unavailable." + elog + elog "For more information about the debugger, please consult:" + elog " ${EPREFIX}/usr/share/doc/${PF}/README.debugger*" + fi + + if [[ "${PRINT_NOTES_FOR_FLUIDSYNTH}" ]]; then + elog + elog "Note on FluidSynth" + elog + elog "To use FluidSynth as the MIDI device for DOSBox-X, a soundfont" + elog "is required. If no existing soundfont is available, a new one" + elog "can be installed and configured for DOSBox-X very easily:" + elog + elog "1. Install the following package:" + elog " media-sound/fluid-soundfont" + elog "2. Add the following lines to DOSBox-X's configuration file:" + elog " [midi]" + elog " mididevice=fluidsynth" + elog + elog "Usually, there is no need to explicitly specify the soundfont" + elog "file's path because the package mentioned in step 1 installs" + elog "soundfont files to a standard location, allowing them to be" + elog "detected and selected automatically." + elog + elog "For advanced FluidSynth configuration, please consult:" + elog " https://dosbox-x.com/wiki/Guide%3ASetting-up-MIDI-in-DOSBox%E2%80%90X#_fluidsynth" + fi +} diff --git a/games-emulation/dosbox-x/metadata.xml b/games-emulation/dosbox-x/metadata.xml new file mode 100644 index 000000000..c13d207ae --- /dev/null +++ b/games-emulation/dosbox-x/metadata.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>liaoyuan@gmail.com</email> + <name>Yuan Liao</name> + </maintainer> + <longdescription> + DOSBox-X is a fork of DOSBox. The main focus of DOSBox is just on + running DOS games, whereas DOSBox-X goes further than this: while it + "retains compatibility with the wide base of DOS games and DOS gaming + DOSBox was designed for", it is built to also run DOS applications, + Windows 3.x, Windows 9x series, and software written for those versions + of Windows. In particular, Windows 98 runs with superb stability on + DOSBox-X, which DOSBox cannot achieve yet. + + DOSBox-X also ships more user-friendly features than DOSBox, including + a drop-down menu system for easier alteration to emulation parameters + and access to the emulator's functions, a graphical configuration tool + for modifying the configuration file, saving and loading the emulator's + state, creation of new disk image files, support for directly mounting + hard disk images with partitions formatted with the FAT32 file system, + and many more. + </longdescription> + <upstream> + <doc>https://dosbox-x.com/wiki/</doc> + <remote-id type="github">joncampbell123/dosbox-x</remote-id> + </upstream> + <use> + <flag name="X"> + Enable X11 integration for better fullscreening functionality + </flag> + <flag name="debug"> + Enable the internal debugger of this program + </flag> + <flag name="ffmpeg"> + Enable MPEG.TS + H.264 video capture format support + via <pkg>media-video/ffmpeg</pkg> + </flag> + <flag name="fluidsynth"> + Enable FluidSynth to be used as the MIDI synthesizer + </flag> + <flag name="opengl"> + Enable OpenGL as a video system to use for output + </flag> + <flag name="png"> + Enable screenshot and video capture support + via <pkg>media-libs/libpng</pkg> + </flag> + <flag name="slirp"> + Enable the SLIRP back-end for network adapter emulation + </flag> + <flag name="truetype"> + Enable TrueType font (TTF) output and printing support + via <pkg>media-libs/freetype</pkg> + </flag> + </use> +</pkgmetadata> diff --git a/games-emulation/duckstation/duckstation-9999.ebuild b/games-emulation/duckstation/duckstation-9999.ebuild index 7114463e3..8e8cd4d1d 100644 --- a/games-emulation/duckstation/duckstation-9999.ebuild +++ b/games-emulation/duckstation/duckstation-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -13,7 +13,7 @@ EGIT_SUBMODULES=() LICENSE="GPL-3" SLOT="0" -IUSE="discord +egl +evdev fbdev +gamepad gbm +nogui qt5 retroachievements wayland X" +IUSE="+dbus discord +egl +evdev fbdev +gamepad gbm +nogui qt6 retroachievements wayland X" # Either or both frontends must be built REQUIRED_USE=" @@ -27,13 +27,14 @@ BDEPEND=" wayland? ( kde-frameworks/extra-cmake-modules ) " DEPEND=" + media-libs/cubeb evdev? ( dev-libs/libevdev ) - gamepad? ( media-libs/libsdl2 ) + dbus? ( sys-apps/dbus ) + gamepad? ( >=media-libs/libsdl2-2.28.5 ) gbm? ( x11-libs/libdrm ) - qt5? ( - dev-qt/qtcore - dev-qt/qtgui - dev-qt/qtnetwork + qt6? ( + dev-qt/qtbase:6[gui,network,widgets] + dev-qt/qttools:6[linguist] ) retroachievements? ( net-misc/curl[curl_ssl_gnutls] ) X? ( @@ -47,10 +48,12 @@ S="${WORKDIR}/${PN}" src_configure() { local mycmakeargs=( + -DENABLE_CUBEB=ON -DBUILD_NOGUI_FRONTEND=$(usex nogui) - -DBUILD_QT_FRONTEND=$(usex qt5) + -DBUILD_QT_FRONTEND=$(usex qt6) -DENABLE_CHEEVOS=$(usex retroachievements) - –DENABLE_DISCORD_PRESENCE=$(usex discord) + -DENABLE_DISCORD_PRESENCE=$(usex discord) + -DUSE_DBUS=$(usex dbus) -DUSE_DRMKMS=$(usex gbm) -DUSE_EGL=$(usex egl) -DUSE_EVDEV=$(usex evdev) @@ -68,30 +71,24 @@ src_install() { # Binary and resources files must be in same directory – installing in /opt insinto /opt/${PN} - doins -r "${BUILD_DIR}"/bin/{database,inputprofiles,resources,shaders,translations} + doins -r "${BUILD_DIR}"/bin/resources/ if use nogui; then - for i in {16,32,48,64,128,256}; do - newicon -s ${i} dist/icon-${i}px.png duckstation-nogui.png - done - domenu dist/duckstation-nogui.desktop + newicon "${BUILD_DIR}"/bin/resources/images/duck.png duckstation-nogui.png + make_desktop_entry "${PN}-nogui %f" "DuckStation NoGUI" "${PN}-nogui" "Game" doins "${BUILD_DIR}"/bin/duckstation-nogui dosym ../../opt/${PN}/duckstation-nogui usr/bin/duckstation-nogui fperms +x /opt/${PN}/duckstation-nogui fi - if use qt5; then - for i in {16,32,48,64,128,256}; do - newicon -s ${i} dist/icon-${i}px.png duckstation-qt.png - done - domenu dist/duckstation-qt.desktop + if use qt6; then + newicon "${BUILD_DIR}"/bin/resources/images/duck.png duckstation-qt.png + make_desktop_entry "${PN}-qt %f" "DuckStation Qt" "${PN}-qt" "Game" + doins -r "${BUILD_DIR}"/bin/translations/ doins "${BUILD_DIR}"/bin/duckstation-qt dosym ../../opt/${PN}/duckstation-qt usr/bin/duckstation-qt fperms +x /opt/${PN}/duckstation-qt fi - - insinto /usr/share/metainfo - doins dist/org.duckstation.DuckStation.metainfo.xml } diff --git a/games-emulation/duckstation/metadata.xml b/games-emulation/duckstation/metadata.xml index 30b3bfff4..fbfcacde1 100644 --- a/games-emulation/duckstation/metadata.xml +++ b/games-emulation/duckstation/metadata.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>myrvogna@electrosphe.re</email> - <name>Octiabrina Terrien-Puig</name> + <email>contact@hacktivis.me</email> + <name>Haelwenn (lanodan) Monnier</name> </maintainer> <upstream> <remote-id type="github">stenzek/duckstation</remote-id> @@ -20,7 +20,7 @@ <flag name="gamepad">Link with SDL2 for controller support</flag> <flag name="gbm">Support DRM/KMS OpenGL contexts</flag> <flag name="nogui">Build the NoGUI frontend</flag> - <flag name="qt5">Build the QT frontend</flag> + <flag name="qt6">Build the QT frontend</flag> <flag name="retroachievements">Build with RetroAchievements supports</flag> </use> </pkgmetadata> diff --git a/games-emulation/flycast/flycast-9999.ebuild b/games-emulation/flycast/flycast-9999.ebuild new file mode 100644 index 000000000..3cea66b7a --- /dev/null +++ b/games-emulation/flycast/flycast-9999.ebuild @@ -0,0 +1,112 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{3..4} ) + +inherit cmake git-r3 lua-single xdg + +DESCRIPTION="Sega Dreamcast, Naomi and Atomiswave emulator" +HOMEPAGE="https://github.com/flyinghead/flycast" +EGIT_REPO_URI="https://github.com/flyinghead/flycast" +EGIT_SUBMODULES=( 'core/deps/breakpad' 'core/deps/volk' 'core/deps/VulkanMemoryAllocator' ) + +LICENSE="GPL-2" +SLOT="0" + +IUSE="alsa ao lua opengl +openmp pulseaudio vulkan" + +DEPEND=" + dev-libs/libchdr + dev-libs/libzip + dev-libs/xxhash + media-libs/libsdl2 + net-libs/miniupnpc + sys-libs/zlib + alsa? ( media-libs/alsa-lib ) + ao? ( media-libs/libao ) + lua? ( ${LUA_DEPS} ) + opengl? ( virtual/opengl ) + openmp? ( sys-devel/gcc:*[openmp] ) + pulseaudio? ( media-libs/libpulse ) + vulkan? ( + >=dev-util/glslang-1.3.231 + dev-util/spirv-headers + ) +" +RDEPEND="${DEPEND}" + +REQUIRED_USE="|| ( opengl vulkan ) || ( ao alsa pulseaudio )" + +src_unpack() { + use lua && EGIT_SUBMODULES+=( 'core/deps/luabridge' ) + git-r3_src_unpack +} +src_prepare() { + # Ensure unneeded deps are not bundled + for dep in chdr dirent glslang libretro-common libzip miniupnpc oboe patches SDL vixl xxHash; do + rm -rf core/deps/${dep} + done + + # Skip alsa if flag not enabled + use !alsa && sed -i -e '/find_package(ALSA)/d' CMakeLists.txt + + # Skip ao if flag not enabled + use !ao && sed -i -e '/pkg_check_modules(AO/d' CMakeLists.txt + + # Skip lua if flag not enabled + use !lua && sed -i -e '/find_package(Lua)/d' CMakeLists.txt + + # Skip pulseaudio if flag not enabled + use !pulseaudio && sed -i -e '/pkg_check_modules(LIBPULSE/d' CMakeLists.txt + + # Unbundle glslang + sed -i -e '/add_subdirectory(core\/deps\/glslang/{N;s/.*/find_library(GLSLANG libglslang.so)\nfind_library(SPIRV libSPIRV.so)\ntarget_link_libraries(${PROJECT_NAME} PRIVATE ${GLSLANG} ${SPIRV})/}' CMakeLists.txt || die + sed -i -e '/include.*SPIRV/{s:":<glslang/:;s/"/>/}' core/rend/vulkan/shaders.h \ + core/rend/vulkan/compiler.cpp || die + # Crazy commit fix: 8d0654c + sed -i -e '/maxMeshViewCountNV/a256,256,128,128,128,128,128,128,4,' \ + core/rend/vulkan/compiler.cpp || die + + # Unbundle xxHash + sed -i -e '/XXHASH_BUILD_XXHSUM/{N;N;s/.*/target_link_libraries(${PROJECT_NAME} PRIVATE xxhash)/}' \ + CMakeLists.txt || die + + # Unbundle chdr + sed -i -e '/add_subdirectory.*chdr/d' -e 's/chdr-static/chdr/' \ + -e 's:core/deps/chdr/include:/usr/include/chdr:' CMakeLists.txt || die + + # Do not use ccache + sed -i -e '/find_program(CCACHE_FOUND/d' CMakeLists.txt + + # Ensure static libs are not built + sed -i -e '/BUILD_SHARED_LIBS/d' CMakeLists.txt + + # Vulkan-header + sed -i -e '/add_subdirectory(core.*Vulkan-Headers)$/,/Vulkan::Headers/d' \ + -e '/core\/deps\/Vulkan-Headers\/include)/d' CMakeLists.txt + sed -i -e 's:SPIRV/GlslangToSpv.h:glslang/&:' core/rend/vulkan/compiler.cpp + if use vulkan; then + sed -i -e '$atarget_link_libraries(${PROJECT_NAME} PRIVATE glslang-default-resource-limits)' CMakeLists.txt + fi + + # Do not use ccache + sed -i -e '/find_program(CCACHE_PROGRAM ccache)/d' CMakeLists.txt + + # Revert crazy commit: #4408aa7 + sed -i -e '/if(NOT APPLE AND (/s/.*/if( NOT APPLE )/' CMakeLists.txt + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DUSE_OPENGL=$(usex opengl) + -DUSE_OPENMP=$(usex openmp) + -DUSE_VULKAN=$(usex vulkan) + -DUSE_HOST_LIBZIP=ON + -DWITH_SYSTEM_ZLIB=ON + ) + cmake_src_configure +} diff --git a/games-emulation/flycast/metadata.xml b/games-emulation/flycast/metadata.xml new file mode 100644 index 000000000..524f53682 --- /dev/null +++ b/games-emulation/flycast/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> + <name>mazes-80</name> + <email>samuel.bauer@yahoo.fr</email> +</maintainer> +<use> + <flag name="vulkan">Compile vulkan backend</flag> +</use> +<upstream> + <remote-id type="github">flyinghead/flycast</remote-id> +</upstream> +</pkgmetadata> diff --git a/games-emulation/melonds/Manifest b/games-emulation/melonds/Manifest deleted file mode 100644 index f284f28e8..000000000 --- a/games-emulation/melonds/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST melonDS-0.9.2.tar.gz 1330793 BLAKE2B e504dd2e1344a9680b9820f7f0308fa30decb16f40675df5649babef7ab3fae9528042fc2737a36bafdd28b9125f94a79d20e5a5e791d485feb9dc26b64b1432 SHA512 3d099af675acdcb91431aaaf95bc27c10fd432ebd29aa81c7eb4e65dfad9c20cb4fd5de086d2162cbe4a6b41f7e140880a5742b1ec34eef0511fff052aa1baaa -DIST melonDS-0.9.3.tar.gz 2241325 BLAKE2B 0ea7fbcce039a60a0553ae45d11f0b1550bfec2300faf1c99c3ee531bd5949c7293bec187fbf53e400bbb6280df29db141b2d1bcb294a8abf2eabb71993db686 SHA512 37f26f3a9784873ce1664645cea70049725367f5fe62f7c58842ebd5da2c73ffe423695dddb0ffd444bdf59df2a3fcd778cdf95b2bb083014b961fed282953f5 diff --git a/games-emulation/melonds/melonds-0.9.2.ebuild b/games-emulation/melonds/melonds-0.9.2.ebuild deleted file mode 100644 index 28d40e3c8..000000000 --- a/games-emulation/melonds/melonds-0.9.2.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2019-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_PN="melonDS" -MY_P="${MY_PN}-${PV}" - -inherit cmake flag-o-matic toolchain-funcs xdg - -DESCRIPTION="Nintendo DS emulator, sorta" -HOMEPAGE=" - http://melonds.kuribo64.net - https://github.com/Arisotura/melonDS -" - -if [[ "${PV}" == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/Arisotura/${MY_PN}.git" -else - SRC_URI="https://github.com/Arisotura/${MY_PN}/archive/${PV}.tar.gz -> ${MY_P}.tar.gz" - KEYWORDS="~amd64" - S="${WORKDIR}/${MY_P}" -fi - -IUSE="+jit +opengl" -LICENSE="BSD-2 GPL-2 GPL-3 Unlicense" -SLOT="0" - -DEPEND=" - app-arch/libarchive - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtwidgets:5 - media-libs/libsdl2[sound,video] - net-libs/libpcap - net-libs/libslirp - opengl? ( media-libs/libepoxy ) -" -RDEPEND="${DEPEND}" - -# used for JIT recompiler -QA_EXECSTACK="usr/bin/melonDS" - -src_prepare() { - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DENABLE_JIT=$(usex jit) - -DENABLE_OGLRENDERER=$(usex opengl) - ) - cmake_src_configure -} - -src_compile() { - tc-export AR - cmake_src_compile -} - -pkg_postinst() { - xdg_pkg_postinst - - elog "You need the following files in order to run melonDS:" - elog "- bios7.bin" - elog "- bios9.bin" - elog "- firmware.bin" - elog "- romlist.bin" - elog "Place them in ~/.config/melonDS" - elog "Those files can be found somewhere on the Internet ;-)" -} diff --git a/games-emulation/melonds/melonds-0.9.3.ebuild b/games-emulation/melonds/melonds-0.9.3.ebuild deleted file mode 100644 index a6497b3a6..000000000 --- a/games-emulation/melonds/melonds-0.9.3.ebuild +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright 2019-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# NOTICE: -# melonds bundles teakra, its upstream haven't had a release since 2020 - -EAPI=7 - -MY_PN="melonDS" -MY_P="${MY_PN}-${PV}" - -inherit cmake flag-o-matic toolchain-funcs xdg - -DESCRIPTION="Nintendo DS emulator, sorta" -HOMEPAGE=" - http://melonds.kuribo64.net - https://github.com/Arisotura/melonDS -" - -if [[ "${PV}" == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/Arisotura/${MY_PN}.git" -else - SRC_URI="https://github.com/Arisotura/${MY_PN}/archive/${PV}.tar.gz -> ${MY_P}.tar.gz" - KEYWORDS="~amd64" - S="${WORKDIR}/${MY_P}" -fi - -IUSE="+jit +opengl" -LICENSE="BSD-2 GPL-2 GPL-3 Unlicense" -SLOT="0" - -DEPEND=" - app-arch/libarchive - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtwidgets:5 - media-libs/libsdl2[sound,video] - net-libs/libpcap - net-libs/libslirp - opengl? ( media-libs/libepoxy ) -" -RDEPEND="${DEPEND}" - -# used for JIT recompiler -QA_EXECSTACK="usr/bin/melonDS" - -src_prepare() { - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DENABLE_JIT=$(usex jit) - -DENABLE_OGLRENDERER=$(usex opengl) - ) - cmake_src_configure -} - -src_compile() { - tc-export AR - cmake_src_compile -} - -src_install() { - # install teakra - dolib.so "${BUILD_DIR}/src/teakra/src/libteakra.so" - - cmake_src_install -} - -pkg_postinst() { - xdg_pkg_postinst - - elog "You need the following files in order to run melonDS:" - elog "- bios7.bin" - elog "- bios9.bin" - elog "- firmware.bin" - elog "- romlist.bin" - elog "Place them in ~/.config/melonDS" - elog "Those files can be found somewhere on the Internet ;-)" -} diff --git a/games-emulation/melonds/melonds-9999.ebuild b/games-emulation/melonds/melonds-9999.ebuild deleted file mode 100644 index a6497b3a6..000000000 --- a/games-emulation/melonds/melonds-9999.ebuild +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright 2019-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# NOTICE: -# melonds bundles teakra, its upstream haven't had a release since 2020 - -EAPI=7 - -MY_PN="melonDS" -MY_P="${MY_PN}-${PV}" - -inherit cmake flag-o-matic toolchain-funcs xdg - -DESCRIPTION="Nintendo DS emulator, sorta" -HOMEPAGE=" - http://melonds.kuribo64.net - https://github.com/Arisotura/melonDS -" - -if [[ "${PV}" == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/Arisotura/${MY_PN}.git" -else - SRC_URI="https://github.com/Arisotura/${MY_PN}/archive/${PV}.tar.gz -> ${MY_P}.tar.gz" - KEYWORDS="~amd64" - S="${WORKDIR}/${MY_P}" -fi - -IUSE="+jit +opengl" -LICENSE="BSD-2 GPL-2 GPL-3 Unlicense" -SLOT="0" - -DEPEND=" - app-arch/libarchive - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtwidgets:5 - media-libs/libsdl2[sound,video] - net-libs/libpcap - net-libs/libslirp - opengl? ( media-libs/libepoxy ) -" -RDEPEND="${DEPEND}" - -# used for JIT recompiler -QA_EXECSTACK="usr/bin/melonDS" - -src_prepare() { - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DENABLE_JIT=$(usex jit) - -DENABLE_OGLRENDERER=$(usex opengl) - ) - cmake_src_configure -} - -src_compile() { - tc-export AR - cmake_src_compile -} - -src_install() { - # install teakra - dolib.so "${BUILD_DIR}/src/teakra/src/libteakra.so" - - cmake_src_install -} - -pkg_postinst() { - xdg_pkg_postinst - - elog "You need the following files in order to run melonDS:" - elog "- bios7.bin" - elog "- bios9.bin" - elog "- firmware.bin" - elog "- romlist.bin" - elog "Place them in ~/.config/melonDS" - elog "Those files can be found somewhere on the Internet ;-)" -} diff --git a/games-emulation/melonds/metadata.xml b/games-emulation/melonds/metadata.xml deleted file mode 100644 index 877a2c235..000000000 --- a/games-emulation/melonds/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>xgqt@riseup.net</email> - <name>Maciej Barć</name> - </maintainer> - <upstream> - <remote-id type="github">Arisotura/melonDS</remote-id> - </upstream> -</pkgmetadata> diff --git a/games-emulation/mupen64plus-qt/Manifest b/games-emulation/mupen64plus-qt/Manifest index f826be1d1..c0bca664a 100644 --- a/games-emulation/mupen64plus-qt/Manifest +++ b/games-emulation/mupen64plus-qt/Manifest @@ -1 +1 @@ -DIST mupen64plus-qt-1.14.tar.gz 573526 BLAKE2B f81681861de61db9e68eb80941e97644a2e903b221c470e981c9e7f39e3cc720f59e57a08a7d5346b99ae963d6639c275c98f6519df9a203b0aaf567e9169451 SHA512 c4260a4d01362c4aa6c921bd816dd4ea6bae03380ad461613fffdcb877c09b0f8cc7e3e954842c1dd533ffdc546086b943ddf17c3c133c0b772cf62111ca01ea +DIST mupen64plus-qt-1.15.tar.gz 573009 BLAKE2B 9db7c5c7fefa99466933e4526338487b138eb970595d0ac92aedb1649e9786785b2472b7716cd24080e99cddda9d434207d2387515a62f6b2c111076bdcb10ed SHA512 f7abb23b401febbf60cfb04bcfe37047ce2e323241665aaae06874903da33c0dedf405809a8af193f82f1dc4537adcbcd480f86b5dad5d3af635d1eb00fb6aae diff --git a/games-emulation/mupen64plus-qt/metadata.xml b/games-emulation/mupen64plus-qt/metadata.xml index c04f7b664..ead6dfb80 100644 --- a/games-emulation/mupen64plus-qt/metadata.xml +++ b/games-emulation/mupen64plus-qt/metadata.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <name>Samuel Bauer</name> <email>samuel.bauer@yahoo.fr</email> </maintainer> +<upstream> + <remote-id type="github">dh4/mupen64plus-qt</remote-id> +</upstream> </pkgmetadata> diff --git a/games-emulation/mupen64plus-qt/mupen64plus-qt-1.14.ebuild b/games-emulation/mupen64plus-qt/mupen64plus-qt-1.15.ebuild index 790fc311b..06dc4fd58 100644 --- a/games-emulation/mupen64plus-qt/mupen64plus-qt-1.14.ebuild +++ b/games-emulation/mupen64plus-qt/mupen64plus-qt-1.15.ebuild @@ -1,7 +1,7 @@ -# Copyright 2020 Gentoo Authors +# Copyright 2018-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit desktop qmake-utils @@ -19,14 +19,13 @@ RDEPEND=" dev-qt/qtxml:5 dev-qt/qtsql:5 dev-qt/qtwidgets:5 - dev-libs/quazip + || ( <dev-libs/quazip-1.3 >=dev-libs/quazip-1.3[qt5] ) " DEPEND=">=games-emulation/mupen64plus-core-2.5 ${RDEPEND}" src_prepare() { - sed -i -e '/MatchWildcard/{s/Wildcard/RegExp/; s/"\*"/".*"/}' src/dialogs/settingsdialog.cpp || die - sed -i -e '/include.*quazip5/s/quazip5/QuaZip-Qt5-1.1\/quazip/' \ + sed -i -e '/include.*quazip5/s:quazip5/::' \ src/emulation/emulatorhandler.cpp src/common.cpp || die sed -i -e 's/lquazip5/lquazip1-qt5/' mupen64plus-qt.pro || die default @@ -34,6 +33,7 @@ src_prepare() { src_configure() { eqmake5 + sed -i -e "/INCPATH/s:\$: $(pkg-config --cflags-only-I quazip1-qt5):" Makefile || die } src_install() { diff --git a/games-emulation/mupen64plus-qt/mupen64plus-qt-9999.ebuild b/games-emulation/mupen64plus-qt/mupen64plus-qt-9999.ebuild index 93dd2d71b..4ffcf1352 100644 --- a/games-emulation/mupen64plus-qt/mupen64plus-qt-9999.ebuild +++ b/games-emulation/mupen64plus-qt/mupen64plus-qt-9999.ebuild @@ -1,7 +1,7 @@ -# Copyright 2018-2021 Gentoo Authors +# Copyright 2018-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit desktop git-r3 qmake-utils @@ -11,7 +11,6 @@ EGIT_REPO_URI="https://github.com/dh4/mupen64plus-qt" LICENSE="BSD" SLOT="0" -KEYWORDS="" RDEPEND=" dev-qt/qtcore:5 @@ -19,14 +18,13 @@ RDEPEND=" dev-qt/qtxml:5 dev-qt/qtsql:5 dev-qt/qtwidgets:5 - dev-libs/quazip + || ( <dev-libs/quazip-1.3 >=dev-libs/quazip-1.3[qt5] ) " DEPEND=">=games-emulation/mupen64plus-core-2.5 ${RDEPEND}" src_prepare() { - sed -i -e '/MatchWildcard/{s/Wildcard/RegExp/; s/"\*"/".*"/}' src/dialogs/settingsdialog.cpp || die - sed -i -e '/include.*quazip5/s/quazip5/QuaZip-Qt5-1.1\/quazip/' \ + sed -i -e '/include.*quazip5/s:quazip5/::' \ src/emulation/emulatorhandler.cpp src/common.cpp || die sed -i -e 's/lquazip5/lquazip1-qt5/' mupen64plus-qt.pro || die default @@ -34,6 +32,7 @@ src_prepare() { src_configure() { eqmake5 + sed -i -e "/INCPATH/s:\$: $(pkg-config --cflags-only-I quazip1-qt5):" Makefile || die } src_install() { diff --git a/games-emulation/np2kai/metadata.xml b/games-emulation/np2kai/metadata.xml index 2ef2bd16c..2790dd2c4 100644 --- a/games-emulation/np2kai/metadata.xml +++ b/games-emulation/np2kai/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>linobigatti@protonmail.com</email> @@ -22,4 +22,7 @@ <flag name="sdl2">Use <pkg>media-libs/libsdl2</pkg> instead of <pkg>media-libs/libsdl</pkg></flag> <flag name="X">Build support for X</flag> </use> + <upstream> + <remote-id type="github">AZO234/NP2kai</remote-id> + </upstream> </pkgmetadata> diff --git a/games-emulation/np2kai/np2kai-22.ebuild b/games-emulation/np2kai/np2kai-22.ebuild index 035962b57..cf91d20a7 100644 --- a/games-emulation/np2kai/np2kai-22.ebuild +++ b/games-emulation/np2kai/np2kai-22.ebuild @@ -31,7 +31,7 @@ DEPEND="media-libs/libsdl x11-base/xorg-server x11-libs/gtk+:2" RDEPEND="${DEPEND}" -BDEPEND="sys-devel/automake" +BDEPEND="dev-build/automake" S="${WORKDIR}/NP2kai-rev.${PV}/x11" diff --git a/games-emulation/rpcs3/metadata.xml b/games-emulation/rpcs3/metadata.xml new file mode 100644 index 000000000..95c264d48 --- /dev/null +++ b/games-emulation/rpcs3/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> + <name>mazes-80</name> + <email>samuel.bauer@yahoo.fr</email> +</maintainer> +<use> + <flag name="discord">Enables Discord Rich Presence</flag> + <flag name="faudio">Add faudio sound backend support</flag> + <flag name="llvm">Use llvm idk what for</flag> + <flag name="vulkan">Build vulkan renderer</flag> +</use> +</pkgmetadata> diff --git a/games-emulation/rpcs3/rpcs3-9999.ebuild b/games-emulation/rpcs3/rpcs3-9999.ebuild new file mode 100644 index 000000000..27d67610b --- /dev/null +++ b/games-emulation/rpcs3/rpcs3-9999.ebuild @@ -0,0 +1,155 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic xdg + +ASMJIT_COMMIT="416f7356967c1f66784dc1580fe157f9406d8bff" +GLSLANG_COMMIT="36d08c0d940cf307a23928299ef52c7970d8cee6" +MINIUPNP_COMMIT="f22a96b4697699d32fdc2d17c5d0ad7880a99c24" +RTMIDI_COMMIT="1e5b49925aa60065db52de44c366d446a902547b" +WOLFSSL_COMMIT="8970ff4c34034dbb3594943d11f8c9d4c5512bd5" +SOUNDTOUCH_COMMIT="ced3ce8d5ecc5aef8a5156fea206a37b33774bf3" +YAMLCPP_COMMIT="456c68f452da09d8ca84b375faa2b1397713eaba" + +DESCRIPTION="PS3 emulator/debugger" +HOMEPAGE="https://rpcs3.net/" +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/RPCS3/rpcs3" + EGIT_SUBMODULES=( 'asmjit' '3rdparty/glslang' '3rdparty/miniupnp/miniupnp' '3rdparty/rtmidi/rtmidi' '3rdparty/wolfssl' '3rdparty/SoundTouch/soundtouch' ) + # Delete sources when ensuring yaml-cpp compiled with fexceptions + EGIT_SUBMODULES+=( '3rdparty/yaml-cpp' ) + inherit git-r3 +else + SRC_URI=" + https://github.com/RPCS3/rpcs3/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/asmjit/asmjit/archive/${ASMJIT_COMMIT}.tar.gz -> ${PN}-asmjit-${ASMJIT_COMMIT}.tar.gz + https://github.com/KhronosGroup/glslang/archive/${GLSLANG_COMMIT}.tar.gz -> ${PN}-glslang-${GLSLANG_COMMIT}.tar.gz + https://github.com/miniupnp/miniupnp/archive/${MINIUPNP_COMMIT}.tar.gz -> ${PN}-miniupnp-${MINIUPNP_COMMIT}.tar.gz + https://github.com/thestk/rtmidi/archive/${RTMIDI_COMMIT}.tar.gz -> ${PN}-rtmidi-${RTMIDI_COMMIT}.tar.gz + https://github.com/wolfSSL/wolfssl/archive/${WOLFSSL_COMMIT}.tar.gz -> ${PN}-wolfssl-${WOLFSSL_COMMIT}.tar.gz + https://github.com/RPCS3/soundtouch/archive/${SOUNDTOUCH_COMMIT}.tar.gz -> ${PN}-soundtouch-${SOUNDTOUCH_COMMIT}.tar.gz + https://github.com/RPCS3/yaml-cpp/archive/${YAMLCPP_COMMIT}.tar.gz -> ${PN}-yaml-cpp-${SOUNDTOUCH_COMMIT}-.tar.gz + " + KEYWORDS="~amd64" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="discord faudio +llvm vulkan wayland" + +DEPEND=" + app-arch/p7zip + dev-libs/flatbuffers + dev-libs/hidapi + dev-libs/libevdev + dev-libs/pugixml + dev-libs/xxhash + dev-qt/qtbase:6[concurrent,dbus,gui,widgets] + dev-qt/qtmultimedia:6 + dev-qt/qtsvg:6 + media-libs/cubeb + media-libs/glew + media-libs/libglvnd + media-libs/libpng:= + media-libs/openal + media-video/ffmpeg:= + net-misc/curl + sys-devel/llvm:= + sys-libs/zlib + virtual/libusb:1 + faudio? ( app-emulation/faudio ) + vulkan? ( media-libs/vulkan-loader[wayland?] ) + wayland? ( dev-libs/wayland ) +" +RDEPEND="${DEPEND}" + +QA_PREBUILT="usr/share/rpcs3/test/.*" +QA_WX_LOAD="usr/share/rpcs3/test/*" + +src_prepare() { + if [[ ${PV} != "9999" ]]; then + rmdir "${S}/3rdparty/asmjit/asmjit" || die + mv "${WORKDIR}/asmjit-${ASMJIT_COMMIT}" "${S}/3rdparty/asmjit/asmjit" || die + + rmdir "${S}/3rdparty/glslang/glslang" || die + mv "${WORKDIR}/glslang-${GLSLANG_COMMIT}" "${S}/3rdparty/glslang/glslang" || die + + rmdir "${S}/3rdparty/miniupnp/miniupnp" || die + mv "${WORKDIR}/miniupnp-${MINIUPNP_COMMIT}" "${S}/3rdparty/miniupnp/miniupnp" || die + + rmdir "${S}/3rdparty/rtmidi/rtmidi" || die + mv "${WORKDIR}/rtmidi-${RTMIDI_COMMIT}" "${S}/3rdparty/rtmidi/rtmidi" || die + + rmdir "${S}/3rdparty/wolfssl/wolfssl" || die + mv "${WORKDIR}/wolfssl-${WOLFSSL_COMMIT}" "${S}/3rdparty/wolfssl/wolfssl" || die + + rmdir "${S}/3rdparty/SoundTouch/soundtouch" || die + mv "${WORKDIR}/soundtouch-${SOUNDTOUCH_COMMIT}" "${S}/3rdparty/SoundTouch/soundtouch" || die + + rmdir "${S}/3rdparty/yaml-cpp/yaml-cpp" || die + mv "${WORKDIR}/yaml-cpp-${YAMLCPP_COMMIT}" "${S}/3rdparty/SoundTouch/soundtouch" || die + + #Define RPCS3 Version + { echo "#define RPCS3_GIT_VERSION \"${PV}\"" + echo '#define RPCS3_GIT_BRANCH "master"' + echo '#define RPCS3_GIT_FULL_BRANCH "RPCS3/rpcs3/master"' + echo '#define RPCS3_GIT_VERSION_NO_UPDATE 1'; } > rpcs3/git-version.h + fi + + # Disable automagic ccache + sed -i -e '/find_program(CCACHE_FOUND ccache)/d' CMakeLists.txt || die + + # Unbundle hidapi + sed -i -e '/hidapi\.h/{s:":<hidapi/:;s/"/>/}' rpcs3/Input/hid_pad_handler.h || die + sed -i -e '/hidapi/d' 3rdparty/CMakeLists.txt || die + sed -i -e '1afind_package(PkgConfig REQUIRED)\npkg_check_modules(hidapi-hidraw REQUIRED hidapi-hidraw)' \ + rpcs3/CMakeLists.txt || die + sed -i -e 's/3rdparty::hidapi/hidapi-hidraw/' rpcs3/CMakeLists.txt rpcs3/rpcs3qt/CMakeLists.txt || die + sed -i -e 's/hid_write_control/hid_write/' \ + rpcs3/Input/dualsense_pad_handler.cpp rpcs3/Input/ds4_pad_handler.cpp || die + + # Unbundle cubeb + sed -i -e '/cubeb/d' 3rdparty/CMakeLists.txt || die + sed -i -e '$afind_package(cubeb)\n' CMakeLists.txt || die + sed -i -e 's/3rdparty::cubeb/cubeb/' rpcs3/Emu/CMakeLists.txt || die + + # Unbundle yaml-cpp: system yaml-cpp should be compiled with -fexceptions + # sed -i -e '/yaml-cpp/d' 3rdparty/CMakeLists.txt || die + # sed -i -e '$afind_package(yaml-cpp)\n' CMakeLists.txt || die + # sed -i -e 's/3rdparty::yaml-cpp/yaml-cpp/' rpcs3/Emu/CMakeLists.txt \ + # rpcs3/rpcs3qt/CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + filter-lto + + local mycmakeargs=( + -DBUILD_SHARED_LIBS=OFF # to remove after unbundling + -DUSE_PRECOMPILED_HEADERS=ON + -DUSE_SYSTEM_CURL=ON + -DUSE_SYSTEM_FFMPEG=ON + -DUSE_SYSTEM_FLATBUFFERS=ON + -DUSE_SYSTEM_LIBPNG=ON + -DUSE_SYSTEM_LIBUSB=ON + -DUSE_SYSTEM_PUGIXML=ON + -DUSE_SYSTEM_XXHASH=ON + -DUSE_SYSTEM_ZLIB=ON + -DUSE_DISCORD_RPC=$(usex discord) + -DUSE_FAUDIO=$(usex faudio) + -DUSE_VULKAN=$(usex vulkan) + -DWITH_LLVM=$(usex llvm) + ) + # These options are defined conditionally to suppress QA notice + use faudio && mycmakeargs+=( -DUSE_SYSTEM_FAUDIO=$(usex faudio) ) + use vulkan && mycmakeargs+=( $(cmake_use_find_package wayland Wayland) ) + + cmake_src_configure + + sed -i -e 's/FFMPEG_LIB_AVFORMAT-NOTFOUND/avformat/' -e 's/FFMPEG_LIB_AVCODEC-NOTFOUND/avcodec/' \ + -e 's/FFMPEG_LIB_AVUTIL-NOTFOUND/avutil/' -e 's/FFMPEG_LIB_SWSCALE-NOTFOUND/swscale/' \ + -e 's/FFMPEG_LIB_SWRESAMPLE-NOTFOUND/swresample/' "${BUILD_DIR}"/build.ninja || die +} diff --git a/games-emulation/yuzu/files/yuzu-9999-assert.patch b/games-emulation/yuzu/files/yuzu-9999-assert.patch deleted file mode 100644 index cd342ffba..000000000 --- a/games-emulation/yuzu/files/yuzu-9999-assert.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/src/common/assert.h -+++ b/src/common/assert.h -@@ -28,22 +28,19 @@ __declspec(noinline, noreturn) - } - - #define ASSERT(_a_) \ -- do \ -- if (!(_a_)) { \ -- assert_noinline_call([] { LOG_CRITICAL(Debug, "Assertion Failed!"); }); \ -- } \ -- while (0) -+ if (!(_a_)) { \ -+ LOG_CRITICAL(Debug, "Assertion Failed!"); \ -+ } - - #define ASSERT_MSG(_a_, ...) \ -- do \ -- if (!(_a_)) { \ -- assert_noinline_call([&] { LOG_CRITICAL(Debug, "Assertion Failed!\n" __VA_ARGS__); }); \ -- } \ -- while (0) -+ if (!(_a_)) { \ -+ LOG_CRITICAL(Debug, "Assertion Failed! " __VA_ARGS__); \ -+ } - --#define UNREACHABLE() assert_noinline_call([] { LOG_CRITICAL(Debug, "Unreachable code!"); }) -+#define UNREACHABLE() \ -+ { LOG_CRITICAL(Debug, "Unreachable code!"); } - #define UNREACHABLE_MSG(...) \ -- assert_noinline_call([&] { LOG_CRITICAL(Debug, "Unreachable code!\n" __VA_ARGS__); }) -+ { LOG_CRITICAL(Debug, "Unreachable code!\n" __VA_ARGS__); } - - #ifdef _DEBUG - #define DEBUG_ASSERT(_a_) ASSERT(_a_) diff --git a/games-emulation/yuzu/metadata.xml b/games-emulation/yuzu/metadata.xml deleted file mode 100644 index b1edc6d5d..000000000 --- a/games-emulation/yuzu/metadata.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<maintainer type="person"> - <name>Samuel Bauer</name> - <email>samuel.bauer@yahoo.fr</email> -</maintainer> -<use> - <flag name="boxcat">Enable the Boxcat service, a yuzu high-level implementation of BCAT</flag> - <flag name="cubeb">Enables the cubeb audio backend</flag> - <flag name="compatibility-list">Downloads the latest compatibility list</flag> - <flag name="discord">Enables Discord Rich Presence</flag> - <flag name="system-vulkan">Use system dev-util/vulkan-headers</flag> - <flag name="webengine">Use QtWebEngine for web applet implementation</flag> - <flag name="webservice">Enable web services (telemetry, etc.)</flag> -</use> -</pkgmetadata> diff --git a/games-emulation/yuzu/yuzu-9999.ebuild b/games-emulation/yuzu/yuzu-9999.ebuild deleted file mode 100644 index f01ff4a76..000000000 --- a/games-emulation/yuzu/yuzu-9999.ebuild +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright 2020-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake git-r3 flag-o-matic toolchain-funcs xdg - -DESCRIPTION="An emulator for Nintendo Switch" -HOMEPAGE="https://yuzu-emu.org" -EGIT_REPO_URI="https://github.com/yuzu-emu/yuzu" -EGIT_SUBMODULES=( '*' '-ffmpeg' '-inih' '-libressl' '-libusb' '-libzip' '-opus' '-SDL' ) -# TODO '-xbyak' wait for bump in tree -# TODO cubeb auto-links to jack, pulse, alsa .., allow determining cubeb output -# media-libs/cubeb would benefit to a lot of packages: dolphin-emu, firefox, citra, self, ... -# TODO many submodules produce static libraries which forces to unset BUILD_SHARED_LIBS -# this may be better to generate shared libraries and install them under /usr/$(get_libdir)/yuzu - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="" -IUSE="+boxcat +compatibility-list +cubeb discord +qt5 sdl system-vulkan webengine +webservice" - -DEPEND=" - discord? ( >=dev-libs/rapidjson-1.1.0 ) - qt5? ( - >=dev-qt/qtgui-5.15 - >=dev-qt/qtwidgets-5.15 - ) - sdl? ( - >=media-libs/libsdl2-2.0.16 - >=dev-libs/inih-52 - ) - system-vulkan? ( - >=dev-util/vulkan-headers-1.2.180 - ) - >=app-arch/lz4-1.8 - >=app-arch/zstd-1.5 - >=dev-cpp/catch-2.13:0 - >=dev-cpp/nlohmann_json-3.8.0 - >=dev-libs/boost-1.73:=[context] - >=dev-libs/libfmt-8 - >=dev-libs/libzip-1.5 - >=media-libs/opus-1.3.1 - >=sys-libs/zlib-1.2 - virtual/libusb:1 -" -RDEPEND="${DEPEND}" -REQUIRED_USE="boxcat? ( webservice ) || ( qt5 sdl )" - -PATCHES=( "${FILESDIR}"/${P}-assert.patch ) - -pkg_setup() { - if [ tc-is-gcc ]; then - [ "$(gcc-major-version)" -lt 11 ] && \ - die "You need gcc version 11 or clang to compile this package" - fi - grep -q 'ThreadEngineStarter<void>' /usr/include/qt5/QtConcurrent/qtconcurrentthreadengine.h \ - || die "add user patch for dev-qt/qtconcurrent: https://github.com/qt/qtbase/commit/659f7a06e91c04b239e3f4c0bcfccbe3581af1c3.diff" -} - -src_unpack() { - if use system-vulkan; then - EGIT_SUBMODULES+=('-Vulkan-Headers') - fi - - git-r3_src_unpack - - # Do not fetch via sources because this file always changes - use compatibility-list && curl https://api.yuzu-emu.org/gamedb/ > "${S}"/compatibility_list.json -} - -src_prepare() { - # Set yuzu dev flags - filter-flags '-*' - append-cflags '-O3 -DNDEBUG' - append-cxxflags '-O3 -DNDEBUG' - - # headers is not a valid boost component - sed -i -e '/find_package(Boost/{s/headers //;s/CONFIG //}' CMakeLists.txt || die - - # Allow skip submodule downloading - rm .gitmodules - - # unbundle opus (thx to https://github.com/Alex-Aralis/yuzu-overlay/blob/master/games-emulation/yuzu/files/unbundle-opus.patch) - sed -i -e "s!add_subdirectory(opus)!add_library(opus INTERFACE)\ntarget_include_directories(opus SYSTEM INTERFACE /usr/include/opus)\ntarget_link_libraries(opus INTERFACE /usr/$(get_libdir)/libopus.so)!" externals/CMakeLists.txt || die - - # Fix libzip detection - sed -i -e '/Libzip/s:.*:include(find-modules/FindLibzip.cmake)\n&:' externals/CMakeLists.txt || die - - # Unbundle inih - sed -i -e '/inih/d' externals/CMakeLists.txt || die - sed -i -e '1afind_package(PkgConfig REQUIRED)\npkg_check_modules(INIH REQUIRED INIReader)' \ - -e '/target_link_libraries/s/inih/${INIH_LIBRARIES}/' src/yuzu_cmd/CMakeLists.txt || die - sed -i -e 's:inih/cpp/::' src/yuzu_cmd/config.cpp || die - - # Unbundle xbyak ( uncomment when xbyak version is ok or never as it is only headers ) - # sed -i -e '/target_include_directories(xbyak/s:./xbyak/xbyak:/usr/include/xbyak/:' externals/CMakeLists.txt - - if use system-vulkan; then # Unbundle vulkan headers - sed -i -e 's:../../externals/Vulkan-Headers/include:/usr/include/vulkan/:' src/video_core/CMakeLists.txt src/yuzu/CMakeLists.txt src/yuzu_cmd/CMakeLists.txt || die - sed -i -e '/VK_ERROR_INCOMPATIBLE_VERSION_KHR/d' src/video_core/vulkan_common/vulkan_wrapper.cpp || die - fi - - # Unbundle discord rapidjson - sed -i '/NOT RAPIDJSONTEST/,/endif(NOT RAPIDJSONTEST)/d;/find_file(RAPIDJSON/d;s:\${RAPIDJSON}:"/usr/include/rapidjson":' externals/discord-rpc/CMakeLists.txt || die - - # Workaround: GenerateSCMRev fails - sed -i -e "s/@GIT_BRANCH@/${EGIT_BRANCH:-master}/" \ - -e "s/@GIT_REV@/$(git rev-parse --short HEAD)/" \ - -e "s/@GIT_DESC@/$(git describe --always --long)/" \ - src/common/scm_rev.cpp.in || die - - cmake_src_prepare -} - -src_configure() { - local -a mycmakeargs=( - -DBUILD_SHARED_LIBS=OFF - -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=$(usex compatibility-list) - -DENABLE_CUBEB=$(usex cubeb) - -DENABLE_QT=$(usex qt5) - -DENABLE_QT_TRANSLATION=$(usex qt5) - -DENABLE_SDL2=$(usex sdl) - -DENABLE_WEB_SERVICE=$(usex webservice) - -DUSE_DISCORD_PRESENCE=$(usex discord) - -DYUZU_ENABLE_BOXCAT=$(usex boxcat) - -DYUZU_USE_EXTERNAL_SDL2=OFF - -DYUZU_USE_QT_WEB_ENGINE=$(usex webengine) - ) - - cmake_src_configure - - # This would be better in src_unpack but it would be unlinked - if use compatibility-list; then - mv "${S}"/compatibility_list.json "${BUILD_DIR}"/dist/compatibility_list/ || die - fi -} |