libretro: updates (#373856)

This commit is contained in:
Thiago Kenji Okada
2025-01-16 21:07:23 +00:00
committed by GitHub
11 changed files with 92 additions and 68 deletions
@@ -1,48 +1,51 @@
{
lib,
cmake,
fetchFromGitHub,
boost,
ffmpeg_6,
gcc12Stdenv,
libGL,
libGLU,
libX11,
mkLibretroCore,
nasm,
}:
mkLibretroCore rec {
mkLibretroCore {
core = "citra";
version = "0-unstable-2024-04-01";
version = "0-unstable-2024-12-03";
src = fetchFromGitHub {
owner = "libretro";
repo = "citra";
# TODO: upstream migrated to cmake, this is the latest rev without it
rev = "36b600692905ebd457cbc9321e2f521938eced16";
hash = "sha256-ZJcsdFgLBda4xS4Z6I8Pu+6B9TYwak//0CbloDK3Yg0=";
rev = "a31aff7e1a3a66f525b9ea61633d2c5e5b0c8b31";
hash = "sha256-HlhY4AeFQSabrmPQWLygjPGTWkIh0U0Hv1Fv4YFu9xg=";
fetchSubmodules = true;
};
makefile = "Makefile";
makeFlags = [
"HAVE_FFMPEG_STATIC=0"
# https://github.com/libretro/citra/blob/1a66174355b5ed948de48ef13c0ed508b6d6169f/Makefile#L87-L90
"GIT_REV=${src.rev}"
"GIT_DESC=${lib.substring 0 7 src.rev}"
"GIT_BRANCH=master"
"BUILD_DATE=01/01/1970_00:00"
];
extraBuildInputs = [
boost
ffmpeg_6
libGL
libGLU
nasm
libX11
];
# FIXME: build fail with GCC13:
# error: 'mic_device_name' has incomplete type
stdenv = gcc12Stdenv;
extraNativeBuildInputs = [ cmake ];
# This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
# making the build fail, as that path does not exist
dontFixCmake = true;
# https://github.com/libretro/citra/blob/a31aff7e1a3a66f525b9ea61633d2c5e5b0c8b31/.gitlab-ci.yml#L6
cmakeFlags = [
(lib.cmakeBool "ENABLE_TESTS" false)
(lib.cmakeBool "ENABLE_DEDICATED_ROOM" false)
(lib.cmakeBool "ENABLE_SDL2" false)
(lib.cmakeBool "ENABLE_QT" false)
(lib.cmakeBool "ENABLE_WEB_SERVICE" false)
(lib.cmakeBool "ENABLE_SCRIPTING" false)
(lib.cmakeBool "ENABLE_OPENAL" false)
(lib.cmakeBool "ENABLE_LIBUSB" false)
(lib.cmakeBool "CITRA_ENABLE_BUNDLE_TARGET" false)
(lib.cmakeBool "CITRA_WARNINGS_AS_ERRORS" false)
];
meta = {
description = "Port of Citra to libretro";
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "dosbox-pure";
version = "0-unstable-2024-12-31";
version = "0-unstable-2025-01-12";
src = fetchFromGitHub {
owner = "schellingb";
repo = "dosbox-pure";
rev = "9e468f0087454c6c1b68975ead933977d5cf33b2";
hash = "sha256-tiyDXxwZapu+Ol1icOeemVQ5oAjMMx2/M4nA0CiRkMY=";
rev = "e69a36a83c09f6660f7683d64eb8077a2da9a487";
hash = "sha256-QiwkWP6fHiGASN1SpLY+pSJVsu3TsENj7oAM4pCXnsk=";
};
hardeningDisable = [ "format" ];
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "fbneo";
version = "0-unstable-2025-01-06";
version = "0-unstable-2025-01-13";
src = fetchFromGitHub {
owner = "libretro";
repo = "fbneo";
rev = "b8780c057029db8768c9a057b0bc28f9a12609d8";
hash = "sha256-cK3ILA0Ape6rHf5dPbXOMmQ69ZPZ/qrxeKYA1LniBEk=";
rev = "274cdf95a16981c130015a8b4808a95ef5b46203";
hash = "sha256-BS+Siam2jz6mFDz0mtvWH3+Is3Il78UbWkCh2f+DSAE=";
};
makefile = "Makefile";
@@ -8,13 +8,13 @@
}:
mkLibretroCore {
core = "flycast";
version = "0-unstable-2025-01-09";
version = "0-unstable-2025-01-10";
src = fetchFromGitHub {
owner = "flyinghead";
repo = "flycast";
rev = "3114344414dbd8fb08efe1d6a25dbae457a2ec44";
hash = "sha256-UgH8L02WkAPaMMUnes6GYLjRbkuY8+9b6LCGaaQWhjQ=";
rev = "2e8984804170afce31a6d85e10ee4e153bbfb5aa";
hash = "sha256-jOOfYZ33SZM39vaJ/OqL7OpvIjuYoSewspOWNVTOBdk=";
fetchSubmodules = true;
};
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mame2003-plus";
version = "0-unstable-2025-01-10";
version = "0-unstable-2025-01-13";
src = fetchFromGitHub {
owner = "libretro";
repo = "mame2003-plus-libretro";
rev = "61305d60329d6a9abf7ddad1c3657b3253c5e64d";
hash = "sha256-fLThBOHkX0dV0zjDuJIh1ILpWi2FNV9oOXRH4ApcGbs=";
rev = "0fcccae96eb722d58be329977eb49173c5c97981";
hash = "sha256-Dt9MVWSe9ykNUasEgANsKYuXdqD3cGuM5jQCyD1iSY0=";
};
makefile = "Makefile";
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mgba";
version = "0-unstable-2024-11-12";
version = "0-unstable-2025-01-14";
src = fetchFromGitHub {
owner = "libretro";
repo = "mgba";
rev = "747362c02d2e71ee7c363e8dcb240925be8af906";
hash = "sha256-dBhdS6C1H02iwdYDVvJmkPWob81vpmQJdHUHJFAq2vo=";
rev = "72b5a9d3c4945c381d3230d59ea484729bcfe6c7";
hash = "sha256-90APQtjwYh/KPrvvlnVU+3G45gaibpOEBf9MoVWOzDI=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "pcsx-rearmed";
version = "0-unstable-2025-01-09";
version = "0-unstable-2025-01-14";
src = fetchFromGitHub {
owner = "libretro";
repo = "pcsx_rearmed";
rev = "c5d1f1dd5e304dfcba2adf0de8aa9188ca35fad3";
hash = "sha256-4stYqeGrKtNtjbhoG8IriV41xq3urH9QMNnqYMQ7CxQ=";
rev = "9fec7ce05906838a4682dd0a83d0e7d6ac0336fa";
hash = "sha256-1t6mXucg2/2hqyM4Id5Ze2Ry5U2rWMw2ce9mPAJur8k=";
};
dontConfigure = true;
@@ -11,13 +11,13 @@
}:
mkLibretroCore {
core = "pcsx2";
version = "0-unstable-2025-01-09";
version = "0-unstable-2025-01-12";
src = fetchFromGitHub {
owner = "libretro";
repo = "ps2";
rev = "397b8f54b92aeffd2dd502c2c9b601305fb1de9d";
hash = "sha256-zP4gOxAAWqgmGkilVijY2GF6awD7cbMICfxYSsI1wa0=";
rev = "3fda2d1bb58564e2c814289036a7e4b10bf53357";
hash = "sha256-06cbF/Mhq2Gf87EQBiptHzqayOm0BA1c2dx6fu795RI=";
fetchSubmodules = true;
};
@@ -14,13 +14,13 @@
}:
mkLibretroCore {
core = "play";
version = "0-unstable-2025-01-09";
version = "0-unstable-2025-01-11";
src = fetchFromGitHub {
owner = "jpd002";
repo = "Play-";
rev = "2958fa6c5ada62a3150513e4d8b6c4343c1cfbb8";
hash = "sha256-beo3tOUW62tiZISdAAGdeSVrS8w1l8x+JIi0nDDl5wA=";
rev = "b35ef5663b809a449a4c89f6e9808fd0a63e7e49";
hash = "sha256-P3R8gV4LxorfW0qo8HVOZunK58+/SO5pvlmij/HlnKw=";
fetchSubmodules = true;
};
@@ -13,13 +13,13 @@
}:
mkLibretroCore {
core = "ppsspp";
version = "0-unstable-2025-01-10";
version = "0-unstable-2025-01-14";
src = fetchFromGitHub {
owner = "hrydgard";
repo = "ppsspp";
rev = "aa752ade6c99ec6db4c7f7cbc6c1133738005c5f";
hash = "sha256-zbDXAI3VnpPQbPMAN1ie5nPFCNzBQif1S1nZnar4fvg=";
rev = "841eb115e224dcdaa4b97f33ee0126fa00149c2a";
hash = "sha256-QnD13GxwW+B5ZdRRBhBwxUELwCwrlBsxBO0//elIfM4=";
fetchSubmodules = true;
};
@@ -1,42 +1,63 @@
{
lib,
fetchFromGitHub,
fluidsynth,
libGL,
libGLU,
libjpeg,
libvorbis,
which,
zip,
mkLibretroCore,
}:
let
# https://github.com/libretro/scummvm/blob/master/backends/platform/libretro/dependencies.mk#L8-L14
libretro-common-src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-common";
rev = "70ed90c42ddea828f53dd1b984c6443ddb39dbd6";
hash = "sha256-ItsUNbJCK/m/3VprK/zHD2UF5MhPC8b7jM3qS/oHU2A=";
};
libretro-deps-src = fetchFromGitHub {
owner = "libretro";
repo = "libretro-deps";
rev = "abf5246b016569759e7d1b0ea91bb98c2e34d160";
hash = "sha256-tdGytbSNMCfMuXIAUunOSVw9qFq2rRaruELhZwEmhWE=";
};
in
mkLibretroCore {
core = "scummvm";
version = "0-unstable-2022-04-06";
version = "0-unstable-2024-12-03";
# This is the old source code before they upstreamed the source code,
# so now the libretro related code lives in the scummvm/scummvm repository.
# However this broke the old way we were doing builds, so for now point
# to a mirror with the old source code until this issue is fixed.
# TODO: switch to libretro/scummvm since this is more up-to-date
src = fetchFromGitHub {
owner = "libretro-mirrors";
owner = "libretro";
repo = "scummvm";
rev = "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3";
hash = "sha256-wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew=";
rev = "7310d4e9f5d11553c6c5499911bd2f9b8ff3db3b";
hash = "sha256-h+tnwayBhzBQrg5x1rxIJASAS43SP8emTATDG2N3ePk=";
};
extraBuildInputs = [
fluidsynth
libjpeg
libvorbis
libGLU
libGL
libGLU
zip
];
extraNativeBuildInputs = [ which ];
preConfigure = "cd backends/platform/libretro";
preBuild = ''
mkdir -p deps/libretro-{common,deps}
cp -a ${libretro-common-src}/* deps/libretro-common
cp -a ${libretro-deps-src}/* deps/libretro-deps
chmod -R u+w deps/
patchShebangs ./scripts/*
'';
makefile = "Makefile";
preConfigure = "cd backends/platform/libretro/build";
meta = {
description = "Libretro port of ScummVM";
homepage = "https://github.com/libretro-mirrors/scummvm";
homepage = "https://github.com/libretro/scummvm";
license = lib.licenses.gpl2Only;
};
}