diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ea1ddd46e243..ca662723c5d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -85,7 +85,9 @@ jobs: - name: Build NixOS manual if: | contains(matrix.builds, 'manual-nixos') && !cancelled() && - contains(fromJSON(inputs.baseBranch).type, 'primary') + (contains(fromJSON(inputs.baseBranch).type, 'primary') + || startsWith(fromJSON(inputs.baseBranch).branch, 'staging-nixos') + ) run: nix-build-uncached nixpkgs/untrusted/ci --arg nixpkgs ./nixpkgs/untrusted-pinned -A manual-nixos --out-link nixos-manual - name: Build Nixpkgs manual diff --git a/pkgs/by-name/al/albyhub/ldk-node-go/default.nix b/pkgs/by-name/al/albyhub/ldk-node-go/default.nix index 59e554be917e..6e0330a0257e 100644 --- a/pkgs/by-name/al/albyhub/ldk-node-go/default.nix +++ b/pkgs/by-name/al/albyhub/ldk-node-go/default.nix @@ -7,13 +7,13 @@ buildGoModule { pname = "ldk-node-go"; - version = "0-unstable-2026-02-10"; + version = "0-unstable-2026-04-24"; src = fetchFromGitHub { owner = "getAlby"; repo = "ldk-node-go"; - rev = "f4fc565783308dd4835ba1473a17f25162db9c36"; - hash = "sha256-jemAzRuZU9aQpENwWtvyGAh9EJUgeb1f1SCx/FpOOPc="; + rev = "3690cdb3031c75f0ee0a67222c2db3c69fea8f2c"; + hash = "sha256-OlJGHhal5fkR0r0FtsVbG1aILZSTLsSRcqrZ84pIRLU="; }; vendorHash = null; diff --git a/pkgs/by-name/al/albyhub/ldk-node/default.nix b/pkgs/by-name/al/albyhub/ldk-node/default.nix index 0199297e2e3f..938f86f2b66a 100644 --- a/pkgs/by-name/al/albyhub/ldk-node/default.nix +++ b/pkgs/by-name/al/albyhub/ldk-node/default.nix @@ -8,13 +8,13 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "ldk-node"; - version = "0-unstable-2026-02-10"; + version = "0-unstable-2026-04-24"; src = fetchFromGitHub { owner = "getAlby"; repo = "ldk-node"; - rev = "3996cf18b10545f54c377212e155bb6bd664888e"; - hash = "sha256-mjIs7CeTRQ7Xuk9V/6LeXMDRZsd/wljeFHZ2vgEe1hg="; + rev = "6d5546ec5fff10d4e560188cfcff6f294944c16e"; + hash = "sha256-k3AZ1k/hV4Bh+RfOqmpo22wRQ5sdDaFR4bcnw58iwNI="; }; buildFeatures = [ "uniffi" ]; diff --git a/pkgs/by-name/al/albyhub/package.nix b/pkgs/by-name/al/albyhub/package.nix index 7125bdbc883f..7eb309745360 100644 --- a/pkgs/by-name/al/albyhub/package.nix +++ b/pkgs/by-name/al/albyhub/package.nix @@ -21,16 +21,16 @@ in buildGoModule (finalAttrs: { pname = "albyhub"; - version = "1.21.6"; + version = "1.22.2"; src = fetchFromGitHub { owner = "getAlby"; repo = "hub"; tag = "v${finalAttrs.version}"; - hash = "sha256-xjFEou+mDtEf7079en5ypoU5P0tf+looeHZS4j1jKzg="; + hash = "sha256-xP/J9zdh4sZ1x+JUpOf12ft8f2II2Mn1Q7/gnMuFzy8="; }; - vendorHash = "sha256-NJeIEFc8oc5rMWAuvrgsnOi3j779mhwMKSALswRy+nE="; + vendorHash = "sha256-nzdHXY14o4D8NrcXu2JvDagvIfemfVAaGU3IDifhyW0="; proxyVendor = true; # needed for secp256k1-zkp CGO bindings nativeBuildInputs = [ @@ -47,7 +47,7 @@ buildGoModule (finalAttrs: { frontendYarnOfflineCache = fetchYarnDeps { yarnLock = finalAttrs.src + "/frontend/yarn.lock"; - hash = "sha256-wdKm8Zk2iAPvH+EbQxvznctkqHgx8xl/Im37vHmHnoA="; + hash = "sha256-BeuTBLJ/Iakd4jhIkI2+oHc4MFy6DSn8QcygTHEMmQo="; }; preBuild = '' diff --git a/pkgs/by-name/ce/cell/package.nix b/pkgs/by-name/ce/cell/package.nix new file mode 100644 index 000000000000..191570862f2b --- /dev/null +++ b/pkgs/by-name/ce/cell/package.nix @@ -0,0 +1,36 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + versionCheckHook, + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "cell"; + version = "0.5.0"; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "garritfra"; + repo = "cell"; + tag = "v${finalAttrs.version}"; + hash = "sha256-J13D46ttG7KlePyFZYxqjaMF7ZR5m3nTJ8/GLm4VH5o="; + }; + + cargoHash = "sha256-ZQXyt/hL6wamGrFvmrShoUCTSGAo8V5CuejAzO5oCuU="; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Fast terminal spreadsheet editor with Vim keybindings"; + homepage = "https://github.com/garritfra/cell"; + changelog = "https://github.com/garritfra/cell/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ airrnot ]; + mainProgram = "cell"; + }; +}) diff --git a/pkgs/by-name/fl/fladder/package.nix b/pkgs/by-name/fl/fladder/package.nix index f5fd73a3a53e..60b60a7ee6a7 100644 --- a/pkgs/by-name/fl/fladder/package.nix +++ b/pkgs/by-name/fl/fladder/package.nix @@ -1,9 +1,13 @@ { lib, + stdenv, + fetchurl, fetchFromGitHub, flutter335, copyDesktopItems, makeDesktopItem, + undmg, + makeBinaryWrapper, alsa-lib, libdisplay-info, @@ -18,82 +22,114 @@ let flutter = flutter335; -in + sourceBuild = flutter.buildFlutterApplication (finalAttrs: { + pname = "fladder"; + version = "0.10.3"; -flutter.buildFlutterApplication (finalAttrs: { - pname = "fladder"; - version = "0.10.3"; + src = fetchFromGitHub { + owner = "DonutWare"; + repo = "Fladder"; + tag = "v${finalAttrs.version}"; + hash = "sha256-0eFHylRi2UVaKRG7K3tDZVscgoiL5xFrtFhZiJxj4Mk="; + }; - src = fetchFromGitHub { - owner = "DonutWare"; - repo = "Fladder"; - tag = "v${finalAttrs.version}"; - hash = "sha256-0eFHylRi2UVaKRG7K3tDZVscgoiL5xFrtFhZiJxj4Mk="; - }; + inherit targetFlutterPlatform; - inherit targetFlutterPlatform; + pubspecLock = lib.importJSON ./pubspec.lock.json; - pubspecLock = lib.importJSON ./pubspec.lock.json; + gitHashes = lib.importJSON ./git-hashes.json; - gitHashes = lib.importJSON ./git-hashes.json; + nativeBuildInputs = lib.optionals (targetFlutterPlatform == "linux") [ + copyDesktopItems + ]; - nativeBuildInputs = lib.optionals (targetFlutterPlatform == "linux") [ - copyDesktopItems - ]; + buildInputs = [ + alsa-lib + libdisplay-info + mpv-unwrapped + libxpresent + libxscrnsaver + ] + ++ lib.optionals (targetFlutterPlatform == "linux") [ + libepoxy + ]; - buildInputs = [ - alsa-lib - libdisplay-info - mpv-unwrapped - libxpresent - libxscrnsaver - ] - ++ lib.optionals (targetFlutterPlatform == "linux") [ - libepoxy - ]; + postInstall = + lib.optionalString (targetFlutterPlatform == "web") ( + '' + sed -i 's;base href="/";base href="$out";' $out/index.html + '' + + lib.optionalString (baseUrl != null) '' + echo '{"baseUrl": "${baseUrl}"}' > $out/assets/config/config.json + '' + ) + + lib.optionalString (targetFlutterPlatform == "linux") '' + # Install SVG icon + install -Dm644 icons/fladder_icon.svg \ + $out/share/icons/hicolor/scalable/apps/fladder.svg + ''; - postInstall = - lib.optionalString (targetFlutterPlatform == "web") ( - '' - sed -i 's;base href="/";base href="$out";' $out/index.html - '' - + lib.optionalString (baseUrl != null) '' - echo '{"baseUrl": "${baseUrl}"}' > $out/assets/config/config.json - '' - ) - + lib.optionalString (targetFlutterPlatform == "linux") '' - # Install SVG icon - install -Dm644 icons/fladder_icon.svg \ - $out/share/icons/hicolor/scalable/apps/fladder.svg + desktopItems = lib.optionals (targetFlutterPlatform == "linux") [ + (makeDesktopItem { + name = "fladder"; + desktopName = "Fladder"; + genericName = "Jellyfin Client"; + exec = "Fladder"; + icon = "fladder"; + comment = "Simple Jellyfin Frontend built on top of Flutter"; + categories = [ + "AudioVideo" + "Video" + "Player" + ]; + }) + ]; + + passthru.updateScript = ./update.sh; + + meta = { + description = "Simple Jellyfin Frontend built on top of Flutter"; + homepage = "https://github.com/DonutWare/Fladder"; + downloadPage = "https://github.com/DonutWare/Fladder/releases"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ + ratcornu + schembriaiden + ]; + mainProgram = "Fladder"; + }; + }); + + darwin = stdenv.mkDerivation { + pname = sourceBuild.pname; + inherit (sourceBuild) version; + + src = fetchurl { + url = "https://github.com/DonutWare/Fladder/releases/download/v${sourceBuild.version}/Fladder-macOS-${sourceBuild.version}.dmg"; + hash = "sha256-Vnz0jtmDptcrehE7DrgyTzFJJopirsLaO+lu1V/Xd+o="; + }; + + nativeBuildInputs = [ + undmg + makeBinaryWrapper + ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + mkdir -p $out/Applications + cp -r Fladder.app $out/Applications + makeBinaryWrapper $out/Applications/Fladder.app/Contents/MacOS/Fladder $out/bin/Fladder + + runHook postInstall ''; - desktopItems = lib.optionals (targetFlutterPlatform == "linux") [ - (makeDesktopItem { - name = "fladder"; - desktopName = "Fladder"; - genericName = "Jellyfin Client"; - exec = "Fladder"; - icon = "fladder"; - comment = "Simple Jellyfin Frontend built on top of Flutter"; - categories = [ - "AudioVideo" - "Video" - "Player" - ]; - }) - ]; - - passthru.updateScript = ./update.sh; - - meta = { - description = "Simple Jellyfin Frontend built on top of Flutter"; - homepage = "https://github.com/DonutWare/Fladder"; - downloadPage = "https://github.com/DonutWare/Fladder/releases"; - license = lib.licenses.gpl3Only; - maintainers = with lib.maintainers; [ - ratcornu - schembriaiden - ]; - mainProgram = "Fladder"; + meta = sourceBuild.meta // { + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + platforms = lib.platforms.darwin; + }; }; -}) +in +if stdenv.hostPlatform.isDarwin then darwin else sourceBuild diff --git a/pkgs/by-name/lc/lcevcdec/package.nix b/pkgs/by-name/lc/lcevcdec/package.nix index 29cc69d434e3..b8c91741953b 100644 --- a/pkgs/by-name/lc/lcevcdec/package.nix +++ b/pkgs/by-name/lc/lcevcdec/package.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "lcevcdec"; - version = "4.0.5"; + version = "4.1.0"; outputs = [ "out" @@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "v-novaltd"; repo = "LCEVCdec"; tag = finalAttrs.version; - hash = "sha256-Ib+2B9o9XUbiEqlP43jKYzvY2pzsFRaS/ZjMn1YgvHE="; + hash = "sha256-QzejWq0XGPLu+YVNetfbzczNuZ6Gp5QJP5G2RZUan6M="; }; postPatch = '' diff --git a/pkgs/by-name/r2/r2modman/missing-hashes.json b/pkgs/by-name/r2/r2modman/missing-hashes.json index 177a3a8b249c..06ea5077f7b0 100644 --- a/pkgs/by-name/r2/r2modman/missing-hashes.json +++ b/pkgs/by-name/r2/r2modman/missing-hashes.json @@ -79,7 +79,6 @@ "@rollup/rollup-win32-x64-gnu@npm:4.60.0": "1400b3aace00dc90638bfd39d68275bb5f16143d240b9c36eb70f242ed2080c26fe14192fd3375120308ff94a7da1e169a8e0e56efbe41483f59731602d3be84", "@rollup/rollup-win32-x64-msvc@npm:4.60.0": "c948b3a8ed6e73f2382dc41ffab3e9928f95c4a0e3481272b26ad04a5f73084ca13fd5c253887f9077c37cb1c91bd8494b4a45a7764c874aa105684e8424289a", "dmg-license@npm:1.0.11": "feef35cfb45270a72daadcca9584be5cb840f924448b9d4e543fcd61f1b6d471151049f277c91de1d8b003fad6203d0176066a5f427a01df5fb073402cb8c8b7", - "electron-installer-flatpak@npm:0.8.0": "aeaadb5f8f3de96640d3616544700e2c458262f61c7923afd96686223450ed9dbf6d284c1fc6943a6e995957be65cdd140bc4b1c00dd28bf1015fd81ae1e155d", "iconv-corefoundation@npm:1.1.7": "bc6f08ac421e5e92ed20f3825f123fd705e036612b2b6aa687958de753c06f32e54f0203ef55540869e3ee189eaea15e43a2757f3a90e555c4dd512c9422da43", "lightningcss-android-arm64@npm:1.32.0": "1cb326ad39dcb02cf9f45025c167b6900e3a04b08f5149d3c5ee26054b00d08db3736fb69183a6c3ed1cb32dddd148608c784b6631b4777623f7dd0c032c392d", "lightningcss-darwin-arm64@npm:1.32.0": "da954d0c215d0e95f15a92c8717f871017586e1332b98fd40e96196571d2fd3d51a727dc530768afee9f6a04da210510740574dd0c8dbf2ecced79e5996f1a06", diff --git a/pkgs/by-name/r2/r2modman/package.nix b/pkgs/by-name/r2/r2modman/package.nix index 5e16807f8899..f665b4bef0a8 100644 --- a/pkgs/by-name/r2/r2modman/package.nix +++ b/pkgs/by-name/r2/r2modman/package.nix @@ -13,19 +13,19 @@ stdenv.mkDerivation (finalAttrs: { pname = "r2modman"; - version = "3.2.15"; + version = "3.2.16"; src = fetchFromGitHub { owner = "ebkr"; repo = "r2modmanPlus"; tag = "v${finalAttrs.version}"; - hash = "sha256-AU2fswh2gNJr1JWTHjtxJh/vVwvDqFXjaaF+QaLprFo="; + hash = "sha256-ya7VPb+bmOvtXNex9R80N6rZLSCVoyntqCzaHXIwb1M="; }; missingHashes = ./missing-hashes.json; offlineCache = yarn-berry.fetchYarnBerryDeps { inherit (finalAttrs) src patches missingHashes; - hash = "sha256-6WfpOAt9XRw4fC+Ix9OoDPvg7oIxcdKRX5ttIywG14E="; + hash = "sha256-RAQgaxcQl15JqZsLA9ISfOiGgob4yYuc4bhjZFzW8xk="; }; patches = [ @@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: { ./steam-launch-fix.patch # Remove after upstream updates to Yarn 4.14 - # https://github.com/ebkr/r2modmanPlus/blob/develop/package.json#L117 + # https://github.com/ebkr/r2modmanPlus/blob/develop/package.json#L118 ./yarn-4.14-support.patch ]; diff --git a/pkgs/by-name/va/vacuum-go/package.nix b/pkgs/by-name/va/vacuum-go/package.nix index ee015b75a1ce..b3c4da17d7ba 100644 --- a/pkgs/by-name/va/vacuum-go/package.nix +++ b/pkgs/by-name/va/vacuum-go/package.nix @@ -7,16 +7,16 @@ buildGoModule (finalAttrs: { pname = "vacuum-go"; - version = "0.26.4"; + version = "0.26.5"; src = fetchFromGitHub { owner = "daveshanley"; repo = "vacuum"; tag = "v${finalAttrs.version}"; - hash = "sha256-shJblJz5+DhVUju8L/KJ3rFixq3CpvV5o0fC9hx7ivk="; + hash = "sha256-Em+wmDt2kI4mfqS9u/Jq499tQiLh3w/CiZlrkixZjg4="; }; - vendorHash = "sha256-kyKPWbDFPWmIJmn3Np8Geogen3+OxePcSulWBeJFrD4="; + vendorHash = "sha256-AWn/J/BAPIFKXpTdUej1uMBkwh3r5v8DpZHh4D7GRKg="; env.CGO_ENABLED = 0; ldflags = [ diff --git a/pkgs/by-name/yt/yt-dlp/package.nix b/pkgs/by-name/yt/yt-dlp/package.nix index b2dbeba28665..9beb3ddae167 100644 --- a/pkgs/by-name/yt/yt-dlp/package.nix +++ b/pkgs/by-name/yt/yt-dlp/package.nix @@ -4,6 +4,9 @@ python3Packages, atomicparsley, deno, + # Override jsRuntime with `nodejs`, `bun`, `quickjs`, or `quickjs-ng` if you want to use another default JS runtime. + # You still need to enable them in your yt-dlp config with `--js-runtimes [runtime]`. + jsRuntime ? deno, fetchFromGitHub, ffmpeg-headless, installShellFiles, @@ -16,6 +19,12 @@ withAlias ? false, # Provides bin/youtube-dl for backcompat withSecretStorage ? !stdenvNoCC.hostPlatform.isDarwin, nix-update-script, + # required for tests + yt-dlp, + nodejs, + bun, + quickjs, + quickjs-ng, }: python3Packages.buildPythonApplication rec { @@ -37,11 +46,11 @@ python3Packages.buildPythonApplication rec { substituteInPlace yt_dlp/version.py \ --replace-fail "UPDATE_HINT = None" 'UPDATE_HINT = "Nixpkgs/NixOS likely already contain an updated version.\n To get it run nix-channel --update or nix flake update in your config directory."' ${lib.optionalString javascriptSupport '' - # deno is required for full YouTube support (since 2025.11.12). - # This makes yt-dlp find deno even if it is used as a python dependency, i.e. in kodiPackages.sendtokodi. - # Crafted so people can replace deno with one of the other JS runtimes. + # A JavaScript runtime is required for full YouTube support (since 2025.11.12). + # This makes yt-dlp find `jsRuntime` even if it is used as a python dependency, i.e. in kodiPackages.sendtokodi. + # Crafted so people can replace the default deno with one of the other JS runtimes. substituteInPlace yt_dlp/utils/_jsruntime.py \ - --replace-fail "path = _determine_runtime_path(self._path, '${deno.meta.mainProgram}')" "path = '${lib.getExe deno}'" + --replace-fail "path = _determine_runtime_path(self._path, '${jsRuntime.meta.mainProgram}')" "path = '${lib.getExe jsRuntime}'" ''} ''; @@ -136,6 +145,15 @@ python3Packages.buildPythonApplication rec { passthru = { updateScript = nix-update-script { }; + # Try to build with each of the supported JS runtimes + tests = lib.genAttrs' [ nodejs bun quickjs quickjs-ng ] ( + runtime: + lib.nameValuePair runtime.pname ( + yt-dlp.override { + jsRuntime = runtime; + } + ) + ); }; meta = { diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix index 18e241d88aec..ce9f9554e35e 100644 --- a/pkgs/development/tools/build-managers/sbt/default.nix +++ b/pkgs/development/tools/build-managers/sbt/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "sbt"; - version = "1.12.4"; + version = "1.12.11"; src = fetchurl { url = "https://github.com/sbt/sbt/releases/download/v${finalAttrs.version}/sbt-${finalAttrs.version}.tgz"; - hash = "sha256-OgLUzZhn/OJZgvmxaMJF/05HjddpQV21QuW+65+fuHo="; + hash = "sha256-X5cqedKlv48pFBp0w15oa7CGCmtuxneviS+Uz5sSRkU="; }; postPatch = ''