9 Commits

Author SHA1 Message Date
59d3a471cd bdwgc: init
Some checks failed
Build and populate cache / tests (sydpkgs, nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixpkgs-unstable.tar.gz, sydpkgs) (push) Has been cancelled
2026-05-16 14:12:11 -06:00
40de554543 ryubing-canary: init
Some checks failed
Build and populate cache / tests (sydpkgs, nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixpkgs-unstable.tar.gz, sydpkgs) (push) Has been cancelled
2026-04-23 17:05:28 -06:00
e44c957573 progressbar: init
Some checks failed
Build and populate cache / tests (sydpkgs, nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixpkgs-unstable.tar.gz, sydpkgs) (push) Has been cancelled
2026-04-11 15:40:19 -06:00
03f6a67a0a fcitx5-toki-pona: use fork w/ icons 2026-03-11 18:34:34 -06:00
12a5095325 fcitx5-toki-pona: init 2026-03-11 13:43:32 -06:00
53bf019e26 gf-core: pin compiler version
Some checks failed
Build and populate cache / tests (sydpkgs, nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixpkgs-unstable.tar.gz, sydpkgs) (push) Has been cancelled
2026-02-16 20:44:32 -07:00
e190dae46b gftest: init
Some checks failed
Build and populate cache / tests (sydpkgs, nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixpkgs-unstable.tar.gz, sydpkgs) (push) Has been cancelled
2026-02-16 02:30:36 -07:00
d3252333eb gfWithPackages: init
Some checks failed
Build and populate cache / tests (sydpkgs, nixpkgs=https://github.com/NixOS/nixpkgs/archive/refs/heads/nixpkgs-unstable.tar.gz, sydpkgs) (push) Has been cancelled
2026-02-15 21:01:13 -07:00
2d0874fd1d gf-rgl: init 2026-02-15 20:45:55 -07:00
14 changed files with 1238 additions and 22 deletions

6
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1750386251,
"narHash": "sha256-1ovgdmuDYVo5OUC5NzdF+V4zx2uT8RtsgZahxidBTyw=",
"lastModified": 1776329215,
"narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "076e8c6678d8c54204abcb4b1b14c366835a58bb",
"rev": "b86751bc4085f48661017fa226dee99fab6c651b",
"type": "github"
},
"original": {

39
pkgs/bdwgc/default.nix Normal file
View File

@@ -0,0 +1,39 @@
{ cmake
, stdenv
, fetchFromGitHub
, lib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "bdwgc";
version = "8.2.12";
src = fetchFromGitHub {
owner = "bdwgc";
repo = "bdwgc";
tag = "v${finalAttrs.version}";
hash = "sha256-5yeAB5Y92YjOutwRXBJkMxoOLkmzmqIJs4PirKX89fE=";
};
nativeBuildInputs = [
cmake
];
meta = {
homepage = "https://www.hboehm.info/gc/";
description = ''
The Boehm-Demers-Weiser conservative C/C++ Garbage Collector
(bdwgc, also known as bdw-gc, boehm-gc, libgc)
'';
longDescription = ''
This is a garbage collecting storage allocator that is intended
to be used as a plug-in replacement for C's malloc.
Since the collector does not require pointers to be tagged, it
does not attempt to ensure that all inaccessible storage is
reclaimed. However, in our experience, it is typically more
successful at reclaiming unused memory than most C programs
using explicit deallocation. Unlike manually introduced leaks,
the amount of unreclaimed memory typically stays bounded.
'';
license = lib.licenses.mit;
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,41 @@
{ stdenv
, fetchFromGitHub
, kdePackages
, python3
, libime
, lib
}:
stdenv.mkDerivation {
pname = "fcitx5-toki-pona";
version = "git";
src = fetchFromGitHub {
owner = "msyds";
repo = "fcitx5-toki-pona";
rev = "4b4314d642c647bc714c8876460b6779facda89c";
# rev = "icons";
hash = "sha256-5Keg+7AYkELYAlJkPszcjHgJ6TwBxnwNd3cpxSOEbGc=";
};
# src = /home/msyds/git/fcitx5-toki-pona;
buildInputs = [
kdePackages.fcitx5-chinese-addons
];
nativeBuildInputs = [
python3
libime
];
buildPhase = ''
runHook preBuild
python3 combine.py
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm644 -t $out/share/fcitx5/table table/*
install -Dm644 -t $out/share/fcitx5/inputmethod confs/*
find icons -name '*.png' -exec install -Dm644 {} "$out/share/{}" \;
runHook postInstall
'';
}

View File

@@ -1,32 +1,30 @@
{ haskell
, haskellPackages
, stdenv
, fetchFromGitHub
, autoreconfHook
, gf-pgf
, applyPatches
, compiler ? "ghc98"
}:
let
version = "3.12";
src = fetchFromGitHub {
owner = "GrammaticalFramework";
repo = "gf-core";
rev = "release-${version}";
hash = "sha256-9sB8tt2eOJT43kv2eaUYRQCzyBZOp6HvJdgGJQgiqks=";
};
pkg = haskellPackages.callCabal2nixWithOptions "gf" src "--flag=-server" {};
gf-pgf = stdenv.mkDerivation {
pname = "gf-pgf";
version = "0.0.1";
src = "${src}/src/runtime/c";
nativeBuildInputs = [ autoreconfHook ];
src = applyPatches rec {
src = fetchFromGitHub {
owner = "GrammaticalFramework";
repo = "gf-core";
rev = "release-${version}";
hash = "sha256-9sB8tt2eOJT43kv2eaUYRQCzyBZOp6HvJdgGJQgiqks=";
};
patches = [
"${src}/nix/expose-all.patch"
"${src}/nix/revert-new-cabal-madness.patch"
./fix-cabal-syntax-error.patch
];
};
hpkgs = haskell.packages.${compiler};
pkg = hpkgs.callCabal2nixWithOptions "gf" src "--flag=-server" {};
in haskell.lib.overrideCabal pkg (prev: {
patches = [
"${src}/nix/expose-all.patch"
"${src}/nix/revert-new-cabal-madness.patch"
];
jailbreak = true;
configureFlags = [ "-f" "c-runtime" ];
librarySystemDepends = [ gf-pgf ];
passthru = { inherit gf-pgf; };
})

View File

@@ -0,0 +1,13 @@
diff --git a/src/runtime/haskell-bind/pgf2.cabal b/src/runtime/haskell-bind/pgf2.cabal
index d7a98489e..3ca7e816c 100644
--- a/src/runtime/haskell-bind/pgf2.cabal
+++ b/src/runtime/haskell-bind/pgf2.cabal
@@ -15,7 +15,7 @@ homepage: https://www.grammaticalframework.org/
bug-reports: https://github.com/GrammaticalFramework/gf-core/issues
author: Krasimir Angelov
extra-source-files: CHANGELOG.md, README.md
-tested-with: GHC==7.10.3, GHC==8.0.2, GHC==8.10.4, GHC=9.6.6
+tested-with: GHC==7.10.3, GHC==8.0.2, GHC==8.10.4, GHC==9.6.6
library
exposed-modules:

11
pkgs/gf-pgf/default.nix Normal file
View File

@@ -0,0 +1,11 @@
{ gf-core
, stdenv
, autoreconfHook
}:
stdenv.mkDerivation {
pname = "gf-pgf";
inherit (gf-core) version meta;
src = "${gf-core.src}/src/runtime/c";
nativeBuildInputs = [autoreconfHook ];
}

25
pkgs/gf-rgl/default.nix Normal file
View File

@@ -0,0 +1,25 @@
{ stdenv
, ghc
, gf-core
, fetchFromGitHub
}:
stdenv.mkDerivation (finalAttrs: {
name = "gf-rgl";
version = "20250812";
src = fetchFromGitHub {
owner = "GrammaticalFramework";
repo = "gf-rgl";
tag = finalAttrs.version;
hash = "sha256-rqN5MV/XxChXC+Vs4aLIhRtyPQZNk0LQZ2TCdbd6wUw=";
};
buildInputs = [ ghc gf-core ];
LC_ALL = "C.UTF-8";
buildPhase = ''
runghc Setup.hs build
'';
installPhase = ''
mkdir -p $out/share/gf/lib
runghc Setup.hs copy --dest=$out/share/gf/lib
'';
})

View File

@@ -0,0 +1,22 @@
{ lib
, stdenv
, gf-core
, makeWrapper
, runCommandLocal
}:
packages:
let
opts = {
passthru = {
preferLocalBuild = true;
inherit (gf-core) version meta;
};
};
paths = lib.makeSearchPath "share/gf/lib" packages;
in runCommandLocal "gf-with-rgl" opts ''
. ${makeWrapper}/nix-support/setup-hook
makeWrapper ${gf-core}/bin/gf $out/bin/gf \
--prefix GF_LIB_PATH : ${paths}
''

26
pkgs/gftest/default.nix Normal file
View File

@@ -0,0 +1,26 @@
{ gf-core
, breakpointHook
, fetchFromGitHub
, compiler ? "ghc98"
, haskell
, pgf2-haskell
, gf-pgf
}:
let
src = fetchFromGitHub {
owner = "GrammaticalFramework";
repo = "gftest";
rev = "ef7c99143d84a29fb28bbc464f661566d44a6130";
hash = "sha256-t/LaG5+bdv7f0URcn/aFx6nUIvxSSEbpWeZS92/Gbog=";
};
hpkgs = haskell.packages.${compiler}.extend (final: prev: {
# PGF2, the Haskell bindings to the C library.
pgf2 = pgf2-haskell.override { inherit compiler; };
});
pkg = hpkgs.callCabal2nix "gftest" src {};
in pkg.overrideAttrs (final: prev: {
nativeBuildInputs = (prev.nativeBuildInputs or []) ++ [
breakpointHook
];
})

View File

@@ -0,0 +1,19 @@
{ haskell
, compiler ? "ghc96"
, gf-pgf
, gf-core
, breakpointHook
}:
let
src = "${gf-core.src}/src/runtime/haskell-bind";
hpkgs = haskell.packages.${compiler};
pkg = hpkgs.callCabal2nix "pgf2" src {
# gf-pgf provides both libpgf and libgu.
gu = gf-pgf;
};
in haskell.lib.overrideCabal pkg (prev: {
librarySystemDepends = (prev.librarySystemDepends or []) ++ [
gf-pgf
];
})

View File

@@ -0,0 +1,30 @@
{ stdenv
, ncurses
, fetchFromGitHub
, breakpointHook
}:
stdenv.mkDerivation {
pname = "progressbar";
version = "ac56232";
src = fetchFromGitHub {
owner = "doches";
repo = "progressbar";
rev = "ac56232610abf58cc2db2bc86efc8fcba7dfe8c2";
hash = "sha256-fgVIQAAtL5wSuWhGSKOTmlS2gvigInDqzfpILtGplLM";
};
nativeBuildInputs = [
ncurses.dev
breakpointHook
];
buildInputs = [
ncurses
];
outputs = [ "out" "dev" ];
installPhase = ''
runHook preInstall
install -Dm644 -t $out/lib libprogressbar.{so,a}
install -Dm644 -t $dev/include/progressbar include/progressbar/*.h
runHook postInstall
'';
}

View File

@@ -0,0 +1,162 @@
{
lib,
buildDotnetModule,
cctools,
darwin,
dotnetCorePackages,
fetchFromForgejo,
libX11,
libgdiplus,
moltenvk,
ffmpeg,
openal,
libsoundio,
sndio,
stdenv,
pulseaudio,
vulkan-loader,
glew,
libGL,
libICE,
libSM,
libXcursor,
libXext,
libXi,
libXrandr,
udev,
SDL2,
SDL2_mixer,
gtk3,
wrapGAppsHook3,
}:
buildDotnetModule rec {
pname = "ryubing";
version = "1.3.4";
src = fetchFromForgejo {
domain = "git.ryujinx.app";
owner = "Ryubing";
repo = "Ryujinx";
rev = "433dd58f8ce2fca3df3fa8b20bef7f003fc5a2a9";
hash = "sha256-yLf0NkdZvGNI7bbzx3Qursk3rDy5UUK8nFH9pp3wYm4=";
};
nativeBuildInputs =
lib.optional stdenv.hostPlatform.isLinux [
wrapGAppsHook3
]
++ lib.optional stdenv.hostPlatform.isDarwin [
cctools
darwin.sigtool
];
enableParallelBuilding = false;
dotnet-sdk = dotnetCorePackages.dotnet_10.sdk;
dotnet-runtime = dotnetCorePackages.dotnet_10.runtime;
nugetDeps = ./deps.json;
runtimeDeps = [
libX11
libgdiplus
SDL2_mixer
openal
libsoundio
sndio
vulkan-loader
ffmpeg
# Avalonia UI
glew
libICE
libSM
libXcursor
libXext
libXi
libXrandr
gtk3
# Headless executable
libGL
SDL2
]
++ lib.optional (!stdenv.hostPlatform.isDarwin) [
udev
pulseaudio
]
++ lib.optional stdenv.hostPlatform.isDarwin [ moltenvk ];
projectFile = "Ryujinx.sln";
testProjectFile = "src/Ryujinx.Tests/Ryujinx.Tests.csproj";
# Tests on Darwin currently fail because of Ryujinx.Tests.Unicorn
doCheck = !stdenv.hostPlatform.isDarwin;
dotnetFlags = [
"/p:ExtraDefineConstants=DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR"
];
executables = [
"Ryujinx"
];
makeWrapperArgs = lib.optional stdenv.hostPlatform.isLinux [
# Without this Ryujinx fails to start on wayland. See https://github.com/Ryujinx/Ryujinx/issues/2714
"--set SDL_VIDEODRIVER x11"
];
preInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
# workaround for https://github.com/Ryujinx/Ryujinx/issues/2349
mkdir -p $out/lib/sndio-6
ln -s ${sndio}/lib/libsndio.so $out/lib/sndio-6/libsndio.so.6
'';
preFixup = ''
${lib.optionalString stdenv.hostPlatform.isLinux ''
mkdir -p $out/share/{applications,icons/hicolor/scalable/apps,mime/packages}
pushd ${src}/distribution/linux
install -D ./Ryujinx.desktop $out/share/applications/Ryujinx.desktop
install -D ./Ryujinx.sh $out/bin/Ryujinx.sh
install -D ./mime/Ryujinx.xml $out/share/mime/packages/Ryujinx.xml
install -D ../misc/Logo.svg $out/share/icons/hicolor/scalable/apps/Ryujinx.svg
popd
''}
# Don't make a softlink on OSX because of its case insensitivity
${lib.optionalString (!stdenv.hostPlatform.isDarwin) "ln -s $out/bin/Ryujinx $out/bin/ryujinx"}
'';
passthru.updateScript = ./updater.sh;
meta = {
homepage = "https://ryujinx.app";
changelog = "https://git.ryujinx.app/ryubing/ryujinx/-/wikis/changelog";
description = "Experimental Nintendo Switch Emulator written in C# (community fork of Ryujinx)";
longDescription = ''
Ryujinx is an open-source Nintendo Switch emulator, created by gdkchan,
written in C#. This emulator aims at providing excellent accuracy and
performance, a user-friendly interface and consistent builds. It was
written from scratch and development on the project began in September
2017. The project has since been abandoned on October 1st 2024 and QoL
updates are now managed under a fork.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
jk
artemist
willow
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
mainProgram = "Ryujinx";
};
}

View File

@@ -0,0 +1,793 @@
[
{
"pname": "Avalonia",
"version": "11.3.12",
"hash": "sha256-T2y8aoKUSfXqmV2RL1QStytzJkc/SZYfIdJihB5UWR0="
},
{
"pname": "Avalonia.Angle.Windows.Natives",
"version": "2.1.25547.20250602",
"hash": "sha256-LE/lENAHptmz6t3T/AoJwnhpda+xs7PqriNGzdcfg8M="
},
{
"pname": "Avalonia.BuildServices",
"version": "11.3.2",
"hash": "sha256-6wx06tjSKWQOlX2czdp6Wh0nuwVapx5qf/s8Qj5we40="
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "11.3.10",
"hash": "sha256-d8VTsT6yYAa8uZAodX7SWgf4+izVHrP/hy/pDpT91Wk="
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "11.3.12",
"hash": "sha256-zNpmfOTfw+gKZp8VPpfHe2hjqhrRmExf7lxqLf5OvDg="
},
{
"pname": "Avalonia.Controls.DataGrid",
"version": "11.3.12",
"hash": "sha256-xuAL5FOvonyaY9CwEhjtMnurPcA0lYe0dyLLK0GEzd8="
},
{
"pname": "Avalonia.Desktop",
"version": "11.3.12",
"hash": "sha256-IY6TkpVh0GiCkKbestdwH8KEJ0Embxy+JYe7lww0xBA="
},
{
"pname": "Avalonia.Diagnostics",
"version": "11.3.12",
"hash": "sha256-iDH6DjRKqm4YLXBq2JGg9IkkEGm3Rq1FQWyr/L+VaVA="
},
{
"pname": "Avalonia.FreeDesktop",
"version": "11.3.12",
"hash": "sha256-NTcYVHn13lFQjTNezmpmPGjxsBzryXorK0K6hl4ZZto="
},
{
"pname": "Avalonia.Markup.Xaml.Loader",
"version": "11.3.12",
"hash": "sha256-Ch2G7HQcj50dkr2fw1PhB9SPctUVdnhhKckj42YFykY="
},
{
"pname": "Avalonia.Native",
"version": "11.3.12",
"hash": "sha256-1ujLmYaL1zTgtlsNerBDtTuoaJX7c7HukNLJIalrB4Q="
},
{
"pname": "Avalonia.Remote.Protocol",
"version": "11.3.12",
"hash": "sha256-dF93nP1Cd7ZdzrO7ScGHchxYxCjWN45AjiqiO1J+cmU="
},
{
"pname": "Avalonia.Skia",
"version": "11.3.10",
"hash": "sha256-XJXyK19ow9mvcssdmjPvh8zyh4VExcVEoiIauqPNC5s="
},
{
"pname": "Avalonia.Skia",
"version": "11.3.12",
"hash": "sha256-gRMjH7igRIm22zQV0WxtwFHe8AiMTcaPlR0sC5lJy+w="
},
{
"pname": "Avalonia.Skia",
"version": "11.3.9",
"hash": "sha256-KCL1LNUd2i+50vQpDgfI+aMkIBUWtxExyuc43QIK21o="
},
{
"pname": "Avalonia.Themes.Simple",
"version": "11.3.12",
"hash": "sha256-EIuAcUmoL7/y4lUfdSg120/l/v3zQytC2rfr0b6jKiM="
},
{
"pname": "Avalonia.Win32",
"version": "11.3.12",
"hash": "sha256-haIKvJ1SD17+EUJHILoFJMy+WJJtXr9I+ZYMFtwEuTc="
},
{
"pname": "Avalonia.X11",
"version": "11.3.12",
"hash": "sha256-SEc0GaZTh1eGNFWHT6lGiN6LD0qE+ubTK7Efl0H/Q2w="
},
{
"pname": "CommandLineParser",
"version": "2.9.1",
"hash": "sha256-ApU9y1yX60daSjPk3KYDBeJ7XZByKW8hse9NRZGcjeo="
},
{
"pname": "CommunityToolkit.Mvvm",
"version": "8.4.0",
"hash": "sha256-a0D550q+ffreU9Z+kQPdzJYPNaj1UjgyPofLzUg02ZI="
},
{
"pname": "Concentus",
"version": "2.2.2",
"hash": "sha256-9If4kL72V1evHOz0IONX8ASIy/rAtAm6RhzLzu+BSB8="
},
{
"pname": "csFastFloat",
"version": "4.1.5",
"hash": "sha256-dEbMPu/EmsRodI20P15F38QInil0IPcKE03akYp8tBY="
},
{
"pname": "DiscordRichPresence",
"version": "1.6.1.70",
"hash": "sha256-uXTNIWfZU7Gf/JpXQ5ufKA3SQdXYSkg3yLm5yCrBDd8="
},
{
"pname": "DynamicData",
"version": "9.4.1",
"hash": "sha256-CX4NQj2LTk/8f4xDE5rUVBsqcY74H/1qUHFTrVX+9/0="
},
{
"pname": "ExCSS",
"version": "4.3.1",
"hash": "sha256-nNn5+YEaqKSULhtDsImNEyndU/MHna7VpZNUExmo80o="
},
{
"pname": "FluentAvaloniaUI",
"version": "2.5.0",
"hash": "sha256-AC+IlESkbom+qxp6p/gYjLi5rAIBlbpln2DO2xhhXmc="
},
{
"pname": "FSharp.Core",
"version": "7.0.200",
"hash": "sha256-680VgvYbZbztPQosO17r5y8vxg/Y/4Vmr5K3iLIJKMo="
},
{
"pname": "Gommon",
"version": "2.8.0.1",
"hash": "sha256-c3a/43OJaL1glrsjdlyj9D/ooYpNKpYkn1lMKWxC4uE="
},
{
"pname": "HarfBuzzSharp",
"version": "8.3.1.1",
"hash": "sha256-614yv6bK9ynhdUnvW4wIkgpBe2sqTh28U9cDZzdhPc0="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "8.3.1.1",
"hash": "sha256-sBbez6fc9axVcsBbIHbpQh/MM5NHlMJgSu6FyuZzVyU="
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "8.3.1.1",
"hash": "sha256-hK20KbX2OpewIO5qG5gWw5Ih6GoLcIDgFOqCJIjXR/Q="
},
{
"pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "8.3.1.1",
"hash": "sha256-mLKoLqI47ZHXqTMLwP1UCm7faDptUfQukNvdq6w/xxw="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "8.3.1.1",
"hash": "sha256-Um4iwLdz9XtaDSAsthNZdev6dMiy7OBoHOrorMrMYyo="
},
{
"pname": "Humanizer",
"version": "2.14.1",
"hash": "sha256-1wGwf5KAmDeiH0Dz8KcTdZw+UMkiNsjKOIOt/VJnnqE="
},
{
"pname": "Humanizer.Core",
"version": "2.14.1",
"hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o="
},
{
"pname": "Humanizer.Core.af",
"version": "2.14.1",
"hash": "sha256-8CCgI7OweSa53cZWZBXQ8a7VVt/NPP16zHVBZvzU9KQ="
},
{
"pname": "Humanizer.Core.ar",
"version": "2.14.1",
"hash": "sha256-JRoP+brQgYBZI8OccH/jaM1Z482ZWBiqU2XL3KsIPw8="
},
{
"pname": "Humanizer.Core.az",
"version": "2.14.1",
"hash": "sha256-ubwkbes9zrrisuXTcT4ZgOAiFsUieC6OLd4pgzxsE40="
},
{
"pname": "Humanizer.Core.bg",
"version": "2.14.1",
"hash": "sha256-Xv6DP1xxxGVUfP44TZasWpxgQ/DkriljvmIMtHf+nGk="
},
{
"pname": "Humanizer.Core.bn-BD",
"version": "2.14.1",
"hash": "sha256-6JpReIc3fkExvJIXzk6fUw56wJ78aTEg1dWQ6o+dQow="
},
{
"pname": "Humanizer.Core.cs",
"version": "2.14.1",
"hash": "sha256-MGL86KxSbz0PkDo9+NRj6h1fDjPZXlxAtYNf0Zreg/4="
},
{
"pname": "Humanizer.Core.da",
"version": "2.14.1",
"hash": "sha256-Gpw8kJbgz0KQS2mGY5tmrHqpgUO4abD7dSKIy//ONYM="
},
{
"pname": "Humanizer.Core.de",
"version": "2.14.1",
"hash": "sha256-Eswv8aEQoxI9MZr2CvWtBUn5X9JRZTWQjRzHJkGj80g="
},
{
"pname": "Humanizer.Core.el",
"version": "2.14.1",
"hash": "sha256-wCK2Uy/AV6FxPUSUM0NMbV14pAP+ss25AaVAHMQIeJA="
},
{
"pname": "Humanizer.Core.es",
"version": "2.14.1",
"hash": "sha256-iEHiQXKwg0ABDxh//HSrzwaVOlilQBFI96+GYzzTMwQ="
},
{
"pname": "Humanizer.Core.fa",
"version": "2.14.1",
"hash": "sha256-2Js7k3nvwJvxAjq3yoLn7PUY2S8+vXfgESwU4SbvjaA="
},
{
"pname": "Humanizer.Core.fi-FI",
"version": "2.14.1",
"hash": "sha256-jOWo43r3dhiBsV9cCoDfqK/YqWj5LejZsnfkG6mlkpA="
},
{
"pname": "Humanizer.Core.fr",
"version": "2.14.1",
"hash": "sha256-WCbA+f4B3g/ml7KrkHkzpU2Fj38HtWc/ujoVY5F3lk4="
},
{
"pname": "Humanizer.Core.fr-BE",
"version": "2.14.1",
"hash": "sha256-GydVmoEy+lwEQ1nM39QXSRhYNchqM47p7qhUEimN4Cw="
},
{
"pname": "Humanizer.Core.he",
"version": "2.14.1",
"hash": "sha256-MMf3qjJ+yzxjMxOR7wMWf+eErxWLqpsdWKFhjNCOsyM="
},
{
"pname": "Humanizer.Core.hr",
"version": "2.14.1",
"hash": "sha256-kBv2I9ns6L6D4XfXfyZS1VM6+YwF4yUkCmCA5zqvsok="
},
{
"pname": "Humanizer.Core.hu",
"version": "2.14.1",
"hash": "sha256-vRje+kxqOsl1JCXAE0yDKvauUumzuEhNcnhNsdIdgVM="
},
{
"pname": "Humanizer.Core.hy",
"version": "2.14.1",
"hash": "sha256-UL7PsK4msT5c96lk70/bVAxN63B71l8VOFtvuJQH9a0="
},
{
"pname": "Humanizer.Core.id",
"version": "2.14.1",
"hash": "sha256-nIl64gCuZh4D527qI2hfQRvzt1mTJUCDGMIZwpS3C/A="
},
{
"pname": "Humanizer.Core.is",
"version": "2.14.1",
"hash": "sha256-38vUQ1aVtlhK15kP9ZlDO0Nl0DcOA5iHx6F2SPN1gYM="
},
{
"pname": "Humanizer.Core.it",
"version": "2.14.1",
"hash": "sha256-4ne0VRNi9OAj3bGCQgCy1BNYKMizoHykJ/lchmCsWdc="
},
{
"pname": "Humanizer.Core.ja",
"version": "2.14.1",
"hash": "sha256-oAilMM8J6LumV6qv3gSIBNTm7u2L4vV38cQXtME3PhM="
},
{
"pname": "Humanizer.Core.ko-KR",
"version": "2.14.1",
"hash": "sha256-b70HQl2IWVPATtaYGDyJ+Z6ioPtrM53vXzfTCHYgxpQ="
},
{
"pname": "Humanizer.Core.ku",
"version": "2.14.1",
"hash": "sha256-8LiEH7MaapMtkHFMj7Y3pG+g0QYuIa5gD3VR9nYQn+k="
},
{
"pname": "Humanizer.Core.lv",
"version": "2.14.1",
"hash": "sha256-zyCsE5cD++u5shNIqCQUd+66FkUWOl+NfFrs2JduCaQ="
},
{
"pname": "Humanizer.Core.ms-MY",
"version": "2.14.1",
"hash": "sha256-pSdZLUi9oWo78nBh2DJunPhDR7THdZSZP0msCVbPsrY="
},
{
"pname": "Humanizer.Core.mt",
"version": "2.14.1",
"hash": "sha256-mkX2reEvNpx9w6gtZw+6bkrnj3Di1qgVDMr9q0IeKCw="
},
{
"pname": "Humanizer.Core.nb",
"version": "2.14.1",
"hash": "sha256-QvYJHqjO/SrelWYgtm8Sc7axs7J8wbJE+GbTgVw5LYs="
},
{
"pname": "Humanizer.Core.nb-NO",
"version": "2.14.1",
"hash": "sha256-YW8y2XkmHjwqf2fztNB3rsn3+CgslF1TclITwp0fA9g="
},
{
"pname": "Humanizer.Core.nl",
"version": "2.14.1",
"hash": "sha256-bQM7aXNQMBY+65NfMVQz/xYz9Ad2JC+ryXoB4lcYgmA="
},
{
"pname": "Humanizer.Core.pl",
"version": "2.14.1",
"hash": "sha256-IrPxHI4uQvBeMM9/8PaNueKwVkbN+1zFQlNWRjNfXEA="
},
{
"pname": "Humanizer.Core.pt",
"version": "2.14.1",
"hash": "sha256-XrlC15HNJFmDwLpHIUHb3Bec9A79msQCRB9Dvz8w4l0="
},
{
"pname": "Humanizer.Core.ro",
"version": "2.14.1",
"hash": "sha256-llXtfq4Tr5V2Q4dVD7J0IKITtpiWrFs50DAtJhcSuRI="
},
{
"pname": "Humanizer.Core.ru",
"version": "2.14.1",
"hash": "sha256-lD0dB3mkbFfGExwVWZk6fv24MyQQ8Cdv5OrleuZeChg="
},
{
"pname": "Humanizer.Core.sk",
"version": "2.14.1",
"hash": "sha256-EmyE+wssZwY6tAuEiFXGn5/yzVMZe7QEuTjOcByOXaA="
},
{
"pname": "Humanizer.Core.sl",
"version": "2.14.1",
"hash": "sha256-sWWxh7KZ8Y3Ps6GbBOHbU2GMsNZfkM+BOnUChf3fz4s="
},
{
"pname": "Humanizer.Core.sr",
"version": "2.14.1",
"hash": "sha256-/bA3LULRFn5WYmCscr5R5vaFRjeHC0xjNiF7PXEJ8r0="
},
{
"pname": "Humanizer.Core.sr-Latn",
"version": "2.14.1",
"hash": "sha256-43+o6oj0UNRJKiFoh57MGPSzlsWAq0eRtzlCrewDmVM="
},
{
"pname": "Humanizer.Core.sv",
"version": "2.14.1",
"hash": "sha256-9lXrHveKDs1y/W3Qxd+MVcohhKEU7zNPx21GBVPp/rA="
},
{
"pname": "Humanizer.Core.th-TH",
"version": "2.14.1",
"hash": "sha256-ldCsXINSvL2xom0SCtVQy+qX1IN5//EUoyIOwXiJ3k8="
},
{
"pname": "Humanizer.Core.tr",
"version": "2.14.1",
"hash": "sha256-VZnO1vMXiR7egKEKJ6lBsj7eNgxhFzakFWsYYRW4u2U="
},
{
"pname": "Humanizer.Core.uk",
"version": "2.14.1",
"hash": "sha256-rdvleUrKbj3c06A0O2MkgAZLtXLro9SPB1YqAGE1Vyg="
},
{
"pname": "Humanizer.Core.uz-Cyrl-UZ",
"version": "2.14.1",
"hash": "sha256-Qso1Iz9MTLs63x4F00kK31TZAN4AoFaFsuVzM+1z38k="
},
{
"pname": "Humanizer.Core.uz-Latn-UZ",
"version": "2.14.1",
"hash": "sha256-sVnkZTuEaHfMJIAZmSCqsspnKkYxK9eVBQZnAAqHNW4="
},
{
"pname": "Humanizer.Core.vi",
"version": "2.14.1",
"hash": "sha256-5wDt72+HdNN3mt/iJkxV9LaH13Jc1qr1vB4Lz8ahIPs="
},
{
"pname": "Humanizer.Core.zh-CN",
"version": "2.14.1",
"hash": "sha256-Z3qfFWyovcVT4Hqy51lgW2xGwyfI//Yfv90E0Liy1sw="
},
{
"pname": "Humanizer.Core.zh-Hans",
"version": "2.14.1",
"hash": "sha256-BTGkMEkQYJKRp858EU7hwNOdsHRT+w6vAMa6H8JIyX4="
},
{
"pname": "Humanizer.Core.zh-Hant",
"version": "2.14.1",
"hash": "sha256-N3D1z5aoGwAZ6+ZxrWMtXgacvQcgDG+aLrQQI9uysmM="
},
{
"pname": "MicroCom.Runtime",
"version": "0.11.0",
"hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="
},
{
"pname": "Microsoft.CodeAnalysis.Analyzers",
"version": "3.3.4",
"hash": "sha256-qDzTfZBSCvAUu9gzq2k+LOvh6/eRvJ9++VCNck/ZpnE="
},
{
"pname": "Microsoft.CodeAnalysis.Common",
"version": "4.9.2",
"hash": "sha256-QU/nyiJWpdPQGHBdaOEVc+AghnGHcKBFBX0oyhRZ9CQ="
},
{
"pname": "Microsoft.CodeAnalysis.CSharp",
"version": "4.9.2",
"hash": "sha256-j06Q4A9E65075SBXdXVCMRgeLxA63Rv1vxarydmmVAA="
},
{
"pname": "Microsoft.CodeCoverage",
"version": "17.9.0",
"hash": "sha256-OaGa4+jRPHs+T+p/oekm2Miluqfd2IX8Rt+BmUx8kr4="
},
{
"pname": "Microsoft.DotNet.PlatformAbstractions",
"version": "3.1.6",
"hash": "sha256-RfM2qXiqdiamPkXr4IDkNc0IZSF9iTZv4uou/E7zNS0="
},
{
"pname": "Microsoft.Extensions.DependencyModel",
"version": "8.0.0",
"hash": "sha256-qkCdwemqdZY/yIW5Xmh7Exv74XuE39T8aHGHCofoVgo="
},
{
"pname": "Microsoft.IdentityModel.Abstractions",
"version": "8.3.0",
"hash": "sha256-LSZ91DbPswCWibHNSGWC3Jh3KQwAthVaU3r7XQJyutM="
},
{
"pname": "Microsoft.IdentityModel.JsonWebTokens",
"version": "8.3.0",
"hash": "sha256-Hiiv10LSOMIt7KsQSsteJV4DFkLebHMYmoISn/pl2F8="
},
{
"pname": "Microsoft.IdentityModel.Logging",
"version": "8.3.0",
"hash": "sha256-0P14ilpV+9yp+nqZWI/ilkTnRas4pic8NjNVcYxuXWs="
},
{
"pname": "Microsoft.IdentityModel.Tokens",
"version": "8.3.0",
"hash": "sha256-+TzBeZH2Tgs0EMoU5QuCdOD/5V8xM7MHClX578AUIxw="
},
{
"pname": "Microsoft.IO.RecyclableMemoryStream",
"version": "3.0.1",
"hash": "sha256-unFg/5EcU/XKJbob4GtQC43Ydgi5VjeBGs7hfhj4EYo="
},
{
"pname": "Microsoft.NET.Test.Sdk",
"version": "17.9.0",
"hash": "sha256-q/1AJ7eNlk02wvN76qvjl2xBx5iJ+h5ssiE/4akLmtI="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
},
{
"pname": "Microsoft.TestPlatform.ObjectModel",
"version": "17.9.0",
"hash": "sha256-iiXUFzpvT8OWdzMj9FGJDqanwHx40s1TXVY9l3ii+s0="
},
{
"pname": "Microsoft.TestPlatform.TestHost",
"version": "17.9.0",
"hash": "sha256-1BZIY1z+C9TROgdTV/tq4zsPy7Q71GQksr/LoMKAzqU="
},
{
"pname": "MsgPack.Cli",
"version": "1.0.1",
"hash": "sha256-Gf0Ed9XHH4oFpJIkzhg/xhDVpenunSol65qa8IZeYrY="
},
{
"pname": "NetCoreServer",
"version": "8.0.7",
"hash": "sha256-RUYic8uAgJGdhUCrMJQULKlHB6xvw9H1lnNGU1axNZw="
},
{
"pname": "NETStandard.Library",
"version": "2.0.0",
"hash": "sha256-Pp7fRylai8JrE1O+9TGfIEJrAOmnWTJRLWE+qJBahK0="
},
{
"pname": "NETStandard.Library",
"version": "2.0.3",
"hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo="
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.1",
"hash": "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo="
},
{
"pname": "NUnit",
"version": "3.13.3",
"hash": "sha256-Zn+sJIF7ieNqu/t2RwJx6WPFb1jl9UuNHidb/Px0v3E="
},
{
"pname": "NUnit3TestAdapter",
"version": "4.1.0",
"hash": "sha256-nDPiYdTFulqozEJrujr8/cqjG7m15Vkd/Frqem0Jr/w="
},
{
"pname": "Open.NAT.Core",
"version": "2.1.0.5",
"hash": "sha256-LqG5L2APr11142fsZPQ3clk3tJfAYBMXi1rP0EM9zDg="
},
{
"pname": "OpenTK.Audio.OpenAL",
"version": "4.8.2",
"hash": "sha256-i5KRiTYTNMB4Y5Qd5xewaYrb9sBbnXMDu2QXbM3RCeU="
},
{
"pname": "OpenTK.Core",
"version": "4.8.2",
"hash": "sha256-59S4Vj13y8HtZT6RZTwO6ZZbk1GUNDcYx1rMdv5jr4I="
},
{
"pname": "OpenTK.Graphics",
"version": "4.8.2",
"hash": "sha256-DNpXqtM9Oj6wDGYSF2FD4A4ueWG892Wk6uGWffNspo0="
},
{
"pname": "OpenTK.Mathematics",
"version": "4.8.2",
"hash": "sha256-TPsts443n6iEajfH2EuYTKtubrWuTLiCrTB1F4FndIo="
},
{
"pname": "OpenTK.redist.glfw",
"version": "3.3.8.39",
"hash": "sha256-bg8bGfoDDqmZ/efLFVm8l5etQajIVvOcQ/Nv+yKD4Bc="
},
{
"pname": "OpenTK.Windowing.GraphicsLibraryFramework",
"version": "4.8.2",
"hash": "sha256-a1MGtU+27pBNns55g8mOsxXpZxfEr6M62zLkIkkJTIY="
},
{
"pname": "ppy.SDL3-CS",
"version": "2026.320.0",
"hash": "sha256-dK58LuY8DQgw3Wfnj/HPup7Hxa9r2QvT/GBJbpUQ874="
},
{
"pname": "Projektanker.Icons.Avalonia",
"version": "9.6.2",
"hash": "sha256-BMbZQ2Hj80Yxcx8mNZ8+A4fxyB/Sa0QhFX5gC6jAueA="
},
{
"pname": "Projektanker.Icons.Avalonia.FontAwesome",
"version": "9.6.2",
"hash": "sha256-GumFdzG2GPCxfAU47Qk8a0RI4IlSzSTmRFMJ5ZVFvDg="
},
{
"pname": "Projektanker.Icons.Avalonia.MaterialDesign",
"version": "9.6.2",
"hash": "sha256-CG4VZDafywR278XwZTosm0sYzJyQ6AGHEQiIDB9y81I="
},
{
"pname": "Ryujinx.Audio.OpenAL.Dependencies",
"version": "1.21.0.1",
"hash": "sha256-NHGzMcYduuYJjduIlf8M8zSQQuJcXAEaMNmKIqAgs3w="
},
{
"pname": "Ryujinx.Graphics.Nvdec.Dependencies.AllArch",
"version": "6.1.2-build3",
"hash": "sha256-Glhvv00ZbrbB+Z4PMSTsmiP14HZDonp611s1gXGuyqI="
},
{
"pname": "Ryujinx.Graphics.Vulkan.Dependencies.MoltenVK",
"version": "1.2.0",
"hash": "sha256-vdDw6YGoyQzv6ustyXP6v7YWUIKEXaZOyUKAaVbRauI="
},
{
"pname": "Ryujinx.LibHac",
"version": "0.21.0-alpha.129",
"hash": "sha256-vwpjCsMZayUAzaydzcO9ktEzNIYEmDpQbhswGx8O7no=",
"url": "https://git.ryujinx.app/api/packages/projects/nuget/package/ryujinx.libhac/0.21.0-alpha.129/ryujinx.libhac.0.21.0-alpha.129.nupkg"
},
{
"pname": "Ryujinx.Systems.Update.Common",
"version": "2.0.6",
"hash": "sha256-2btWQmCwqJSxISN3N7HdRCbkfSAs4Ph+o8hT+GlySYk="
},
{
"pname": "Ryujinx.UpdateClient",
"version": "1.0.44",
"hash": "sha256-4lKA2mscjyiJZAQf0ixAdVmwzDWog+CTGIftOmC0xnk="
},
{
"pname": "securifybv.PropertyStore",
"version": "0.1.0",
"hash": "sha256-jTPT9E2LyElgJq4HMavkdwT8tA9uklnJv00mlIx66+g="
},
{
"pname": "securifybv.ShellLink",
"version": "0.1.0",
"hash": "sha256-Am+ZednCVJUDgB7TePyY3CTxKDQ6Lr8M8KiCVAJoouw="
},
{
"pname": "Sep",
"version": "0.11.1",
"hash": "sha256-GkDWF51QOIKUu55By5ya471KrwXvQbm98DOo/zV0Bew="
},
{
"pname": "shaderc.net",
"version": "0.1.0",
"hash": "sha256-+K7ObC9ucilwWY+Tlf9KcrAVoTFS65V6Di7JDWDSZTg="
},
{
"pname": "SharpCompress",
"version": "0.47.4",
"hash": "sha256-mH0R+al2GUomIYkieYudTmF1mAnIUiifQPTp13eUFg8="
},
{
"pname": "ShimSkiaSharp",
"version": "3.6.0",
"hash": "sha256-73Z5rWOt8MFXAvR1FmN8jIoZKNJafKpR75FyqqoS0gE="
},
{
"pname": "Silk.NET.Core",
"version": "2.22.0",
"hash": "sha256-1aBiBwifLel9aaGI97gxbvID/XKbFm1dpVv2zm0NSEc="
},
{
"pname": "Silk.NET.Vulkan",
"version": "2.22.0",
"hash": "sha256-TxCjv6Q35PrJTs0SkiE1srJNZf1yh9k98Gfx8DWSWjY="
},
{
"pname": "Silk.NET.Vulkan.Extensions.EXT",
"version": "2.22.0",
"hash": "sha256-spbTFm5wHbVZqMNvAih6wexeZs61B8kbX4sKYSe5Syk="
},
{
"pname": "Silk.NET.Vulkan.Extensions.KHR",
"version": "2.22.0",
"hash": "sha256-aXgS8UxYlfBIrxmoAOuy6Z3NZuV+ruSibQPvLO1wL/U="
},
{
"pname": "SkiaSharp",
"version": "2.88.9",
"hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24="
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.9",
"hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A="
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "2.88.9",
"hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g="
},
{
"pname": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.9",
"hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY="
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "2.88.9",
"hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="
},
{
"pname": "SPB",
"version": "0.0.4-build32",
"hash": "sha256-GUzbV5rLWtXTpiddYrKnWWLujG38vBDCO4xRStwAaDo="
},
{
"pname": "Svg.Controls.Avalonia",
"version": "11.3.9.4",
"hash": "sha256-VtT78D+HNZfwetSzYG+oDhzl4EZYcIlcq+59mPqyIGk="
},
{
"pname": "Svg.Controls.Skia.Avalonia",
"version": "11.3.9.4",
"hash": "sha256-q9mixdAKtgxHS+//lfD1kgOhcKs9sNoqs6OnT3WBte8="
},
{
"pname": "Svg.Custom",
"version": "3.6.0",
"hash": "sha256-caId1MZbsDR5kZYxiVUZfZJl6FLt1RbqSA46YZ2EXA4="
},
{
"pname": "Svg.Model",
"version": "3.6.0",
"hash": "sha256-iQMvX6UUu5REzUHBrPQcAVXP8KEzz8b5lratPaIEjbc="
},
{
"pname": "Svg.Skia",
"version": "3.6.0",
"hash": "sha256-USVPjpvV3FoMLoThAqz53IscTKw4oVIAyDkdo03Z6Do="
},
{
"pname": "System.Buffers",
"version": "4.5.1",
"hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI="
},
{
"pname": "System.CodeDom",
"version": "4.4.0",
"hash": "sha256-L1xyspJ8pDJNVPYKl+FMGf4Zwm0tlqtAyQCNW6pT6/0="
},
{
"pname": "System.Collections.Immutable",
"version": "8.0.0",
"hash": "sha256-F7OVjKNwpqbUh8lTidbqJWYi476nsq9n+6k0+QVRo3w="
},
{
"pname": "System.IO.Hashing",
"version": "9.0.2",
"hash": "sha256-CI1z3rCDA2XnYE7hA1Hh6+rPkdIRAcswCXu/Pbaavck="
},
{
"pname": "System.Memory",
"version": "4.5.5",
"hash": "sha256-EPQ9o1Kin7KzGI5O3U3PUQAZTItSbk9h/i4rViN3WiI="
},
{
"pname": "System.Numerics.Vectors",
"version": "4.4.0",
"hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U="
},
{
"pname": "System.Reactive",
"version": "6.0.1",
"hash": "sha256-Lo5UMqp8DsbVSUxa2UpClR1GoYzqQQcSxkfyFqB/d4Q="
},
{
"pname": "System.Reflection.Metadata",
"version": "8.0.0",
"hash": "sha256-dQGC30JauIDWNWXMrSNOJncVa1umR1sijazYwUDdSIE="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "4.5.3",
"hash": "sha256-lnZMUqRO4RYRUeSO8HSJ9yBHqFHLVbmenwHWkIU20ak="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "6.0.0",
"hash": "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I="
},
{
"pname": "System.Text.Encoding.CodePages",
"version": "8.0.0",
"hash": "sha256-fjCLQc1PRW0Ix5IZldg0XKv+J1DqPSfu9pjMyNBp7dE="
},
{
"pname": "System.Threading.Tasks.Extensions",
"version": "4.5.4",
"hash": "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.21.2",
"hash": "sha256-gaK/5aAummyin6ptnhaJbnA0ih4+2xADrtrLfFbHwYI="
},
{
"pname": "UnicornEngine.Unicorn",
"version": "2.0.2-rc1-fb78016",
"hash": "sha256-NrJ4/o4FmCt2zoB1fWAzqdonvpYhTFsWwh3h0lxZg+Q="
}
]

37
pkgs/ryubing-canary/updater.sh Executable file
View File

@@ -0,0 +1,37 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p coreutils gnused curl common-updater-scripts nix-prefetch-git jq
# shellcheck shell=bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
# If NEW_VERSION or COMMIT are not set, fetch the latest version
if [ -z ${NEW_VERSION+x} ] && [ -z ${COMMIT+x} ]; then
RELEASE_DATA=$(curl -s "https://git.ryujinx.app/api/v4/projects/1/repository/tags?order_by=updated&sort=desc")
if [ -z "$RELEASE_DATA" ] || [[ $RELEASE_DATA =~ "imposed ratelimits" ]]; then
echo "failed to get release job data" >&2
exit 1
fi
NEW_VERSION=$(echo "$RELEASE_DATA" | jq -r '[.[] | select(.name | startswith("Canary") | not)][0].name')
fi
OLD_VERSION="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./package.nix)"
echo "comparing versions $OLD_VERSION -> $NEW_VERSION"
if [[ "$OLD_VERSION" == "$NEW_VERSION" ]]; then
echo "Already up to date!"
if [[ "${1-default}" != "--deps-only" ]]; then
exit 0
fi
fi
cd ../../../..
if [[ "${1-default}" != "--deps-only" ]]; then
SHA="$(nix-prefetch-git https://git.ryujinx.app/ryubing/ryujinx --rev "$NEW_VERSION" --quiet | jq -r '.sha256')"
SRI=$(nix --experimental-features nix-command hash to-sri "sha256:$SHA")
# update-source-version ryubing-canary "$NEW_VERSION" "$SRI"
fi
echo "building Nuget lockfile"
eval "$(nix-build -A ryubing-canary.fetch-deps --no-out-link)"