{ lib, stdenv, fetchFromGitHub, yarn-berry_4, nodejs, meson, ninja, blueprint-compiler, gtksourceview5, wrapGAppsHook4, desktop-file-utils, pkg-config, writableTmpDirAsHomeHook, gjs, libadwaita, nix-update-script, }: let yarn-berry = yarn-berry_4; in stdenv.mkDerivation (finalAttrs: { pname = "learn6502"; version = "0.3.0"; src = fetchFromGitHub { owner = "JumpLink"; repo = "Learn6502"; tag = "v${finalAttrs.version}"; hash = "sha256-Aoj4Z9uraBEH3BW0hrhuV3Hu7cnRxvjbpzm4pUziWS4="; }; missingHashes = ./missing-hashes.json; offlineCache = yarn-berry.fetchYarnBerryDeps { inherit (finalAttrs) src missingHashes; hash = "sha256-0r+SRVx8b238SVm+XM4+uw7Ge3rFtsNwD/+uNfBA7eM="; }; nativeBuildInputs = [ nodejs yarn-berry.yarnBerryConfigHook meson ninja blueprint-compiler wrapGAppsHook4 desktop-file-utils pkg-config writableTmpDirAsHomeHook gjs # gjs-console ]; buildInputs = [ gjs gtksourceview5 libadwaita ]; strictDeps = true; # yarnBerryConfigHook needs to run in the yarn.lock directory postConfigure = '' pushd .. ''; # meson needs to enter the subdirectory preBuild = '' popd ''; passthru.updateScript = nix-update-script { }; meta = { description = "Modern 6502 Assembly Learning Environment for GNOME"; homepage = "https://github.com/JumpLink/Learn6502"; mainProgram = "eu.jumplink.Learn6502"; license = lib.licenses.gpl3Plus; platforms = lib.platforms.linux; maintainers = [ ]; }; })