highscore: init at 0-unstable-2026-01-01 (#368431)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-blastem";
|
||||
version = "0-unstable-2025-06-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "blastem-highscore";
|
||||
rev = "d19e9a8ddd0accf017f44dcc81bdd2661f63f25f";
|
||||
hash = "sha256-KetitwqL4S0T4GayeTdwR5hG/LVUF+mJ8oGIN6XPLfU=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/highscore";
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs gen-db.sh
|
||||
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty').stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of BlastEm to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/blastem-highscore";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
badPlatforms = lib.platforms.aarch64;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,58 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-bsnes";
|
||||
version = "0-unstable-2025-12-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "bsnes";
|
||||
rev = "df88234e314f97a2ca124df1982e4bd39f6fcea0";
|
||||
hash = "sha256-QI9mRvcsPkVBhUZlhchgGVPROj7HAqgtHHnbHVzIIBI=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/bsnes";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"target=highscore"
|
||||
"binary=library"
|
||||
"build=performance"
|
||||
"local=false"
|
||||
"platform=linux"
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
"libdir=${placeholder "out"}/lib"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
url = finalAttrs.src.gitRepoUrl;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of bsnes to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/bsnes";
|
||||
license = with lib.licenses; [
|
||||
gpl2Plus
|
||||
mit
|
||||
];
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
libGL,
|
||||
libX11,
|
||||
SDL2,
|
||||
libpcap,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-desmume";
|
||||
version = "0-unstable-2025-09-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "desmume";
|
||||
rev = "7d80d2a70850a5595ac8160e6dee5dea8b2fe293";
|
||||
hash = "sha256-wpW8Y68qzuu6J51snw2slbD6cnceFzONG4kutBOeB8I=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/desmume/src/frontend/highscore";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty').stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
libGL
|
||||
libX11
|
||||
SDL2
|
||||
libpcap
|
||||
];
|
||||
|
||||
# cc1plus: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security]
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of DeSmuME to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/desmume";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
inherit (libhighscore.meta) platforms maintainers;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-gearsystem";
|
||||
version = "0-unstable-2026-01-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "gearsystem";
|
||||
rev = "7a2cd21c54f1487ec255b71eaf629d1e48d4bbf1";
|
||||
hash = "sha256-y4ZSw2yXBNg49X4aB1TE79ydu3EVqvtb73eB2QBKLEk=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty', '--match', ''', check: false).stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/platforms/highscore";
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of Gearsystem to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/Gearsystem";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
zstd,
|
||||
libchdr,
|
||||
libvorbis,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-mednafen";
|
||||
version = "0-unstable-2025-12-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "mednafen-highscore";
|
||||
rev = "58404782e3f69186c7be821a880cf1442b240f2f";
|
||||
hash = "sha256-FXSfBAPpi+Ch9vuPQf6nqLMKxvrbXG+6F5HHaU9fs2s=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/highscore";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty', check: false).stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
zstd
|
||||
libchdr
|
||||
libvorbis
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of Mednafen to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/mednafen-highscore";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,68 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "highscore-mgba";
|
||||
version = "0-unstable-2026-01-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "mgba";
|
||||
rev = "a6d684ff03b91d219b861b85791f4069df698562";
|
||||
hash = "sha256-Ur7BG+AJ6KQ+XX2qKoj13w556VNnHtxULXd1d+gHUig=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
"doc"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_DEBUGGERS" false)
|
||||
(lib.cmakeBool "USE_EDITLINE" false)
|
||||
(lib.cmakeBool "ENABLE_GDB_STUB" false)
|
||||
(lib.cmakeBool "USE_ZLIB" false)
|
||||
(lib.cmakeBool "USE_MINIZIP" false)
|
||||
(lib.cmakeBool "USE_PNG" false)
|
||||
(lib.cmakeBool "USE_LIBZIP" false)
|
||||
(lib.cmakeBool "USE_SQLITE3" false)
|
||||
(lib.cmakeBool "USE_ELF" false)
|
||||
(lib.cmakeBool "USE_LUA" false)
|
||||
(lib.cmakeBool "USE_JSON_C" false)
|
||||
(lib.cmakeBool "USE_LZMA" false)
|
||||
(lib.cmakeBool "USE_DISCORD_RPC" false)
|
||||
(lib.cmakeBool "ENABLE_SCRIPTING" false)
|
||||
(lib.cmakeBool "BUILD_QT" false)
|
||||
(lib.cmakeBool "BUILD_SDL" false)
|
||||
(lib.cmakeBool "BUILD_HIGHSCORE" true)
|
||||
(lib.cmakeBool "SKIP_LIBRARY" true)
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of mGBA to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/mednafen-highscore";
|
||||
license = lib.licenses.mpl20;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
mupen64plus,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-mupen64plus";
|
||||
version = "0-unstable-2025-12-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "mupen64plus-highscore";
|
||||
rev = "94ab5644e5363cf359b334ac057f3f36d24910be";
|
||||
hash = "sha256-Q+6iL7DGr62C2fVEP0EWCgm7S7AYAW1C2X1GPKbI7aY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty', check: false).stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
mupen64plus
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of Mupen64Plus to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/mupen64plus-highscore";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
inherit (libhighscore.meta) maintainers;
|
||||
inherit (mupen64plus.meta) platforms broken;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-nestopia";
|
||||
version = "0-unstable-2025-12-30";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "highscore-emu";
|
||||
repo = "nestopia";
|
||||
rev = "529e69b6e577f42a246c8fa44ef7f3095647adaf";
|
||||
hash = "sha256-2aBEtut6AShP1Nz0BqNTFD3/gN2cj5PY8JL8WbLE7XE=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/highscore";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty', '--match', ''', check: false).stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of Nestopia to Highscore";
|
||||
homepage = "https://gitlab.com/highscore-emu/nestopia";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-prosystem";
|
||||
version = "0-unstable-2025-12-27";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "highscore-emu";
|
||||
repo = "prosystem";
|
||||
rev = "44d86957d9377fdc1650c8cdaafbf7e2e2671827";
|
||||
hash = "sha256-vxgh819XwI6rjoI7WwUEPx0PVpb58+MIOhCINQKom0Q=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/highscore";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty', '--match', ''', check: false).stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of ProSystem to Highscore";
|
||||
homepage = "https://gitlab.com/highscore-emu/prosystem";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,53 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
rgbds,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-sameboy";
|
||||
version = "0-unstable-2025-12-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "SameBoy";
|
||||
rev = "80e1d0b5aef4098539979a4670882d590ac9a1ca";
|
||||
hash = "sha256-Fp9GODDu0170NoCHCfX5+vs8hQccS/P1N4jM+L784+o=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/highscore";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty', '--match', ''', check: false).stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
rgbds
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of SameBoy to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/SameBoy";
|
||||
license = lib.licenses.mit;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
libhighscore,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-stella";
|
||||
version = "0-unstable-2026-01-02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "highscore-emu";
|
||||
repo = "stella";
|
||||
rev = "a8d92c100e83ae2249c5b30afcaa4b4ed31fcc46";
|
||||
hash = "sha256-QfKtAIMCqniF15vCuWKz/pwb0FuE6xDp6/rfeUWpMgQ=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src/os/highscore";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build \
|
||||
--replace-fail "run_command('git', 'describe', '--always', '--dirty', check: false).stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libhighscore
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Port of Stella to Highscore";
|
||||
homepage = "https://github.com/highscore-emu/stella";
|
||||
license = lib.licenses.gpl2Only;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,25 @@
|
||||
diff --git a/shared/config.vapi b/shared/config.vapi
|
||||
index 1b0d8d7..e25bfbc 100644
|
||||
--- a/shared/config.vapi
|
||||
+++ b/shared/config.vapi
|
||||
@@ -9,7 +9,6 @@ namespace Config {
|
||||
public const string VERSION_SUFFIX;
|
||||
public const string VCS_TAG;
|
||||
public const string PROFILE;
|
||||
- public const string CORES_DIR;
|
||||
public const string DATA_DIR;
|
||||
public const string RUNNER_PATH;
|
||||
}
|
||||
diff --git a/src/core-register.vala b/src/core-register.vala
|
||||
index 892aca7..2485cc7 100644
|
||||
--- a/src/core-register.vala
|
||||
+++ b/src/core-register.vala
|
||||
@@ -15,7 +15,7 @@ public class Highscore.CoreRegister : Object {
|
||||
suggested_cores = new HashTable<string, SuggestedCore?> (str_hash, str_equal);
|
||||
|
||||
try {
|
||||
- scan_directory (File.new_for_path (Config.CORES_DIR));
|
||||
+ scan_directory (File.new_for_path (Environment.get_variable ("HIGHSCORE_CORES_DIR")));
|
||||
} catch (Error e) {
|
||||
critical ("Failed to scan cores: %s", e.message);
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
blueprint-compiler,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
vala,
|
||||
glib,
|
||||
gtk4,
|
||||
desktop-file-utils,
|
||||
itstool,
|
||||
python3,
|
||||
json-glib,
|
||||
libgee,
|
||||
libadwaita,
|
||||
libarchive,
|
||||
libglycin,
|
||||
libhighscore,
|
||||
libmanette,
|
||||
sqlite,
|
||||
libGL,
|
||||
libepoxy,
|
||||
libpulseaudio,
|
||||
SDL2,
|
||||
librsvg,
|
||||
libmirage,
|
||||
feedbackd,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
let
|
||||
libmanette-1-alpha = libmanette.overrideAttrs (prev: {
|
||||
version = "0.2.13-unstable-2025-10-10";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "libmanette";
|
||||
rev = "9b1b45e2aa3221938cd23e5f87a79b69e1996f64";
|
||||
hash = "sha256-4Vinc3sBU2PJmOZUOrod6AJbRq6W2nNLcC//FVHGuhg=";
|
||||
};
|
||||
|
||||
buildInputs = prev.buildInputs ++ [ libadwaita ];
|
||||
});
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highscore-unwrapped";
|
||||
version = "0-unstable-2026-01-01";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "highscore";
|
||||
rev = "c9f537e06414a32632e9f9d7a73d9028b788f275";
|
||||
hash = "sha256-6sBfjVFIFg0w3apzJBYMYEIjTavnOAE0YK3ayzoyDks=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Highscore finds cores under $out/lib/highscore/cores/
|
||||
# Allow the wrapper to override it with $HIGHSCORE_CORES_DIR
|
||||
./cores-dir-from-envvar.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace meson.build --replace-fail \
|
||||
"run_command('git', 'rev-parse', '--short', 'HEAD').stdout().strip()" \
|
||||
"'${finalAttrs.src.rev}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
blueprint-compiler
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
glib # For glib-compile-resources
|
||||
gtk4 # For gtk4-update-icon-cache
|
||||
desktop-file-utils
|
||||
itstool
|
||||
# Used in build time, detected by meson
|
||||
(python3.withPackages (ps: [ ps.pygobject3 ]))
|
||||
# To prevent double wrapping, not wrapping it here
|
||||
# wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
libgee
|
||||
gtk4
|
||||
json-glib
|
||||
libadwaita
|
||||
libarchive
|
||||
libglycin
|
||||
libhighscore
|
||||
libmanette-1-alpha
|
||||
sqlite
|
||||
libGL
|
||||
libepoxy
|
||||
libpulseaudio
|
||||
SDL2
|
||||
librsvg
|
||||
libmirage
|
||||
feedbackd
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Rewrite of Highscore, formerly gnome-games";
|
||||
homepage = "https://gitlab.gnome.org/World/highscore/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
inherit (libhighscore.meta) maintainers platforms;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
symlinkJoin,
|
||||
wrapGAppsHook4,
|
||||
gtk4,
|
||||
feedbackd,
|
||||
librsvg,
|
||||
glycin-loaders,
|
||||
highscore-unwrapped,
|
||||
highscore-blastem,
|
||||
highscore-bsnes,
|
||||
highscore-desmume,
|
||||
highscore-gearsystem,
|
||||
highscore-mednafen,
|
||||
highscore-mgba,
|
||||
highscore-mupen64plus,
|
||||
highscore-nestopia,
|
||||
highscore-prosystem,
|
||||
highscore-sameboy,
|
||||
highscore-stella,
|
||||
|
||||
# Allow users to override
|
||||
cores ? builtins.filter (p: p.meta.available) [
|
||||
highscore-blastem
|
||||
highscore-bsnes
|
||||
highscore-desmume
|
||||
highscore-gearsystem
|
||||
highscore-mednafen
|
||||
highscore-mgba
|
||||
highscore-mupen64plus
|
||||
highscore-nestopia
|
||||
highscore-prosystem
|
||||
highscore-sameboy
|
||||
highscore-stella
|
||||
],
|
||||
}:
|
||||
|
||||
symlinkJoin {
|
||||
pname = "highscore";
|
||||
inherit (highscore-unwrapped) version meta;
|
||||
|
||||
paths = [ highscore-unwrapped ] ++ cores;
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
# For gsettings-schemas
|
||||
highscore-unwrapped
|
||||
gtk4
|
||||
feedbackd
|
||||
# For GDK_PIXBUF_MODULE_FILE
|
||||
librsvg
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
# symlinkJoin doesn't run other build phases
|
||||
postBuild = ''
|
||||
rm $out/share/dbus-1/services/app.drey.Highscore{,.SearchProvider}.service
|
||||
cp {${highscore-unwrapped},$out}/share/dbus-1/services/app.drey.Highscore.service
|
||||
cp {${highscore-unwrapped},$out}/share/dbus-1/services/app.drey.Highscore.SearchProvider.service
|
||||
substituteInPlace $out/share/dbus-1/services/app.drey.Highscore{,.SearchProvider}.service \
|
||||
--replace-fail "${highscore-unwrapped}" "$out"
|
||||
|
||||
gappsWrapperArgsHook
|
||||
|
||||
makeWrapper ${highscore-unwrapped}/bin/highscore $out/bin/highscore \
|
||||
"''${gappsWrapperArgs[@]}" \
|
||||
--prefix XDG_DATA_DIRS : "${glycin-loaders}/share" \
|
||||
--set HIGHSCORE_CORES_DIR $out/lib/highscore/cores
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
pkg-config,
|
||||
zlib,
|
||||
zstd,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "libchdr";
|
||||
version = "0-unstable-2025-12-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rtissera";
|
||||
repo = "libchdr";
|
||||
rev = "07a7dad23378b001f4ab174ef51bd6553f883edd";
|
||||
hash = "sha256-FCZ442mDF/pO5sNHNcPtWxSOB8o3I0YwwNXzu1B2vVQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
zlib
|
||||
zstd
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
|
||||
(lib.cmakeBool "INSTALL_STATIC_LIBS" stdenv.hostPlatform.isStatic)
|
||||
(lib.cmakeBool "WITH_SYSTEM_ZLIB" true)
|
||||
(lib.cmakeBool "WITH_SYSTEM_ZSTD" true)
|
||||
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
|
||||
(lib.cmakeFeature "CMAKE_INSTALL_INCLUDEDIR" "include")
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Standalone library for reading MAME's CHDv1-v5 formats";
|
||||
homepage = "https://github.com/rtissera/libchdr";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ aleksana ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
glib,
|
||||
vala,
|
||||
gobject-introspection,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "libhighscore";
|
||||
version = "0-unstable-2025-12-06";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "alicem";
|
||||
repo = "libhighscore";
|
||||
rev = "6920d96b440ccfc070fc87c39c51beab8ac053bd";
|
||||
hash = "sha256-JXfPLPHA3HwXRG6sT/5TSMbtU+BqBh/+ZVrzJxW0xLg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
glib # For glib-mkenums
|
||||
gobject-introspection # For g-ir-scanner
|
||||
vala # For vapigen
|
||||
];
|
||||
|
||||
# In highscore-1.pc
|
||||
propagatedBuildInputs = [
|
||||
glib
|
||||
];
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
hardcodeZeroVersion = true;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Interface for porting emulators to Highscore";
|
||||
homepage = "https://gitlab.gnome.org/alicem/libhighscore";
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
chuangzhu
|
||||
aleksana
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user