Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot] 2026-04-15 10:37:19 +00:00 committed by GitHub
commit 24155a8642
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 257 additions and 66 deletions

View file

@ -289,6 +289,9 @@
- Added `lovr` package, a LUA-based game engine for VR and XR applications.
- Updated `wsjtx` from 2.7.0 to 3.0.0 for amateur radio hobbyists who use FT8 and other related digital modes.
See the [release notes](https://wsjt.sourceforge.io/Release_Notes.txt) for the changelog.
- `openrgb` was updated to 1.0rc2, which now uses Plugin API version 4.
Some existing OpenRGB plugins may be incompatible or require updates.

View file

@ -15011,6 +15011,12 @@
githubId = 120277625;
name = "LazilyStableProton";
};
lbeierlieb = {
email = "lukasbrlb.lb@gmail.com";
github = "lbeierlieb";
githubId = 16045805;
name = "Lukas Beierlieb";
};
lblasc = {
email = "lblasc@znode.net";
github = "lblasc";

View file

@ -8,13 +8,13 @@
}:
mkLibretroCore {
core = "mednafen-psx" + lib.optionalString withHw "-hw";
version = "0-unstable-2026-04-03";
version = "0-unstable-2026-04-10";
src = fetchFromGitHub {
owner = "libretro";
repo = "beetle-psx-libretro";
rev = "f339f6363de238adcf7c259bff8b0771c9a46399";
hash = "sha256-+JV/QQWiAK980ybM63jk6ljsJJWtdVszAFaIWGmzV/4=";
rev = "4fdfd541e5dce6f08883883dd27289545825e0b4";
hash = "sha256-DtZIi9BRrskfHFLt/UqfZBJp96QmgqGgroxyF7UTRLU=";
};
extraBuildInputs = lib.optionals withHw [

View file

@ -113,6 +113,7 @@ python3.pkgs.buildPythonApplication rec {
sqlalchemy
emoji
httpx
httpx.optional-dependencies.socks
h2
truststore
]

View file

@ -13,6 +13,7 @@
python,
python-mpv-jsonipc,
pywebview,
setuptools,
tkinter,
wrapGAppsHook3,
}:
@ -20,7 +21,7 @@
buildPythonApplication rec {
pname = "jellyfin-mpv-shim";
version = "2.9.0";
format = "setuptools";
pyproject = true;
src = fetchPypi {
inherit pname version;
@ -33,7 +34,9 @@ buildPythonApplication rec {
gobject-introspection
];
propagatedBuildInputs = [
build-system = [ setuptools ];
dependencies = [
jellyfin-apiclient-python
mpv
pillow
@ -61,12 +64,12 @@ buildPythonApplication rec {
postPatch = ''
substituteInPlace jellyfin_mpv_shim/conf.py \
--replace "check_updates: bool = True" "check_updates: bool = False" \
--replace "notify_updates: bool = True" "notify_updates: bool = False"
--replace-fail "check_updates: bool = True" "check_updates: bool = False" \
--replace-fail "notify_updates: bool = True" "notify_updates: bool = False"
# python-mpv renamed to mpv with 1.0.4
substituteInPlace setup.py \
--replace "python-mpv" "mpv" \
--replace "mpv-jsonipc" "python_mpv_jsonipc"
--replace-fail "python-mpv" "mpv" \
--replace-fail "mpv-jsonipc" "python_mpv_jsonipc"
'';
# Install all the icons for the desktop item
@ -84,8 +87,6 @@ buildPythonApplication rec {
'';
dontWrapGApps = true;
# no tests
doCheck = false;
pythonImportsCheck = [ "jellyfin_mpv_shim" ];
desktopItems = [
@ -113,6 +114,7 @@ buildPythonApplication rec {
to prevent needless transcoding of your media files on the server. The player also has
advanced features, such as bulk subtitle updates and launching commands on events.
'';
changelog = "https://github.com/jellyfin/jellyfin-mpv-shim/releases/tag/v${version}";
license = with lib.licenses; [
# jellyfin-mpv-shim
gpl3Only

View file

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "clipcat";
version = "0.24.1";
version = "0.25.0";
src = fetchFromGitHub {
owner = "xrelkd";
repo = "clipcat";
tag = "v${finalAttrs.version}";
hash = "sha256-MbbrkXbXMxWh4fwWg5cIA9Hdibo1qZU7fv5h2oe8KOs=";
hash = "sha256-ht+9TFugVckj5xCCHgwPHbXqeJRBP4MzBROMBIbYAYI=";
};
cargoHash = "sha256-cJK3ZBlVvd+coDsVwux2qUD0JQadjtJ7ToNcrpYHXZ4=";
cargoHash = "sha256-pejtrvCD1HkAZ+pMynRRLw+EV/pHwzh/7OnnoI5LHoc=";
nativeBuildInputs = [
protobuf

View file

@ -19,14 +19,14 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "home-manager";
version = "0-unstable-2026-03-13";
version = "0-unstable-2026-04-08";
src = fetchFromGitHub {
name = "home-manager-source";
owner = "nix-community";
repo = "home-manager";
rev = "ef12a9a2b0f77c8fa3dda1e7e494fca668909056";
hash = "sha256-MPjR48roW7CUMU6lu0+qQGqj92Kuh3paIulMWFZy+NQ=";
rev = "7ba4ee4228ed36123c7cb75d50524b43514ef992";
hash = "sha256-oBYyowo6yfgb95Z78s3uTnAd9KkpJpwzjJbfnpLaM2Y=";
};
nativeBuildInputs = [

View file

@ -10,11 +10,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "jasmin-compiler";
version = "2026.03.0";
version = "2026.03.1";
src = fetchurl {
url = "https://github.com/jasmin-lang/jasmin/releases/download/v${finalAttrs.version}/jasmin-compiler-v${finalAttrs.version}.tar.bz2";
hash = "sha256-3sYqPNDNQs/pbsZLPNOWHg6KCfuSzrZBdc/7VP3lDkA=";
hash = "sha256-eOn5KWNAPx7Z+VMm8mclUyxDlW8Q/MR9EayUxmojb1I=";
};
nativeBuildInputs = with ocamlPackages; [

View file

@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "livekit";
version = "1.10.0";
version = "1.10.1";
src = fetchFromGitHub {
owner = "livekit";
repo = "livekit";
rev = "v${finalAttrs.version}";
hash = "sha256-R1F0PNntBYpsXIDxyrqN/4NUbV5stLQWqcTLrMn1A3E=";
hash = "sha256-D1OQUWaDnB4tBy5Rf5hnuqT8CHGnLZKKdpoe+Oe1LpM=";
};
vendorHash = "sha256-vNzQm4pKZQ70YWwASMYetV2Esp106w6IAwp4FOYFsfQ=";
vendorHash = "sha256-LoJNJZPeS3vZlfFYBJ03XzooVFzSMGgmgbQ8yAq5BhA=";
subPackages = [ "cmd/server" ];

View file

@ -15,12 +15,12 @@
stdenv.mkDerivation rec {
pname = "mtd-utils";
version = "2.3.0";
version = "2.3.1";
src = fetchgit {
url = "git://git.infradead.org/mtd-utils.git";
rev = "v${version}";
hash = "sha256-qQ8r0LBxwzdT9q9ILxKD1AfzLimaNHdc9BT3Rox1eXs=";
hash = "sha256-+2wHGgwWzjj3DRbU82MLvrwB7AtgMg+7m+0MwPE4V1o=";
};
nativeBuildInputs = [

View file

@ -1,25 +1,27 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
pkg-config,
dbus,
writableTmpDirAsHomeHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "nono";
version = "0.5.0";
version = "0.35.0";
src = fetchFromGitHub {
owner = "always-further";
repo = "nono";
tag = "v${finalAttrs.version}";
hash = "sha256-32PiM84dwZ3dPIAIak1DL3iencguXCzehFCDsulDyhI=";
hash = "sha256-/bKquUbVMM1e/YPcuSb0vW4tX/3yNDUxmaBWHKFw+Qs=";
};
cargoHash = "sha256-nE0vVBThXnqo8VnFCkOyqhpZZ40MIkXSqUoJUZcDVhE=";
cargoHash = "sha256-ibGIpH6Ls9nxtF6rRl+dZBbbmVRXDQA6vpPI/jzpDqI=";
nativeBuildInputs = [
pkg-config
@ -29,6 +31,33 @@ rustPlatform.buildRustPackage (finalAttrs: {
dbus
];
nativeCheckInputs = [
writableTmpDirAsHomeHook
];
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
# panics with "Deny-within-allow overlap on Linux ... Landlock cannot enforce this. ..."
# landlock is linux only
"--skip=policy::tests::test_all_groups_no_deny_within_allow_overlap"
# panics with "exact-path fallback must not recursively cover descendants"
"--skip=capability_ext::tests::test_from_profile_allow_file_falls_back_to_exact_directory_when_present"
# env_vars
# don't work inside of the /nix dir
# unsure why home is still under /nix with writableTmpDirAsHomeHook
# Sandbox initialization failed: Refusing to grant '/nix' (source: group:system_read_macos) because it overlaps protected nono state root '/nix/build/nix-<ID>/.home/.nono'.
"--skip=allow_net_overrides_profile_external_proxy"
"--skip=cli_flag_overrides_env_var"
"--skip=env_nono_allow_comma_separated"
"--skip=env_nono_block_net"
"--skip=env_nono_block_net_accepts_true"
"--skip=env_nono_network_profile"
"--skip=env_nono_profile"
"--skip=env_nono_upstream_bypass_comma_separated"
"--skip=env_nono_upstream_proxy"
"--skip=legacy_env_nono_net_block_still_works"
];
meta = {
description = "Secure, kernel-enforced sandbox for AI agents, MCP and LLM workloads";
homepage = "https://github.com/always-further/nono";

View file

@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation {
pname = "steam-devices-udev-rules";
version = "1.0.0.61-unstable-2026-01-23";
version = "1.0.0.61-unstable-2026-04-14";
src = fetchFromGitHub {
owner = "ValveSoftware";
repo = "steam-devices";
rev = "e0ab31454b1c55468af14d08740b51f11581a324";
hash = "sha256-tuQu6s16bupaHw/u64VJxLC4qMdMBvgx7Df8LaPa0Sg=";
rev = "7dde9ecb3c386363ecd9bd0a3b77e4756d200704";
hash = "sha256-44ZO2etUxnldRCuNp6KpLArPrfAOuVPoXW1fl+KbHXA=";
};
nativeBuildInputs = [

View file

@ -4,16 +4,22 @@
fetchurl,
unzip,
installShellFiles,
nix-update-script,
versionCheckHook,
runCommand,
}:
stdenvNoCC.mkDerivation rec {
let
sources = lib.importJSON ./sources.json;
platform =
sources.platforms.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported platform: ${stdenvNoCC.hostPlatform.system}");
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "swiftlint";
version = "0.63.2";
inherit (sources) version;
src = fetchurl {
url = "https://github.com/realm/SwiftLint/releases/download/${version}/portable_swiftlint.zip";
hash = "sha256-xZpAXIX5W5LO1nelAIBOCBWWpMrkpqSFr3YGVVfW7Sk=";
url = "https://github.com/realm/SwiftLint/releases/download/${finalAttrs.version}/${platform.filename}";
inherit (platform) hash;
};
dontPatch = true;
@ -27,11 +33,15 @@ stdenvNoCC.mkDerivation rec {
sourceRoot = ".";
installPhase = ''
runHook preInstall
install -Dm755 swiftlint $out/bin/swiftlint
runHook postInstall
'';
installPhase =
let
binary = if stdenvNoCC.hostPlatform.isLinux then "swiftlint-static" else "swiftlint";
in
''
runHook preInstall
install -Dm755 ${binary} $out/bin/swiftlint
runHook postInstall
'';
postInstall = lib.optionalString (stdenvNoCC.buildPlatform.canExecute stdenvNoCC.hostPlatform) ''
installShellCompletion --cmd swiftlint \
@ -43,7 +53,25 @@ stdenvNoCC.mkDerivation rec {
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
passthru = {
updateScript = ./update.sh;
tests = {
lint =
runCommand "swiftlint-test-lint"
{
nativeBuildInputs = [ finalAttrs.finalPackage ];
}
''
printf "class test{}\n\nvar a = 1" > test.swift
swiftlint lint ${lib.optionalString stdenvNoCC.hostPlatform.isDarwin "--disable-sourcekit"} test.swift > output.txt 2>&1 || true
grep -q "identifier_name" output.txt
grep -q "opening_brace" output.txt
grep -q "trailing_newline" output.txt
grep -q "type_name" output.txt
touch $out
'';
};
};
meta = {
description = "Tool to enforce Swift style and conventions";
@ -54,7 +82,7 @@ stdenvNoCC.mkDerivation rec {
matteopacini
DimitarNestorov
];
platforms = lib.platforms.darwin;
platforms = lib.attrNames sources.platforms;
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
};
}
})

View file

@ -0,0 +1,21 @@
{
"version": "0.63.2",
"platforms": {
"x86_64-linux": {
"filename": "swiftlint_linux_amd64.zip",
"hash": "sha256-3RAXz9IKFFfyZFkLy1h1pu4GzXW5qdT3fNQ6VSSZFDs="
},
"aarch64-linux": {
"filename": "swiftlint_linux_arm64.zip",
"hash": "sha256-EE3t/3YhV/XP93UvHMKiibYPPqZ35y1lHG86Mof92Ug="
},
"x86_64-darwin": {
"filename": "portable_swiftlint.zip",
"hash": "sha256-xZpAXIX5W5LO1nelAIBOCBWWpMrkpqSFr3YGVVfW7Sk="
},
"aarch64-darwin": {
"filename": "portable_swiftlint.zip",
"hash": "sha256-xZpAXIX5W5LO1nelAIBOCBWWpMrkpqSFr3YGVVfW7Sk="
}
}
}

View file

@ -0,0 +1,44 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq nix
set -euo pipefail
cd "$(dirname "$0")"
old_version=$(jq -r ".version" sources.json)
version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
"https://api.github.com/repos/realm/SwiftLint/releases/latest" | jq -r ".tag_name")
if [[ "$old_version" == "$version" ]]; then
echo "swiftlint is already up to date at $version"
exit 0
fi
echo "Updating swiftlint from $old_version to $version"
declare -A platforms=(
[x86_64-linux]="swiftlint_linux_amd64.zip"
[aarch64-linux]="swiftlint_linux_arm64.zip"
[x86_64-darwin]="portable_swiftlint.zip"
[aarch64-darwin]="portable_swiftlint.zip"
)
sources_tmp="$(mktemp)"
jq -n --arg v "$version" '{version: $v, platforms: {}}' > "$sources_tmp"
for platform in "${!platforms[@]}"; do
filename="${platforms[$platform]}"
url="https://github.com/realm/SwiftLint/releases/download/${version}/${filename}"
echo "Fetching hash for $platform ($filename)..."
sha256hash="$(nix-prefetch-url --type sha256 "$url")"
hash="$(nix hash convert --to sri --hash-algo sha256 "$sha256hash")"
jq --arg platform "$platform" \
--arg filename "$filename" \
--arg hash "$hash" \
'.platforms += {($platform): {filename: $filename, hash: $hash}}' \
"$sources_tmp" > "${sources_tmp}.tmp" && mv "${sources_tmp}.tmp" "$sources_tmp"
done
mv "$sources_tmp" sources.json
echo "Updated swiftlint to $version"

View file

@ -0,0 +1,49 @@
{
lib,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "usbvfiod";
version = "0.1.0";
src = fetchFromGitHub {
owner = "cyberus-technology";
repo = "usbvfiod";
rev = "v${finalAttrs.version}";
hash = "sha256-SG5S0wRue/G31XuR2D8xFrbAIhWG3rl+aNjEnhZ7dmI=";
};
cargoHash = "sha256-nTNUC7Tiib2wWYC1g7S1W7wgIkqZLTN8aKUKjpgZlqo=";
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
__structuredAttrs = true;
meta = {
homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
description = "A tool for USB device pass-through using the vfio-user protocol.";
changelog = "https://github.com/cyberus-technology/usb/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
asl20
mit
];
mainProgram = "usbvfiod";
maintainers = with lib.maintainers; [
lbeierlieb
];
platforms = [
"aarch64-linux"
"riscv64-linux"
"x86_64-linux"
];
};
})

View file

@ -1,10 +1,12 @@
{
lib,
stdenv,
fetchgit,
fetchFromGitHub,
asciidoc,
asciidoctor,
cmake,
nix-update-script,
gitUpdater,
pkg-config,
fftw,
fftwFloat,
@ -12,23 +14,20 @@
hamlib_4,
libtool,
libusb1,
qtbase,
qtmultimedia,
qtserialport,
qttools,
qt5,
boost,
texinfo,
wrapQtAppsHook,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "wsjtx";
version = "2.7.0";
version = "3.0.0";
src = fetchgit {
url = "https://git.code.sf.net/p/wsjt/wsjtx";
rev = "wsjtx-${version}";
hash = "sha256-AAPZTJUhz3x/28B9rk2uwFs1bkcEvaj+hOzAjpsFALQ=";
src = fetchFromGitHub {
owner = "WSJTX";
repo = "wsjtx";
tag = "v${finalAttrs.version}";
hash = "sha256-ZM46ouS4NyXP7wPsAxY7Uf2mn0CawRiRmqYkkS8yTAU=";
};
nativeBuildInputs = [
@ -39,23 +38,31 @@ stdenv.mkDerivation rec {
hamlib_4 # rigctl
libtool
pkg-config
qttools
qt5.qttools
texinfo
wrapQtAppsHook
qt5.wrapQtAppsHook
];
buildInputs = [
fftw
fftwFloat
hamlib_4
libusb1
qtbase
qtmultimedia
qtserialport
qt5.qtbase
qt5.qtmultimedia
qt5.qtserialport
qt5.qtwebsockets
boost
];
strictDeps = true;
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^v([0-9]\\.[0-9]\\.[0-9])$"
];
};
meta = {
description = "Weak-signal digital communication modes for amateur radio";
longDescription = ''
@ -73,4 +80,4 @@ stdenv.mkDerivation rec {
numinit
];
};
}
})

View file

@ -19,6 +19,9 @@ wsjtx.overrideAttrs (
mv $out/bin/wsjtx_app_version $out/bin/wsjtz_app_version
'';
# Source isn't available in Git.
passthru = lib.removeAttrs old.passthru [ "updateScript" ];
meta = {
description = "WSJT-X fork, primarily focused on automation and enhanced functionality";
homepage = "https://sourceforge.net/projects/wsjt-z/";

View file

@ -9,14 +9,14 @@
buildPythonPackage (finalAttrs: {
pname = "tencentcloud-sdk-python";
version = "3.1.77";
version = "3.1.78";
pyproject = true;
src = fetchFromGitHub {
owner = "TencentCloud";
repo = "tencentcloud-sdk-python";
tag = finalAttrs.version;
hash = "sha256-pLkHUcy8CbEz6f3bNHx+ynJg9snxRphCoKldO//4PmM=";
hash = "sha256-hcRbJly7dkCopzTHwwOD77ec8MJh3/2LYuBfh0d55Wc=";
};
build-system = [ setuptools ];

View file

@ -10801,8 +10801,6 @@ with pkgs;
wrapThunderbird = callPackage ../applications/networking/mailreaders/thunderbird/wrapper.nix { };
wsjtx = qt5.callPackage ../applications/radio/wsjtx { };
x2gokdriveclient = libsForQt5.callPackage ../applications/networking/remote/x2gokdriveclient { };
x32edit = callPackage ../applications/audio/midas/x32edit.nix { };