Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2026-06-29 18:42:43 +00:00
committed by GitHub
82 changed files with 1902 additions and 604 deletions
@@ -24,6 +24,8 @@
- [Freescout](https://freescout.net/), a free, open source Helpdesk and shared mailbox. Available as [services.freescout](#opt-services.freescout.enable).
- [Koito](https://koito.io/), a modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL. Available as [services.koito](#opt-services.koito.enable).
- [FlapAlerted](https://github.com/Kioubit/FlapAlerted), detects BGP flapping events and provides statistics based on BGP update messages. Available as [services.flap-alerted](#opt-services.flap-alerted.enable).
- [Unpackerr](https://unpackerr.zip), extracts downloads for Radarr, Sonarr, Lidarr, Readarr, and/or a Watch folder. Available as [services.unpackerr](#opt-services.unpackerr.enable).
+1
View File
@@ -1707,6 +1707,7 @@
./services/web-apps/kavita.nix
./services/web-apps/keycloak.nix
./services/web-apps/kimai.nix
./services/web-apps/koito.nix
./services/web-apps/komga.nix
./services/web-apps/lanraragi.nix
./services/web-apps/lasuite-docs.nix
@@ -107,13 +107,17 @@ in
];
};
services.avahi = lib.mkIf (lib.elem "airplay_receiver" cfg.providers) {
enable = true;
openFirewall = lib.mkIf cfg.openFirewall true;
publish = {
services = {
avahi = lib.mkIf (lib.elem "airplay_receiver" cfg.providers) {
enable = true;
userServices = true;
openFirewall = lib.mkIf cfg.openFirewall true;
publish = {
enable = true;
userServices = true;
};
};
music-assistant.providers = cfg.package.providersBuiltins;
};
systemd.services.music-assistant = {
@@ -167,8 +171,12 @@ in
DevicePolicy = "closed";
LockPersonality = true;
# breaks pyopenssl's cffi calls, used in remote access feature
# not compatible with llvmlite which is required by numba -> librosa
MemoryDenyWriteExecute = false;
ProcSubset = "pid";
# required for torch to properly detect the supported engines
# allows Music-Assistant to warn, if x86_64-v2 cpu features are missing
BindReadOnlyPaths = [ "/proc/cpuinfo" ];
ProcSubset = "all";
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
@@ -190,7 +198,7 @@ in
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged @resources"
"~@privileged"
"mbind"
]
++ lib.optionals useYTMusic [
+140
View File
@@ -0,0 +1,140 @@
{
lib,
config,
pkgs,
...
}:
let
cfg = config.services.koito;
inherit (lib)
getExe
mkEnableOption
mkIf
mkOption
mkPackageOption
types
;
in
{
options.services.koito = {
enable = mkEnableOption "koito";
package = mkPackageOption pkgs "koito" { };
openFirewall = mkOption {
type = types.bool;
default = false;
description = "Open the appropriate ports in the firewall for Koito.";
};
environment = mkOption {
type = types.submodule {
freeformType = types.attrsOf types.str;
options = {
KOITO_BIND_ADDR = mkOption {
type = types.str;
default = "127.0.0.1";
example = "0.0.0.0";
description = "The IP address to bind the Koito server to.";
};
KOITO_LISTEN_PORT = mkOption {
type = types.port;
default = 4110;
description = "TCP port for the Koito server.";
};
KOITO_CONFIG_DIR = mkOption {
type = types.path;
default = "/var/lib/koito";
description = "Directory for Koito import folders and image caches.";
};
};
};
default = { };
example = {
KOITO_DEFAULT_THEME = "black";
KOITO_LOGIN_GATE = "true";
};
description = ''
Environment variables to pass to the Koito service.
See <https://koito.io/reference/configuration/> for available options.
'';
};
environmentFile = mkOption {
type = types.nullOr types.path;
example = "/run/secrets/koito";
default = null;
description = ''
Path of a file with extra environment variables to be loaded from disk.
This file is not added to the nix store, so it can be used to pass secrets to Koito.
See <https://koito.io/reference/configuration/> for available options.
'';
};
};
config = mkIf cfg.enable {
systemd.services.koito = {
description = "Koito - modern scrobbler";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Environment = lib.mapAttrsToList (k: v: "${k}=${if builtins.isInt v then toString v else v}") (
lib.filterAttrs (_: v: v != null) cfg.environment
);
DynamicUser = true;
ExecStart = getExe cfg.package;
StateDirectory = "koito";
EnvironmentFile = cfg.environmentFile;
ProtectSystem = "strict";
ProtectHome = true;
PrivateTmp = true;
PrivateDevices = true;
PrivateMounts = true;
ProtectControlGroups = true;
ProtectKernelTunables = true;
RestrictSUIDSGID = true;
RemoveIPC = true;
UMask = "0077";
CapabilityBoundingSet = [ "" ];
NoNewPrivileges = true;
ProtectKernelModules = true;
ProtectKernelLogs = true;
ProtectClock = true;
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@privileged"
"~@resources"
];
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_UNIX"
];
PrivateUsers = true;
LockPersonality = true;
ProtectHostname = true;
RestrictRealtime = true;
RestrictNamespaces = true;
ProtectProc = "invisible";
ProcSubset = "pid";
DeviceAllow = [ "" ];
};
};
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.environment.KOITO_LISTEN_PORT ];
};
};
meta = {
maintainers = with lib.maintainers; [ iv-nn ];
};
}
+1
View File
@@ -890,6 +890,7 @@ in
kmonad = runTest ./kmonad.nix;
kmscon = runTest ./kmscon.nix;
knot = runTest ./knot.nix;
koito = runTest ./web-apps/koito.nix;
komga = runTest ./komga.nix;
komodo-periphery = runTest ./komodo-periphery.nix;
krb5 = discoverTests (import ./krb5);
+20
View File
@@ -0,0 +1,20 @@
{ ... }:
{
name = "koito";
nodes.machine = {
services.koito.enable = true;
};
testScript =
{ nodes, ... }:
let
port = toString nodes.machine.services.koito.environment.KOITO_LISTEN_PORT;
in
''
machine.wait_for_unit('koito.service')
machine.wait_for_open_port(${port})
machine.succeed('curl --fail http://localhost:${port}')
'';
}
File diff suppressed because it is too large Load Diff
@@ -1551,6 +1551,18 @@ assertNoAdditions {
];
};
fyler-nvim = super.fyler-nvim.overrideAttrs {
nvimSkipModules = [
# Requires setup
"fyler.extensions.trash"
"fyler.finder"
"fyler.integrations.icon"
"fyler.integrations.window_picker"
"fyler.schemes.file"
"fyler.state"
];
};
fzf-checkout-vim = super.fzf-checkout-vim.overrideAttrs {
# The plugin has a makefile which tries to run tests in a docker container.
# This prevents it.
+1 -1
View File
@@ -51,10 +51,10 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
icalendar
jsonpath-ng
lxml
mpd2
psutil
pygobject3
python-dateutil
python-mpd2
requests
requests-file
tzdata
+2 -2
View File
@@ -10,10 +10,10 @@
}:
let
pname = "beeper";
version = "4.2.936";
version = "4.2.948";
src = fetchurl {
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}-x86_64.AppImage";
hash = "sha256-/9IHHE4qeygvPHFRz3EoejkQml6WdebdeUR0Y6afP5I=";
hash = "sha256-MvfQSCV8b5aOeOSlTnRlOupzg+wmHhG0hGWznwCx0Yc=";
};
appimageContents = appimageTools.extract {
inherit pname version src;
+3 -3
View File
@@ -25,16 +25,16 @@
stdenv.mkDerivation {
pname = "cliairplay";
# see the beginning of configure.ac for the upstream version number
version = "1.1-unstable-2026-03-16";
version = "1.5-unstable-2026-05-03";
src = fetchFromGitHub {
owner = "music-assistant";
repo = "cliairplay";
# we try to closely match the commit used in the last music-assistant release from
# https://github.com/music-assistant/server/tree/stable/music_assistant/providers/airplay/bin
rev = "991c65acc2afa17ffe32e279dbc585b0b7f530f8";
rev = "6aeceb49e4e37d044f09be9369b082fc26bcfa19";
fetchSubmodules = true;
hash = "sha256-m1O4l6gFEGNAyskYcRHcA15cubZnNgkaYjdVThRRX7w=";
hash = "sha256-Z2LzRhtQpuXPK6KibnxCqP0V6CulzkwNVHX1V7AFnDA=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -10,16 +10,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cook-cli";
version = "0.32.0";
version = "0.32.1";
src = fetchFromGitHub {
owner = "cooklang";
repo = "cookcli";
rev = "v${finalAttrs.version}";
hash = "sha256-Lft44tBo8l+EhqEHuq6mKBVTjgpewd34SPtloVwkmGc=";
hash = "sha256-r6h7IHYvy3/3OS+6aueHj9ONXSYJ1K7gq7pcNTqN8wY=";
};
cargoHash = "sha256-pSvf3xW5UJWc6Z39w2FI5yoZS8KJpQj04LcTrNFrtGk=";
cargoHash = "sha256-agUqBXhLsjS1nVRwzuiUZomhcYdiXBLU1xX9xh8zN+c=";
# Build without the self-updating feature
buildNoDefaultFeatures = true;
+2 -2
View File
@@ -9,14 +9,14 @@
}:
buildGoModule (finalAttrs: {
version = "3.7.2";
version = "3.7.3";
pname = "grafana-loki";
src = fetchFromGitHub {
owner = "grafana";
repo = "loki";
rev = "v${finalAttrs.version}";
hash = "sha256-2VM5/SMgjxHraP+7H+AmDor9g4r+xglhqd/cVL7mCgQ=";
hash = "sha256-2dqwnM2+9+P/ZIiz5Z9JPN9WicHLRzq9xn6jG1OBqLs=";
};
vendorHash = null;
+44
View File
@@ -0,0 +1,44 @@
{
lib,
python3Packages,
fetchFromGitHub,
nix-update-script,
}:
python3Packages.buildPythonApplication {
pname = "graphlan";
version = "0-unstable-2024-08-07";
pyproject = true;
src = fetchFromGitHub {
owner = "biobakery";
repo = "graphlan";
rev = "dc97f4feb0bb0bf3fa210e2699a86c5e476a647e";
hash = "sha256-sBVlBu6RSs7dXQbxJrIQHWaDNliurY9UguzNeKj40gY=";
};
patchPhase = ''
sed -i 's|biopython==|biopython>=|' setup.py
'';
__structuredAttrs = true;
strictDeps = true;
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
biopython
matplotlib
scipy
];
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = {
description = "Quality control tool for metagenomic and metatranscriptomic sequencing data";
homepage = "https://github.com/biobakery/graphlan";
changelog = "https://github.com/biobakery/graphlan/releases";
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ pandapip1 ];
mainProgram = "graphlan.py";
};
}
+1 -1
View File
@@ -60,7 +60,7 @@ python313Packages.buildPythonApplication (finalAttrs: {
pygobject3
tidalapi
requests
mpd2
python-mpd2
pypresence
]);
+47
View File
@@ -0,0 +1,47 @@
{
src,
version,
stdenv,
yarn-berry_4,
nodejs,
gzip,
}:
let
yarn = yarn-berry_4;
in
stdenv.mkDerivation (finalAttrs: {
pname = "koito-frontend";
inherit src version;
sourceRoot = "${finalAttrs.src.name}/client";
missingHashes = ./missing-hashes.json;
offlineCache = yarn.fetchYarnBerryDeps {
inherit (finalAttrs) src sourceRoot missingHashes;
hash = "sha256-VIlWld21GScJ/2UUkKQISM9jyU9wCVwwDNKkge+K044=";
};
nativeBuildInputs = [
nodejs
yarn.yarnBerryConfigHook
yarn
gzip
];
buildPhase = ''
runHook preBuild
export VITE_KOITO_VERSION=${version}
yarn run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/client
cp -r build $out/client
find $out/client/build -type f \( -name "*.js" -o -name "*.css" -o -name "*.html" -o -name "*.svg" \) -exec gzip -k -9 {} \;
runHook postInstall
'';
})
+117
View File
@@ -0,0 +1,117 @@
{
"@esbuild/aix-ppc64@npm:0.27.7": "ff8c15b43770c8df995a7274efdb1df5553a3264bff0a42a66bc96a07fc0733a6825b4a339972d2d49fc9be9bec4ac2f4f3f072730fdedc879ce4f9cbf0b242d",
"@esbuild/aix-ppc64@npm:0.28.0": "bedc005d10511c3ee50a02edbb380d3134d34f038cb2638257cb9344aa399276e672c44f7e7eb395a96ccc843e0a5903eb0349f22be30af49ae338ed222d5662",
"@esbuild/android-arm64@npm:0.27.7": "c340fffda73dfcdf3513f900403d582cbcd8a5fc4cf7abd71aa0d4945391b4c0289e4389f51616cebaac63ec652457941e3e2eefe408230521227ae128c35c9f",
"@esbuild/android-arm64@npm:0.28.0": "76fa5b984e742b96e427749530e4e973b8da60950163c2dbd766c75ed4f616b7f06d08f01d5b6bd06b6a25cf59b27c3519a4ba343792003b5fcadf463b3d6575",
"@esbuild/android-arm@npm:0.27.7": "4abbbcb6b0f38d345b530148ebf883d3b1b7321a5c31f9c492bf645813e85afb8984c9d75295d779dbe602807b85995d9ff47ab8e8b22fa1bc67b1cbab9c45db",
"@esbuild/android-arm@npm:0.28.0": "b1e649f838c94ebac74e1c10561f010608f7226c0e444b4e178546cf6295bd46d691c52542bbe01598004e638bf9d75ed688b85b6ae31df55f2e2194482733ff",
"@esbuild/android-x64@npm:0.27.7": "719956b9b7eb922a2bf92cc3df93f7f476ae37ad2976bc2185c97b93d63bd1f17b031aec41e9d9a7c3d75c83d6df8daa68191bdfa0d02f4dc39b6fafa6999fd7",
"@esbuild/android-x64@npm:0.28.0": "9b611b9099d552e755d7b6b28dc39c26aad759ceb9379761a0bf2dfe6077c2437aea784152aefc711166b55c4159f03e6e2f39c1c71ffb923c5ef75c93f7282b",
"@esbuild/darwin-arm64@npm:0.27.7": "aefb157b95bb749ebf0cd70dd39d20c00825565a0fcc248b775b4cce6252adf694bf3e4894b25368652252139bfdc0d08b75d1139a78f197ee58ed8972cdb28d",
"@esbuild/darwin-arm64@npm:0.28.0": "09ecf7709c8d86f35624fa9d3475ccb3d1beb9704ddfd71b71adcefc23c3aa8ab95263542bbca52cb0d50f23cf831f468968978969184e1da00dc84cd8c61953",
"@esbuild/darwin-x64@npm:0.27.7": "898b6b02589dccb0a51655c57c407866bdb2ae5202dacce33e7d9b2f35dd117b3245f6393ffd6726373616147c3d12a462830f51da2a5cfd06e0f60cc252373e",
"@esbuild/darwin-x64@npm:0.28.0": "ba5ab146a8542f093bbe752fe85402894da18b304ae1f08eb455a864f124c61e1e03f8ad18c28eb2b9c1bd930c54dc773ad32b7ab4c7d7eb31f7be04451e74f4",
"@esbuild/freebsd-arm64@npm:0.27.7": "aaf8ebcd359f1228f5dd9d90ceca51eaa06d91570b27fa8be9da858ee124e37d45a5fed2aa4849320eb256215acf39b98623cf770ae87f0a0d50323d1acc7fbc",
"@esbuild/freebsd-arm64@npm:0.28.0": "8c05cebfefb0c9f481b52ce8b0290d0e5f6fda17939e27d60d6440c00312a5a10b82ca6e8ddbc19c9a1a2973282c9393958b8ace0512741d76429465d3bdb415",
"@esbuild/freebsd-x64@npm:0.27.7": "cc7fa741cebc7041643f1fbfe45d99ce870b8ea42e9a67f4d1cf2fddeb991623619d00865427b3d6aa63ae7618f10c5635c4d047859eaba8d5c7f317d7138d44",
"@esbuild/freebsd-x64@npm:0.28.0": "da4a620d46b73b610dccfa8c80d110175bb207e0a6bd1bfa96f98d427b3d14bbe54096ccdabaf10fb189a21f6555f7721737106d30ff12933c08ef1aee7adac0",
"@esbuild/linux-arm64@npm:0.27.7": "b1aea26033d1de82966141b350405e1205ea04fa24707084b50992bfc9d0fbf99e0ad83a31ecd8f8cbc01101f3d92f648ce2cc24273c1e8ced573726393f9c68",
"@esbuild/linux-arm64@npm:0.28.0": "589f88f21542ff9822fee3f6130051f19e19ec6714abc48d39795b201585c4f0e8dac42ec10a3e61521a4ad499abad5b3a8a8424d871ff5f464b86ba1bae8a65",
"@esbuild/linux-arm@npm:0.27.7": "0950f67b72af73de69483363f046d6a50fc85f6491adcfeadcb6014bdc8a1731e2575fc58d6c68d6834cd6be45e0b247a23f128162864e7686accda1ada3a9d6",
"@esbuild/linux-arm@npm:0.28.0": "429f4d7b938f2b72884f472bd9288c91899cacb4bf9c61df293dbe9e3c0368cc1700171cf86c3051df9e6ebdc8c1366db6a573995d327f156de63fd28a23e3a7",
"@esbuild/linux-ia32@npm:0.27.7": "6247a3b2658de166c69099208c72ba65d8ddc5ce1575f5e8fd05d4570f3a59bfbd6a5570cfbd890e19a24258edd1b7e91cebe75e2acf182c6087297f26bba29c",
"@esbuild/linux-ia32@npm:0.28.0": "45fcf60da75745f20ec6d98914de1dbb6bd97231a3d9fa1861a47ae43eb7db23780696530d17d68ee55693d189672b763cbdb9d0ad1ee5429ee9c7168a23dce8",
"@esbuild/linux-loong64@npm:0.27.7": "0d7f9b60a46e95d09889365b54ea0e2fd6e471e9ceeef27a0cc6b77616b1abe275456b50eae94bed3322dc6ee17fedebc3258dcc88a5522bd5318f6def0d0642",
"@esbuild/linux-loong64@npm:0.28.0": "d7a5710068e5909661f48c276d82c836b9b6131076e550c83d83e63db3f2538ecd3a3694dcbf8129bb773f7ca580b2fbef38ec15b9028d246cbc0e77a1a5946c",
"@esbuild/linux-mips64el@npm:0.27.7": "f3732fa442590b2219d2ec7de1d5086cd31682831dfc25516f2805326b4bd9f68a9fdbf3cce876ee764bf47765b85fdf22290b6a09f87a29c9d0c2d4af0a83c3",
"@esbuild/linux-mips64el@npm:0.28.0": "1aa72c485a56cf432748b8e0527e86a88deda0574e13d914dbe657dc2878ecc8b441783bd6c1582c0359b5a33d30216c0c94b3c9c17e5ca975fe6aa4b80aaa2c",
"@esbuild/linux-ppc64@npm:0.27.7": "df156f801042116c438c9259451e716533adec6b7d7af5c75cf27feec09ee4d941281049bf979dc0bb7a5b73b955d3974ecac4391a97600a4440a4a003b820e4",
"@esbuild/linux-ppc64@npm:0.28.0": "306bf03b0f6fd738bf74d9dfb23b8937227521b832fd901994600691b1f1fadb698a67a9990713b72ca1114715f82f0df35877281945e81b824ed437bf432742",
"@esbuild/linux-riscv64@npm:0.27.7": "76eccec1c7f047075353ef1f908998a0723f367a39aae39608f7978e5e231ea51ae25fd5258d16345567b94b77e28524cba45bc76afa5eda350adc5bda672142",
"@esbuild/linux-riscv64@npm:0.28.0": "c09c0f0ada23a3e55767586f3a341958c071d0b9adfe5460986e5e69f7397dfe2e37e2896a1c61092cececa929241d37f19b75ed608f5f00d535cd3b24c4ef1f",
"@esbuild/linux-s390x@npm:0.27.7": "788799f3e6e61efe6ec0a4a5e2d413dcfe57b27518d679a3d5f82265672fe53604a348658bc09b958cedaead008b63ef02e700469aed2a725e79361458901808",
"@esbuild/linux-s390x@npm:0.28.0": "40a939574f16362a5c9f1f82c20a8d82686efcf5f77e4b6c7e5c05bdcc596d8ce2ca188e6e7fa4772d4167bd18da630a3a3b3b70aa28308d3a9d1d48ff112feb",
"@esbuild/linux-x64@npm:0.27.7": "77c8cc00c2f647f5a04ca6640711c6e83214a8c619aeb3de52fee36c51709d5f44becaff095ffa2d1d40d53d1a792e80a1702193c155614350cc14de23a48e81",
"@esbuild/linux-x64@npm:0.28.0": "cde673ae0b9945bdc665c68b2df7ebe39d37bcd388c8e607ed4d369e7b6123ecdf3d1feb097ae13403d83c15952cb952d16f96146fa1a52405f09ec0e438d0f6",
"@esbuild/netbsd-arm64@npm:0.27.7": "cffa469f49165446e82f3031d6601e977131fcf619204370b3fad1b2a4a7dbf57d52e26e146cd1550c80af27470fb016d4b519fb74e3e6947a50391f84b87935",
"@esbuild/netbsd-arm64@npm:0.28.0": "c9738a8c3cfb817d9fbb46aa52fa532a0a74dc6d7d4e260e1eb8fd0acf729208932ce7f43e2c2dbf6cb1ca21f5db55f329936f81ae871953ff0e67e42d8eb362",
"@esbuild/netbsd-x64@npm:0.27.7": "123b51f84b61f13ae916c0d7b1fa057181ded0e510f762acca178fe7fb679041a30df4f740db381afe8919d41877630ccef0a16ded46248820da0af4b967c29d",
"@esbuild/netbsd-x64@npm:0.28.0": "c0be9ca72b5c18279e02e63a17a7fef428395f48fc1e0e251622c3cfe8a70b15cfb0bb814d355318917461a4e20d11723b837f6e4d1f1c0ce44e915ff80b3047",
"@esbuild/openbsd-arm64@npm:0.27.7": "cca5a166f47d125703451c4369bd337f08516e17aa69db17ff6822c229fcd9beb9bd29b2856c0f13d9d441178011e8c081879418f376c002f72c6aeab83576ed",
"@esbuild/openbsd-arm64@npm:0.28.0": "fda84f2526cb29d943047f68e725c688e4a89ebcbc224e19ddc3479509783cd254e581b19c8fad1a28e55e193512f37842252f36b06b3df2c005a0dbca0a0d84",
"@esbuild/openbsd-x64@npm:0.27.7": "d9c2ca562e27331124fcddb230f5b204adfadfd87b746d8369c1c3a72fc6f6e7375684cded7ffadab6f785228d80c4a4ff2c6f593f7ce354f6d57f5b4e43c3c3",
"@esbuild/openbsd-x64@npm:0.28.0": "7a67881986611c0b851c246c2ccdb445ecc5e587c70efae0165cd963d149ebfec3a7b6820338cf38dc70cee95fbd17e80dcb636c7f1de113c9a85dfe867a0d97",
"@esbuild/openharmony-arm64@npm:0.27.7": "6566b08b37e3faee6577ae43253f163ce5af22e872e30a93c08fc41e5b3525d742366b1049ba87de16c75c77abd6fce002b49b52a5a1898efb8be5eb18d8dcf3",
"@esbuild/openharmony-arm64@npm:0.28.0": "8cd175332efcedc6b69a980410426cbb7c76ed264f28cbf16cc807938e29f39c03353901179a88655377c39db1860d9df5c76294f2624a2db75b387334e9baa3",
"@esbuild/sunos-x64@npm:0.27.7": "589389cd4be3de5c24bb5820e4fd1f15f665b3be6b0ab6167f435776bb367e32209d6bf477bdba481195fbe515e1999c1e73adf321a8fb8400fe72052a4aef48",
"@esbuild/sunos-x64@npm:0.28.0": "99820c945c05651182afe4ec5a1bad80790775acefa403f25ad48ed9638efc573f3bf6fabdd273556854c609990a8a0c8fda7b140edabe3322d6a3ea77734d9c",
"@esbuild/win32-arm64@npm:0.27.7": "519a2c68186c2cd9f548d89f00f5aa3b5f2fa481fd03908d7b1c922de03bf20236d9fc21a3b4e83915d3611471843b41536c97d74273fb3369b2525767c278be",
"@esbuild/win32-arm64@npm:0.28.0": "84314f636841e4568e4960e4ee50e66c5d4d74fc274d256f3c903904186014bed197316c8bedb3c38f9855ca8ad9c4ecc1c6e64df4c40ea6cd5f4cb7739ab66c",
"@esbuild/win32-ia32@npm:0.27.7": "76470f36efe5290ac694e675a799a46a364aeba9a734cf10869769094b8b9022adc51fdea5869c45a8fdbfcb60ef8d787ae652c264468cdc0f4afb3869157b9c",
"@esbuild/win32-ia32@npm:0.28.0": "41296dae0b5e74ca689460cd510cb88df7b92d0c027130c373138e09847dd48eb685c2c825f36337a7bff7c6eceba2cb75b7f4f76d78e140504159a59e2feb89",
"@esbuild/win32-x64@npm:0.27.7": "b4df3d0c4024f0daf0891075822718dc31d35aeb91c18c4e8ee750be69f35ebd840d184006746dd88eca0e44574e438d5ab81c614605cc707fb79cf45cf76cba",
"@esbuild/win32-x64@npm:0.28.0": "f2d53b57cb338ddf0bbfb5eb64dc95bd0b686817eee8ab2307085c04f18e1d9d5b27e1b74f327cd46a8f246e3df9fc6ee9158ab9977255b7d4a511d438e411de",
"@rolldown/binding-android-arm64@npm:1.0.0-rc.18": "bd5c11810a9a4e450277fc59f6b5ce2d2bfe97e663714e922bfae65d12b2bed41f097f4cef1001bf8c3ed42e639cc1be9c6fa4708f01e472b7bf4f67c81a6b6e",
"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.18": "fb96ff29b508ad304fece44de5be3ece019093d097d48e3ced9977baa10d6e7601e0684774c46e7c82cba6204c10afe307626a77990f12bf693ba5dce27b81f4",
"@rolldown/binding-darwin-x64@npm:1.0.0-rc.18": "e6392296c0c7c10fcdf4bc91937d4de3c53522215059347d49259e14dcf31f6955f596a734aee7eb3e9c68e43af9ac9b7f0e806188fbbda8b1be9155ebc15880",
"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.18": "23ff9940c19013961c5fe3e6ae1534d4c9663aca7d7c7904e996001cd7ceb7abd7e5181a232cf8989d5b48bfa0c686c2e278f0f65b8d7a735783bdc4f5c6628f",
"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.18": "ce1d652b54747ceee65911b751d9a726da30c2fd45398898db2600c0353715ea952f9b4769b76fa271a1f70b2a7eee6e6d514af8edf31d037892ef42e725168e",
"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.18": "59d1457922e400cb74d4777a584505c9eeb72d9628282b418a1698c56498155736718b1fb4aaa063a12b74cc91ffb6e49bc37bab1f49118b2585bdd45a070b79",
"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.18": "f0a4a160a63c5511e32ec654f64617c341a283b121492991f07e3ec286cca94c64e5caa854f85119c0d66fbe2cf672440fbaed116d15a557235bc69a2d0f5464",
"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.18": "638edd82a2e751dcd450cd1ada7f28573bbf1e986129620284bd92e1a4e29cdb99c422f1b8c244672413cda916d74a3da39c92294b6b356aff0f79ac1abdafa7",
"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.18": "f2d685d32cfeaf4b6ded07c6f890bb431e8303de9916d053fc57fd23832747c5aa515971cd39f82643b1005abef813ab075eb04d34fd74553e6711525b23b1f7",
"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.18": "32680fe23669e9513dd9192420b8e2b9ca35a202942ac74aa399239902ae11d15c75cd9a9f73d2c2c484011cdb75adfb08ffb64075b4a4fd2e213e007955ae36",
"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.18": "936a6ba7cda7d1454b3d3917337bbabba9eaf6ee1b0b713d1ecd19799feaa108b4d2e33ca2b6683e930de7ab5c4201029293370a71790303a70a8add011acfc6",
"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.18": "99daa2b391ac36c63413a698413de0392a7e8316d4df9e8f3c652eead0173bfe289dcb351a9c47ab8143c7541c91b4321dbbdced18b606afe7800935bc147ae7",
"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.18": "4a92446817179ea1d9f98f80f5b19217f72015d94fe04875cbc9e4f9e88e5de42efdca7bd8d25706ee322ee7edbd1289a7390eb14bca905f3295dcc6fc5c9b5f",
"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.18": "446b6c6980839ca089b72ccd943cb5cac789197c969a963059c78b5b9bd8351cbf05cb489f7b46876c2e6bdfb28f48cb2bb7f6c124204dc4704e5c08347d27a9",
"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.18": "405c63338f7164b78666b45d4a8844f97594877677a14fe812f750296c15a3c22592050e5c8df5e67ef573146a2ea754ec9bbb90e6893ae90e75a2784a392525",
"@rollup/rollup-android-arm-eabi@npm:4.60.3": "17aa353e3527f39dda3c5165f5182e83b705cc98fd6e349b6f71a38f3e31084ddcc089bd92611049689ff782f8c303de1fcfc3ae3e469846c59fdb502de3150f",
"@rollup/rollup-android-arm64@npm:4.60.3": "043fbe640414cd4ee48a791835aab00759297b2ab5f810ba3d3aca3ca416a713c0d749cf2b5866ba95319f2aff7be0508eecdc0745abf5a1a8eabeef67591c56",
"@rollup/rollup-darwin-arm64@npm:4.60.3": "8869930149fa4a1c2b3a1fdfb782ba3f3b28efc523027a5275772ca7e804d88d3c4bed44d575a450d0ed84ab304f263720e09781fa2b390e17f4c5c0a1febf92",
"@rollup/rollup-darwin-x64@npm:4.60.3": "71089410f74facf224fd39c7d6a96fc3bb587afb5851b3094be5c7030eba600acc1c175613bd1a5c7be8c94217e94a3fb7f4d7b18643e4fabf483c68862881cd",
"@rollup/rollup-freebsd-arm64@npm:4.60.3": "4c36273bf2250bb3291042e16ce3fe77b0423cf65420546b546036f773259339896656d51aa09182387b9468c7c3c8b738ae632fed103d18d5910059009ac897",
"@rollup/rollup-freebsd-x64@npm:4.60.3": "b3d3b26fde4665c5512fc2d0233fdee2bc7d1bc891d80faf146bf799241d397b29d7859d2e3820cac35a49228adca25f7ccee305fae242414b6ba22fbe74e6d9",
"@rollup/rollup-linux-arm-gnueabihf@npm:4.60.3": "ddc1212e3b7143ed51700375644227ccfb42d619bd04b8cde6a844258105a7217a832efd15bd296dabf4ab6a7d958f91a76a56a918b72dfb978bc783d31b53e1",
"@rollup/rollup-linux-arm-musleabihf@npm:4.60.3": "2fc53ec264c1bc2fc6ef31b5254343961aa571795544481d64065f7070752d8aa2776c3d352ead112870382d9a74c0e6a421fe271d8efaeb7a5f4d3f879cd092",
"@rollup/rollup-linux-arm64-gnu@npm:4.60.3": "3fa392f7136ebe742ee24ff71513bda01a4f494f9c41b3185d7c19a621ab56ab7471250a287e7745475105a26e1a5b82c90626bab5095818cce544dae8fc1f0a",
"@rollup/rollup-linux-arm64-musl@npm:4.60.3": "82cb64d456d5a6c27cc1bb4c78233ca5692152b838ee97f22bf2319db9f6abdf7af6b12418c1eecfef173b03acf06b04d556854874ca7dbed6eb69a7219b7025",
"@rollup/rollup-linux-loong64-gnu@npm:4.60.3": "0e5ecd83672bc7df3a64c536ad37e7021138f1b729d09820307db49ddb2eef9f33387e0455ca62a28592deb264e28e7b3364a2b6d011016eb7b107dadcd4d00a",
"@rollup/rollup-linux-loong64-musl@npm:4.60.3": "ce424a66d497b376d8bc69ba8ff500cf7b8ab32432254f1921653a421bfdd58489354c626950cb14eed53e56f99fe896af98a3cf9f275861e60ee8bacef5de65",
"@rollup/rollup-linux-ppc64-gnu@npm:4.60.3": "b4cffd1305c1d2ad9b5af0488fb1809b20111b17e07a36081bd0fb8fd05cef917bbc49ee8392f89850f633f0a2fde2f8a959077c81577ef4b5466a0c06b87b7d",
"@rollup/rollup-linux-ppc64-musl@npm:4.60.3": "db107b5139caa39915df56dc4d0244cd4ed650cb74450b5cb04ddec6d15c9c7a2b5ef831ed3af731a471518ba6463e577ad38165abf349f31ea3959daf050572",
"@rollup/rollup-linux-riscv64-gnu@npm:4.60.3": "5abfd50e21ca6da0ef060ee2863e0c4e7d0629e2d9b5b0d1cf3c38659e5b475ceeb22c14bb05eb450fd6cc06df61293bd276f3a932b3aca16a72dea8486c6ef1",
"@rollup/rollup-linux-riscv64-musl@npm:4.60.3": "70e620271513fa67369eb1d3afbaaa520f624187febb34763cba5fc968468cd48e8b366710d34c3f8ca9ae10cc26476270cd017424148394c36e305da59cdba4",
"@rollup/rollup-linux-s390x-gnu@npm:4.60.3": "44b8787091403559b648dc4b416df3914d22bd2e71c3fed5418f2469bea45abb1b1d846c86d05ef9e98096eb5d15d7336a30c09ff83147af31d08a0a68028f97",
"@rollup/rollup-linux-x64-gnu@npm:4.60.3": "d3044ce18567e39467409a124bba0e5c0987e6a32afb32c4e216b40a841cf2ed88aa51782ee49381f2d4f5c38534ff4de455181ddc2438f770eb6e79d57ee4f4",
"@rollup/rollup-linux-x64-musl@npm:4.60.3": "5a2ea801bf4ecac23f2050e153b8ea242308f34f2a24f0e55e5cde9d88bffb9badb489b342b2892a077402273b2623aefc376c7b45ba6b0aface4fb784b32255",
"@rollup/rollup-openbsd-x64@npm:4.60.3": "281535d6ba7cae7292f6081cf983be2a574479f5f0523bba53250982421dffea8e54c5ad5915ae0c09a3df6de36eb181f815118e1cb64616ffae3ee7ebacb6cf",
"@rollup/rollup-openharmony-arm64@npm:4.60.3": "5b5ba8fbe2c12276b89c3ac53ee27c125bda4857a69872a0670c9e785b58ba2003135222ec8d7628e3b4eddc898cce58b941a4ee33fac6a24ea019af25e74079",
"@rollup/rollup-win32-arm64-msvc@npm:4.60.3": "5021cfd286de0d282fb553b6d0c5fe4e4810f02ea4131634db80c29dcf93203f3eee6995e2a7c2c3b2a7edc60ab95a108f1c1e2890a4d1d9cf985febc16257c3",
"@rollup/rollup-win32-ia32-msvc@npm:4.60.3": "1d5f9ff21955657c4045044ead2845c8cd3c7cbc72e8bc2353bef4d79302680a5000793fbc9b85502682292bd28f5c8d026245ea8d6bfe4f3574576cb32e64c2",
"@rollup/rollup-win32-x64-gnu@npm:4.60.3": "b2a9c131a563939feb4f1fa1301e2c9178212431b6b2e8558745bebb1ebed22ed5ab29443c492fc2c6cc67d97af86c73e37c232f35159045422114dd72211eaa",
"@rollup/rollup-win32-x64-msvc@npm:4.60.3": "a62845765830efae8b738cd01412d5a427bc9cc91db7c410a308f0a0d5c0d406f4a31260935836f57fecc23645b365e155a1d3e151fe3d1a98a49f3fc8a8df8d",
"@tailwindcss/oxide-android-arm64@npm:4.3.0": "4ff1b0c205a905253dd7e4287d22e3ee0ef2dcb2a1bc82482a64a81ec443e0f011ccd677db34913a953774e3fa016386269c29e7b33ccc25b355295d1639b24c",
"@tailwindcss/oxide-darwin-arm64@npm:4.3.0": "16899c458e60e7b81021d6cf8b367bd7b9b42e5b6a071f237c16cf8f5adacb0e7de8bb8ed531eb5d397c971e235b74be22be4873b8d35d95e2236d2eec583020",
"@tailwindcss/oxide-darwin-x64@npm:4.3.0": "273443e9b888ba1f2bb27ba81d7b3591356d9215b9bd3351aae3a252e34ae096a49c1e1e7a40e1edff01348233ecf3cff2f95f772155baa2bac94349f445af0a",
"@tailwindcss/oxide-freebsd-x64@npm:4.3.0": "19e9ac688462aebd2a20683eea3d651be9fd6b42f90104e2bdd76d3d91fa3a1fdbc84e68a62777cf4544a9de0dfb3689f6bab31e475d64b114c0573c8fa31769",
"@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.3.0": "f4171517c70ca18c560746febe99ee580e0b647e6555e8052fc28ea29cc09e8aec9b2f4ba25d4a5477e86ffdcf445c4e40e97a82419f54a262988d3b41f4f457",
"@tailwindcss/oxide-linux-arm64-gnu@npm:4.3.0": "8d50a0392266022dd3cca25620941f7cb48398536c8839ad7b4fc3da5cb85140c54c001a431c436c7eb7c4b01576fb32a04299e3ab93f0f9f3036b799502fb27",
"@tailwindcss/oxide-linux-arm64-musl@npm:4.3.0": "6743633b11429b80404405dff5940c98f011ba0897480ab2c24cf8059258e2333463157874382f5610edfaf67970671b68396a3783fdf6bd04b9a4f83afb75ab",
"@tailwindcss/oxide-linux-x64-gnu@npm:4.3.0": "830fde5deff303d1dd9c57a2b00ab02b088bdcb62103b4dca47a520fe76c1d6a1cf29c02ab4fc2bf3a209f9f94b209a217ba3057a9d35f0077cee94b9fcf9bb7",
"@tailwindcss/oxide-linux-x64-musl@npm:4.3.0": "f360e5074810e7bbe906b35f5aed3b0d044318adba50081cbd60483552782b8c9e56502635cd36c3db23a0afed64131902da164b8a43d9a93918648dda7231b4",
"@tailwindcss/oxide-wasm32-wasi@npm:4.3.0": "ec47c4ec6fe61afc14da01b276e0431ff2d986b8fa71aa85a359105dfb79833deb0ad545872a6d6314995206ebf45f1be6b3b0fa01df045460cb9fc7ea74844b",
"@tailwindcss/oxide-win32-arm64-msvc@npm:4.3.0": "2d35fe2b97422ad33d0e1e7bbb61e65e2d9050a5a778cd8792ba1e4d0693015e3d85f964a34a73cd8ccf4ba8694b51b924bad79ccdc600b8a4b7da2bdb897787",
"@tailwindcss/oxide-win32-x64-msvc@npm:4.3.0": "154b40ea54aca2f479f4fe7ff29a20d3f4efaf962f34517d330f220abc8bb4867bc1e3b29fcf8b4b2a52b091b835f7392fb777dfc9024513329f9e54c2bac5bf",
"lightningcss-android-arm64@npm:1.32.0": "1cb326ad39dcb02cf9f45025c167b6900e3a04b08f5149d3c5ee26054b00d08db3736fb69183a6c3ed1cb32dddd148608c784b6631b4777623f7dd0c032c392d",
"lightningcss-darwin-arm64@npm:1.32.0": "da954d0c215d0e95f15a92c8717f871017586e1332b98fd40e96196571d2fd3d51a727dc530768afee9f6a04da210510740574dd0c8dbf2ecced79e5996f1a06",
"lightningcss-darwin-x64@npm:1.32.0": "b1d298c9173f839e8447d1917ed8bc5ab098ed0fc4e4b419d36ac5afe8b27bf21cb47d00a35c3d2edadcac598086e9b4f26c992a809d79f9681d6865a230d79e",
"lightningcss-freebsd-x64@npm:1.32.0": "0eb59f6acf2fcdc944c921b0ac2a16ee803452b9438f573ad6bc41be00040b791ed698698ed5c06f98ef43a6fed0a54987ba3a88da204de9978db2fca96a4a65",
"lightningcss-linux-arm-gnueabihf@npm:1.32.0": "7d1ea43986d2370a90cefc920dac3e041e0d19445cc4fdaf244644b57b6937588d7c3a464c31440617231f55a6dad79744cf707912e05f3b46a1694abb5b4e00",
"lightningcss-linux-arm64-gnu@npm:1.32.0": "f01ede75f41480a164d18338fa46d9fccdb4a821717174ce848ff8b2aa4badba4f1d331deb3ebec3ee2f0eb95bfa2e35f54877f371427b04e6f36a4783aa1414",
"lightningcss-linux-arm64-musl@npm:1.32.0": "38d373f99768f1c5ab6a9c87e1c0ec45eccdb3fe4d216dd5cd06629648c4b0689570ad4e89285d490662cde1790cd36e6b3d176c14e5e31f6869c604aa2df820",
"lightningcss-linux-x64-gnu@npm:1.32.0": "0a1433d46a4a010f87b615c3fa43725a456bae259858a2c927899cbf93074f0ae40f49901bf6af6daa30a4d169c86f594f6341fd775bf7b59293b8d7947b81c5",
"lightningcss-linux-x64-musl@npm:1.32.0": "a6f48ccc30a73d30563c7b61856d1fd6a8812ce62b1bee797f227e06612df70aab4ccd1908552952f77ca7ff2a51019f62d14ae5310ca67311635eeec55d3a9e",
"lightningcss-win32-arm64-msvc@npm:1.32.0": "a919be7fb298c1102bccf18b6f83d54946adfac70ab2ac9c95e4ae38ded76d8f530215b0bcda4d38df4ffc40a70abe3afd91d01d35fd122e7d119ed0e46972d0",
"lightningcss-win32-x64-msvc@npm:1.32.0": "5b8d3431aadbdc40a0a7eae32f2415e4f28b547af1a1cd5b35a35d67f772a89492c7fa03e9fc88ce804b14f5f88e412e49fff40d1b0aad67177de815c434207e"
}
+66
View File
@@ -0,0 +1,66 @@
{
lib,
buildGoModule,
fetchFromGitHub,
callPackage,
pkg-config,
vips,
makeWrapper,
nixosTests,
}:
buildGoModule (finalAttrs: {
pname = "koito";
version = "0.3.2";
src = fetchFromGitHub {
owner = "gabehf";
repo = "koito";
rev = "v${finalAttrs.version}";
hash = "sha256-68+Z4Alzu+4v/PxU1IOboqZkF1pO+y6gswuO+HPS7dk=";
};
__structuredAttrs = true;
vendorHash = "sha256-W/+ByBlEPd4yIUD/E28q93fz6wYgvhwyBvJL8Fm1lNY=";
nativeBuildInputs = [
pkg-config
makeWrapper
];
buildInputs = [ vips ];
ldflags = [
"-s"
"-w"
"-X main.Version=${finalAttrs.version}"
];
postInstall = ''
mv $out/bin/api $out/bin/.koito-wrapped
mkdir -p $out/share
cp -r --no-preserve=mode ${finalAttrs.passthru.client}/client $out/share/client
makeWrapper $out/bin/.koito-wrapped $out/bin/koito \
--run "cd $out/share"
'';
passthru = {
client = callPackage ./client.nix {
inherit (finalAttrs) src version;
};
tests = {
inherit (nixosTests) koito;
};
updateScript = ./update.sh;
};
meta = {
description = "Modern, themeable scrobbler that you can use with any program that scrobbles to a custom ListenBrainz URL";
homepage = "https://koito.io";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ iv-nn ];
mainProgram = "koito";
};
})
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused jq nix coreutils nix-update yarn-berry_4.yarn-berry-fetcher
set -euo pipefail
owner="gabehf"
repo="koito"
package_dir="$(realpath "$(dirname "$0")")"
latest_tag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL "https://api.github.com/repos/${owner}/${repo}/releases/latest" | jq -r .tag_name)
latest_version="${latest_tag#v}"
if [[ "${UPDATE_NIX_OLD_VERSION}" == "${latest_version}" ]]; then
echo "koito is up to date: ${UPDATE_NIX_OLD_VERSION}"
exit 0
fi
echo "Updating koito from ${UPDATE_NIX_OLD_VERSION} to ${latest_version}"
nix-update koito --version "${latest_version}"
src_path=$(nix-build --no-out-link -A koito.src)
echo "Regenerating missing-hashes.json…"
yarn-berry-fetcher missing-hashes "${src_path}/client/yarn.lock" >"${package_dir}/missing-hashes.json"
echo "Updating offline cache hash…"
offline_cache_hash=$(yarn-berry-fetcher prefetch "${src_path}/client/yarn.lock" "${package_dir}/missing-hashes.json")
old_hash=$(nix-instantiate --eval --expr "with import ./. {}; koito.client.offlineCache.outputHash" --raw)
sed -i "s|${old_hash}|${offline_cache_hash}|" "${package_dir}/client.nix"
echo "Done."
+6 -6
View File
@@ -2,24 +2,24 @@
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libnfs";
version = "5.0.3";
version = "6.0.2";
src = fetchFromGitHub {
owner = "sahlberg";
repo = "libnfs";
tag = "libnfs-${finalAttrs.version}";
hash = "sha256-OFzoDCDBo+O7PtUKcyKnUJJ9TrALrkvk5Yo0zn08Q6w=";
hash = "sha256-uD7PtW2rcpGVzqD6U0DXK1gUaCKlKh+p+i6CW6jLGdw=";
};
nativeBuildInputs = [ autoreconfHook ];
nativeBuildInputs = [ cmake ];
configureFlags = [
"--enable-pthread"
cmakeFlags = [
"-DENABLE_MULTITHREADING=ON"
];
enableParallelBuilding = true;
+31
View File
@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "locker";
version = "4.0.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "tgirlcloud";
repo = "locker";
tag = "v${finalAttrs.version}";
hash = "sha256-rVW2OcRG2h5G46UdRLYeZ5A0Gmca2fj5rRbZzMeDqqc=";
};
cargoHash = "sha256-gfhOOgZ8wkqbcghcCGCBMtImLfZazR2Dg/FgnjbofAg=";
passthru.updateScript = nix-update-script { };
meta = {
description = "A linter for your flake.lock file";
homepage = "https://github.com/tgirlcloud/locker";
license = lib.licenses.eupl12;
maintainers = with lib.maintainers; [ isabelroses ];
mainProgram = "locker";
};
})
+4 -3
View File
@@ -12,12 +12,12 @@
}:
stdenv.mkDerivation rec {
version = "2.4.4";
version = "2.5.1";
pname = "lyx";
src = fetchurl {
url = "ftp://ftp.lyx.org/pub/lyx/stable/2.4.x/${pname}-${version}.tar.xz";
hash = "sha256-/6zTdIDzIPPz+PMERf5AiX6d9EyU7oe6BBPjZAhvS5A=";
url = "ftp://ftp.lyx.org/pub/lyx/stable/2.5.x/lyx-${version}.tar.xz";
hash = "sha256-8qI4e8s/L1RsH8E+THTLT4qmSHBs5XiO9wXdUTRNLP0=";
};
# LaTeX is used from $PATH, as people often want to have it with extra pkgs
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
qtWrapperArgs = [ " --prefix PATH : ${python3}/bin" ];
meta = {
changelog = "https://www.lyx.org/announce/${lib.replaceString "." "_" version}.txt";
description = "WYSIWYM frontend for LaTeX, DocBook";
homepage = "https://www.lyx.org";
license = lib.licenses.gpl2Plus;
@@ -23,7 +23,9 @@
libGL,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mangowc";
__structuredAttrs = true;
strictDeps = true;
pname = "mango";
version = "0.14.4";
src = fetchFromGitHub {
+1 -1
View File
@@ -23,7 +23,7 @@ buildPythonApplication (finalAttrs: {
dependencies = [
colorthief
ffmpeg-python
mpd2
python-mpd2
pillow
pixcat
requests
+1 -1
View File
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
dependencies = with python3Packages; [
dbus-python
mpd2
python-mpd2
mutagen
pygobject3
];
+3 -3
View File
@@ -8,12 +8,12 @@
buildLua {
pname = "manga-reader";
version = "0-unstable-2026-03-03";
version = "0-unstable-2026-06-23";
src = fetchFromGitHub {
owner = "Dudemanguy";
repo = "mpv-manga-reader";
rev = "2e8c21a82eb5fbe0b6feb64375e396d27bd8d5fa";
hash = "sha256-Q6ekBvGsHSiZtO9QYnv5zAoAdkqrcFvmSJQsjVTuwSg=";
rev = "0551b033ac22b97298d94e480216748f68786b9f";
hash = "sha256-TmRWBKgTlgOszOI1CLHveGMNH23UHSvbijz8wC4M/mM=";
};
passthru.updateScript = unstableGitUpdater { };
@@ -0,0 +1,12 @@
diff --git a/music_assistant/mass.py b/music_assistant/mass.py
index 752f9e0af..9d7b3a521 100644
--- a/music_assistant/mass.py
+++ b/music_assistant/mass.py
@@ -923,6 +923,7 @@ async def _load_providers(self) -> None:
changes_made = False
newly_created_defaults: set[str] = set()
for default_provider, require_mdns in DEFAULT_PROVIDERS:
+ continue
if default_provider in default_providers_setup:
# already processed/setup before, skip
continue
@@ -43,7 +43,7 @@ index 0ac8a70f..5d74e25b 100644
"""Set up the YTMusic provider."""
logging.getLogger("yt_dlp").setLevel(self.logger.level + 10)
- await self._install_packages()
self._cookie = self.config.get_value(CONF_COOKIE)
self._cookie = str(self.config.get_value(CONF_COOKIE))
self._po_token_server_url = (
self.config.get_value(CONF_PO_TOKEN_SERVER_URL) or DEFAULT_PO_TOKEN_SERVER_URL
@@ -1103,8 +1102,6 @@ async def _install_packages(self) -> None:
+2 -2
View File
@@ -8,13 +8,13 @@
buildPythonPackage rec {
pname = "music-assistant-frontend";
version = "2.17.146";
version = "2.17.186";
pyproject = true;
src = fetchPypi {
pname = "music_assistant_frontend";
inherit version;
hash = "sha256-VU2SXL6SLFiKntmJJtCabBOYOeImYFPHYxvMPmnhmEc=";
hash = "sha256-dNGzXDRZuQLRkMY0erjJZE4h26yFP4Fdn9a3K6T0RvM=";
};
build-system = [ setuptools ];
+43 -6
View File
@@ -6,6 +6,7 @@
ffmpeg_7-headless,
nixosTests,
replaceVars,
writableTmpDirAsHomeHook,
providers ? [ ],
}:
@@ -15,16 +16,17 @@ let
music-assistant-frontend = prev.callPackage ./frontend.nix { };
music-assistant-models = final.music-assistant-models.overridePythonAttrs (oldAttrs: {
version = "1.1.115";
version = "1.1.129";
src = oldAttrs.src.override {
hash = "sha256-oEXL0B8JNH4PcltpES375ov7QGs+gtYKlMGr1B7BlKY=";
hash = "sha256-6gVHlFTt/bsj4nUGPS6HDUQ7zczpfos75U6l4Yk9W6k=";
};
});
}
);
providerPackages = (import ./providers.nix).providers;
providersMeta = import ./providers.nix;
providerPackages = providersMeta.providers;
providerNames = lib.attrNames providerPackages;
providerDependencies = lib.concatMap (
provider: (providerPackages.${provider} pythonPackages)
@@ -38,14 +40,14 @@ assert
pythonPackages.buildPythonApplication rec {
pname = "music-assistant";
version = "2.8.7";
version = "2.9.4";
pyproject = true;
src = fetchFromGitHub {
owner = "music-assistant";
repo = "server";
tag = version;
hash = "sha256-m91q/8XYoZ5Azu79fKD0euRCuf29w3vj5cxdFheDsmI=";
hash = "sha256-PiSBghhlxknijRqghkO8wn1CB2XqaJrjrvGNvZUlNbo=";
};
patches = [
@@ -78,9 +80,18 @@ pythonPackages.buildPythonApplication rec {
# ^^^^^^^^^^^^^^^
# E IndexError: tuple index out of range
./fix-webserver-tests-in-sandbox.patch
# As providers must be configured through the nixos module, there is no gain
# if Music Assistant tries to enable some of them without the proper dependencies.
./disable-default-provider.diff
];
postPatch = ''
# Undo Python 3.14 only syntax
substituteInPlace music_assistant/controllers/streams/controller.py \
--replace-fail "except BrokenPipeError, ConnectionResetError, ConnectionError:" "except (BrokenPipeError, ConnectionResetError, ConnectionError):" \
--replace-fail "except BrokenPipeError, ConnectionResetError:" "except (BrokenPipeError, ConnectionResetError):"
substituteInPlace pyproject.toml \
--replace-fail "0.0.0" "${version}" \
--replace-fail "==" ">="
@@ -109,6 +120,7 @@ pythonPackages.buildPythonApplication rec {
"mashumaro"
"orjson"
"xmltodict"
"zeroconf"
];
pythonRemoveDeps = [
@@ -139,6 +151,7 @@ pythonPackages.buildPythonApplication rec {
ifaddr
librosa
mashumaro
modern-colorthief
music-assistant-frontend
music-assistant-models
mutagen
@@ -150,6 +163,8 @@ pythonPackages.buildPythonApplication rec {
pyjwt
python-slugify
shortuuid
torch
torchaudio
unidecode
xmltodict
zeroconf
@@ -174,18 +189,36 @@ pythonPackages.buildPythonApplication rec {
with pythonPackages;
[
pytestCheckHook
writableTmpDirAsHomeHook
]
++ lib.concatAttrValues optional-dependencies
++ (lib.concatMap (provider: providerPackages.${provider} python.pkgs) [
++ (lib.concatMap (provider: providerPackages.${provider} pythonPackages) [
"acoustid_lookup"
"audible"
"dlna"
"fastmcp_server"
"jellyfin"
"mpd"
"msx_bridge"
"opensubsonic"
"sendspin"
"smart_fades"
"snapcast"
"sonic_analysis"
"sonic_similarity"
"tidal"
"wiim"
"ytmusic"
]);
preCheck = ''
export NUMBA_CACHE_DIR=$(mktemp -d)
# required for smart_fades tests
mkdir -p $HOME/.cache/torch/hub/checkpoints/
cp ${pythonPackages.beat-this.passthru.small0Ckpt} $HOME/.cache/torch/hub/checkpoints/beat_this-small0.ckpt
'';
disabledTestPaths = [
# no multicast support in build sandbox:
# "OSError: [Errno 19] No such device"
@@ -193,9 +226,12 @@ pythonPackages.buildPythonApplication rec {
# provider is missing dependencies
"tests/providers/apple_music"
"tests/providers/bandcamp"
"tests/providers/hue_entertainment"
"tests/providers/kion_music"
"tests/providers/nicovideo"
"tests/providers/qqmusic"
"tests/providers/yandex_music"
"tests/providers/yandex_ynison"
"tests/providers/zvuk_music"
# mocking music_assistant.providers.airplay.pairing.AirPlayPairing does not work
"tests/providers/airplay/test_player.py::test_start_pairing__pin_decision"
@@ -210,6 +246,7 @@ pythonPackages.buildPythonApplication rec {
providerPackages
providerNames
;
providersBuiltins = providersMeta.builtins;
tests = nixosTests.music-assistant;
};
+102 -7
View File
@@ -1,8 +1,27 @@
# Do not edit manually, run ./update-providers.py
{
version = "2.8.7";
version = "2.9.4";
builtins = [
"builtin"
"coverartarchive"
"fanarttv"
"itunes_artwork"
"local_audio"
"loudness_analysis"
"lrclib"
"musicbrainz"
"sendspin"
"sync_group"
"theaudiodb"
"universal_player"
"wikipedia"
];
providers = {
acoustid_lookup =
ps: with ps; [
pyacoustid
];
airplay =
ps: with ps; [
srptools
@@ -65,6 +84,10 @@
];
fanarttv = ps: [
];
fastmcp_server =
ps: with ps; [
fastmcp
];
filesystem_local = ps: [
];
filesystem_nfs = ps: [
@@ -89,10 +112,14 @@
ps: with ps; [
pyheos
];
hue_entertainment = ps: [
]; # missing hue-entertainment
ibroadcast = ps: [
]; # missing ibroadcastaio
internet_archive = ps: [
];
itunes_artwork = ps: [
];
itunes_podcasts = ps: [
];
jellyfin =
@@ -101,6 +128,8 @@
];
kion_music = ps: [
]; # missing yandex-music
lastfm_recommendations = ps: [
];
lastfm_scrobble =
ps: with ps; [
pylast
@@ -109,16 +138,40 @@
ps: with ps; [
liblistenbrainz
];
local_audio =
ps: with ps; [
sounddevice
];
loudness_analysis = ps: [
];
lrclib = ps: [
];
motherearthradio = ps: [
];
mpd =
ps: with ps; [
python-mpd2
];
msx_bridge =
ps: with ps; [
pydantic
];
musicbrainz = ps: [
];
musiccast =
ps: with ps; [
aiomusiccast
];
nicovideo = ps: [
]; # missing niconico.py-ma
musicme = ps: [
];
neteasecloudmusic = ps: [
];
nicovideo =
ps: with ps; [
pydantic
]; # missing niconico.py-ma
nts = ps: [
];
nugs = ps: [
];
opensubsonic =
@@ -147,6 +200,8 @@
];
qobuz = ps: [
];
qqmusic = ps: [
]; # missing qqmusic-api-python
radiobrowser =
ps: with ps; [
radios
@@ -158,13 +213,26 @@
async-upnp-client
rokuecp
];
samsung_wam = ps: [
]; # missing pywam
sendspin =
ps: with ps; [
ps:
with ps;
[
aiosendspin
av
];
]
++ aiosendspin.optional-dependencies.server;
siriusxm = ps: [
]; # missing sxm
smart_fades =
ps: with ps; [
beat-this
nnaudio
threadpoolctl
];
smart_playlist = ps: [
];
snapcast =
ps: with ps; [
bidict
@@ -173,6 +241,20 @@
];
somafm = ps: [
];
sonic_analysis =
ps: with ps; [
huggingface-hub
pyyaml
threadpoolctl
torchlibrosa
transformers
];
sonic_similarity =
ps: with ps; [
huggingface-hub
transformers
usearch
];
sonos =
ps: with ps; [
aiosonos
@@ -220,8 +302,20 @@
ps: with ps; [
aiovban
];
webdav = ps: [
];
wiim =
ps: with ps; [
wiim
];
wikipedia = ps: [
];
yandex_music = ps: [
]; # missing yandex-music
]; # missing yandex-music, ya-passport-auth
yandex_smarthome = ps: [
]; # missing ya-passport-auth
yandex_ynison = ps: [
]; # missing ya-passport-auth
yousee = ps: [
];
ytmusic =
@@ -232,6 +326,7 @@
ytmusicapi
]; # missing deno
zvuk_music = ps: [
]; # missing zvuk-music
];
# missing zvuk-music
};
}
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i python3 -p "music-assistant.python.withPackages (ps: music-assistant.dependencies ++ (with ps; [ jinja2 packaging ]))" -p nixfmt pyright ruff isort
#!nix-shell -I nixpkgs=./. -i python3 -p "music-assistant.pythonPackages.python.withPackages (ps: music-assistant.dependencies ++ (with ps; [ jinja2 packaging ]))" -p nixfmt pyright ruff isort
import asyncio
import json
import os.path
@@ -24,13 +24,22 @@ TEMPLATE = """# Do not edit manually, run ./update-providers.py
{
version = "{{ version }}";
builtins = [
{%- for builtin in builtins | sort %}
"{{ builtin }}"
{%- endfor %}
];
providers = {
{%- for provider in providers | sort(attribute='domain') %}
{{ provider.domain }} = {% if provider.available %}ps: with ps;{% else %}ps:{% endif %} [
{%- for requirement in provider.available | sort %}
{{ requirement }}
{{ requirement }}
{%- endfor %}
];{% if provider.missing %} # missing {{ ", ".join(provider.missing) }}{% endif %}
]
{%- for requirement in provider.extra_list_deps | sort %}
++ {{ requirement }}
{%- endfor %}
;{% if provider.missing %} # missing {{ ", ".join(provider.missing) }}{% endif %}
{%- endfor %}
};
}
@@ -50,13 +59,16 @@ ROOT: Final = (
.strip()
)
PACKAGE_SET = "music-assistant.python.pkgs"
PACKAGE_SET = "music-assistant.pythonPackages"
PACKAGE_MAP = {
"git+https://github.com/MarvinSchenkel/pytube.git": "pytube",
}
EXTRA_DEPS = {
# Those providers cannot guard pydantic behind TYPE_CHECKING
"msx_bridge": ["pydantic"],
"nicovideo": ["pydantic"],
"ytmusic": [
# https://github.com/music-assistant/server/blob/2.5.8/music_assistant/providers/ytmusic/__init__.py#L120
"bgutil-ytdlp-pot-provider",
@@ -65,6 +77,11 @@ EXTRA_DEPS = {
}
EXTRA_LIST_DEPS = {
"sendspin": ["aiosendspin.optional-dependencies.server"],
}
def run_sync(cmd: List[str]) -> None:
print(f"$ {' '.join(cmd)}")
process = run(cmd)
@@ -143,7 +160,7 @@ def packageset_attributes():
ROOT,
"-qa",
"-A",
"music-assistant.python.pkgs",
"music-assistant.pythonPackages",
"--arg",
"config",
"{ allowAliases = false; }",
@@ -162,7 +179,7 @@ class NoMatch(Exception):
def resolve_package_attribute(package: str) -> str:
pattern = re.compile(rf"^music-assistant\.python\.pkgs\.{package}$", re.I)
pattern = re.compile(rf"^music-assistant\.pythonPackages\.{package}$", re.I)
packages = packageset_attributes()
matches = []
for attr in packages.keys():
@@ -189,6 +206,7 @@ class Provider:
domain: str
available: list[str] = field(default_factory=list)
missing: list[str] = field(default_factory=list)
extra_list_deps: list[str] = field(default_factory=list)
def __eq__(self, other):
return self.domain == other.domain
@@ -197,12 +215,12 @@ class Provider:
return hash(self.domain)
async def resolve_providers(manifests) -> Set:
async def resolve_providers(manifests) -> tuple[Set, Set]:
errors = []
providers = set()
for manifest in manifests:
provider = Provider(manifest.domain)
requirements = manifest.requirements + EXTRA_DEPS.get(manifest.domain, [])
requirements = manifest.requirements
for requirement in requirements:
# allow substituting requirement specifications that packaging cannot parse
if requirement in PACKAGE_MAP:
@@ -223,26 +241,37 @@ async def resolve_providers(manifests) -> Set:
version = await get_package_version(attr)
if version not in requirement.specifier:
errors.append(f"{requirement} not satisfied by version {version}")
if manifest.domain in EXTRA_DEPS:
for requirement in EXTRA_DEPS[manifest.domain]:
provider.available.append(requirement)
if manifest.domain in EXTRA_LIST_DEPS:
for requirement in EXTRA_LIST_DEPS[manifest.domain]:
provider.extra_list_deps.append(requirement)
providers.add(provider)
if errors:
print("\n - ", end="")
print("\n - ".join(errors))
return providers
builtins = {manifest.domain for manifest in manifests if manifest.builtin}
return providers, builtins
def render(outpath: str, version: str, providers: Set):
def render(outpath: str, version: str, providers: Set, builtins: Set):
env = Environment()
template = env.from_string(TEMPLATE)
template.stream(version=version, providers=providers).dump(outpath)
template.stream(version=version, providers=providers, builtins=builtins).dump(
outpath
)
async def main():
version: str = cast(str, await Nix.eval("music-assistant.version"))
manifests = await get_provider_manifests(version)
providers = await resolve_providers(manifests)
providers, builtins = await resolve_providers(manifests)
outpath = os.path.join(ROOT, "pkgs/by-name/mu/music-assistant/providers.nix")
render(outpath, version, providers)
render(outpath, version, providers, builtins)
run_sync(["nixfmt", outpath])
+8
View File
@@ -98,6 +98,14 @@ stdenv.mkDerivation (finalAttrs: {
# drop next release
# https://git.musl-libc.org/cgit/musl/commit/?id=fde29c04adbab9d5b081bf6717b5458188647f1c
./stdio-skip-empty-iovec-when-buffering-is-disabled.patch
# Backport addition of statx fields needed by systemd
./statx.patch
# Backport addition of statx attrs needed by systemd
./statx-attr.patch
# Backport even more statx stuff for systemd
./statx-linux-6.11.patch
# Backport addition of renameat2 syscall wrapper needed by systemd
./renameat2.patch
];
env = {
+55
View File
@@ -0,0 +1,55 @@
From 05ce67fea99ca09cd4b6625cff7aec9cc222dd5a Mon Sep 17 00:00:00 2001
From: Tony Ambardar <tony.ambardar@gmail.com>
Date: Mon, 6 May 2024 20:28:32 -0700
Subject: add renameat2 linux syscall wrapper
This syscall is available since Linux 3.15 and also implemented in
glibc from version 2.28. It is commonly used in filesystem or security
contexts.
Constants RENAME_NOREPLACE, RENAME_EXCHANGE, RENAME_WHITEOUT are
guarded by _GNU_SOURCE as with glibc.
---
include/stdio.h | 7 +++++++
src/linux/renameat2.c | 11 +++++++++++
2 files changed, 18 insertions(+)
create mode 100644 src/linux/renameat2.c
diff --git a/include/stdio.h b/include/stdio.h
index cb858618..4ea4c170 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -158,6 +158,13 @@ char *ctermid(char *);
#define L_ctermid 20
#endif
+#if defined(_GNU_SOURCE)
+#define RENAME_NOREPLACE (1 << 0)
+#define RENAME_EXCHANGE (1 << 1)
+#define RENAME_WHITEOUT (1 << 2)
+
+int renameat2(int, const char *, int, const char *, unsigned);
+#endif
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
|| defined(_BSD_SOURCE)
diff --git a/src/linux/renameat2.c b/src/linux/renameat2.c
new file mode 100644
index 00000000..b8060388
--- /dev/null
+++ b/src/linux/renameat2.c
@@ -0,0 +1,11 @@
+#define _GNU_SOURCE
+#include <stdio.h>
+#include "syscall.h"
+
+int renameat2(int oldfd, const char *old, int newfd, const char *new, unsigned flags)
+{
+#ifdef SYS_renameat
+ if (!flags) return syscall(SYS_renameat, oldfd, old, newfd, new);
+#endif
+ return syscall(SYS_renameat2, oldfd, old, newfd, new, flags);
+}
--
cgit v1.2.1
+35
View File
@@ -0,0 +1,35 @@
From cbf1c7b605d979bb7fdde8b8e6a66acdba18c6b0 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Wed, 24 Apr 2024 13:26:03 -0400
Subject: add missing STATX_ATTR_* macros omitted when statx was added
commit b817541f1cfd38e4b81257b3215e276ea9d0fc61 added statx and the
mask constant macros, but not the stx_attributes[_mask] ones.
---
include/sys/stat.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/sys/stat.h b/include/sys/stat.h
index 6690192d..57d640d7 100644
--- a/include/sys/stat.h
+++ b/include/sys/stat.h
@@ -121,6 +121,16 @@ int lchmod(const char *, mode_t);
#define STATX_BTIME 0x800U
#define STATX_ALL 0xfffU
+#define STATX_ATTR_COMPRESSED 0x4
+#define STATX_ATTR_IMMUTABLE 0x10
+#define STATX_ATTR_APPEND 0x20
+#define STATX_ATTR_NODUMP 0x40
+#define STATX_ATTR_ENCRYPTED 0x800
+#define STATX_ATTR_AUTOMOUNT 0x1000
+#define STATX_ATTR_MOUNT_ROOT 0x2000
+#define STATX_ATTR_VERITY 0x100000
+#define STATX_ATTR_DAX 0x200000
+
struct statx_timestamp {
int64_t tv_sec;
uint32_t tv_nsec, __pad;
--
cgit v1.2.1
@@ -0,0 +1,49 @@
From fcdff46a3203400e08a2264c34b3c7fb62bf6969 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= <j.neuschaefer@gmx.net>
Date: Thu, 24 Oct 2024 01:19:30 +0200
Subject: statx: add Linux 6.11 fields/constants
As of Linux 6.11, these fields and mask macros have been added to
include/uapi/linux/stat.h.
---
include/sys/stat.h | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/include/sys/stat.h b/include/sys/stat.h
index c924ce2f..4f7dc2b1 100644
--- a/include/sys/stat.h
+++ b/include/sys/stat.h
@@ -123,6 +123,8 @@ int lchmod(const char *, mode_t);
#define STATX_MNT_ID 0x1000U
#define STATX_DIOALIGN 0x2000U
#define STATX_MNT_ID_UNIQUE 0x4000U
+#define STATX_SUBVOL 0x8000U
+#define STATX_WRITE_ATOMIC 0x10000U
#define STATX_ATTR_COMPRESSED 0x4
#define STATX_ATTR_IMMUTABLE 0x10
@@ -133,6 +135,7 @@ int lchmod(const char *, mode_t);
#define STATX_ATTR_MOUNT_ROOT 0x2000
#define STATX_ATTR_VERITY 0x100000
#define STATX_ATTR_DAX 0x200000
+#define STATX_ATTR_WRITE_ATOMIC 0x400000
struct statx_timestamp {
int64_t tv_sec;
@@ -164,7 +167,12 @@ struct statx {
uint32_t stx_dio_mem_align;
uint32_t stx_dio_offset_align;
uint64_t stx_subvol;
- uint64_t __pad1[11];
+ uint32_t stx_atomic_write_unit_min;
+ uint32_t stx_atomic_write_unit_max;
+ uint32_t stx_atomic_write_segments_max;
+ uint32_t __pad1[1];
+ uint64_t __pad2[9];
+
};
int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict);
--
cgit v1.2.1
+39
View File
@@ -0,0 +1,39 @@
From 23ab04a8630225371455d5f4538fd078665bb646 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Fri, 13 Sep 2024 17:21:17 -0400
Subject: statx: add new struct statx fields and corresponding mask macros
---
include/sys/stat.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/include/sys/stat.h b/include/sys/stat.h
index 57d640d7..0c10dc21 100644
--- a/include/sys/stat.h
+++ b/include/sys/stat.h
@@ -120,6 +120,9 @@ int lchmod(const char *, mode_t);
#define STATX_BASIC_STATS 0x7ffU
#define STATX_BTIME 0x800U
#define STATX_ALL 0xfffU
+#define STATX_MNT_ID 0x1000U
+#define STATX_DIOALIGN 0x2000U
+#define STATX_MNT_ID_UNIQUE 0x4000U
#define STATX_ATTR_COMPRESSED 0x4
#define STATX_ATTR_IMMUTABLE 0x10
@@ -157,7 +160,11 @@ struct statx {
uint32_t stx_rdev_minor;
uint32_t stx_dev_major;
uint32_t stx_dev_minor;
- uint64_t __pad1[14];
+ uint64_t stx_mnt_id;
+ uint32_t stx_dio_mem_align;
+ uint32_t stx_dio_offet_align;
+ uint64_t stx_subvol;
+ uint64_t __pad1[11];
};
int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict);
--
cgit v1.2.1
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "nats-server";
version = "2.14.2";
version = "2.14.3";
src = fetchFromGitHub {
owner = "nats-io";
repo = "nats-server";
rev = "v${finalAttrs.version}";
hash = "sha256-XK+Yu1DGmS8F0Sbi3Y6KrGtOw63JzJ1ax5LjoZWCkcY=";
hash = "sha256-139eSr6ECC1vThHbdnDPg8wJS0FJuwDKpm4BupRdjSk=";
};
vendorHash = "sha256-q52NL8I/7xkLb6qeDyv8vTuW0C3CRFuyc6UIPw92uD4=";
vendorHash = "sha256-F7XKN/MMX8FOiRY8gugrKU2j+RQE/vY3eTV7ORVRc2U=";
doCheck = false;
@@ -25,6 +25,10 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
url = "https://github.com/mhinz/neovim-remote/commit/56d2a4097f4b639a16902390d9bdd8d1350f948c.patch";
hash = "sha256-/PjE+9yfHtOUEp3xBaobzRM8Eo2wqOhnF1Es7SIdxvM=";
})
# Fix nvr --version: replace deprecated pkg_resources with importlib.metadata
# (stdlib since Python 3.8). setuptools was correctly kept in build-system
# only; this avoids adding it as a spurious runtime dependency.
./use-importlib-metadata.patch
];
build-system = with python3.pkgs; [ setuptools ];
@@ -0,0 +1,20 @@
Use importlib.metadata instead of pkg_resources for version queries.
pkg_resources is a legacy setuptools API. importlib.metadata (stdlib since
Python 3.8) is the correct replacement and requires no extra runtime dependency.
--- a/nvr/nvr.py
+++ b/nvr/nvr.py
@@ -360,10 +360,10 @@
def print_versions():
- import pkg_resources
- print('nvr ' + pkg_resources.require("neovim-remote")[0].version)
- print('pynvim ' + pkg_resources.require('pynvim')[0].version)
- print('psutil ' + pkg_resources.require('psutil')[0].version)
+ from importlib.metadata import version
+ print('nvr ' + version("neovim-remote"))
+ print('pynvim ' + version('pynvim'))
+ print('psutil ' + version('psutil'))
print('Python ' + sys.version.split('\n')[0])
@@ -0,0 +1,24 @@
diff --git a/3party/CMakeLists.txt b/3party/CMakeLists.txt
index c802251db8..314f4d4543 100644
--- a/3party/CMakeLists.txt
+++ b/3party/CMakeLists.txt
@@ -33,9 +33,6 @@ if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
# Add pugixml library.
add_subdirectory(pugixml)
- # Add protobuf library.
- add_subdirectory(protobuf)
-
add_subdirectory(freetype)
add_subdirectory(icu)
add_subdirectory(harfbuzz)
@@ -45,6 +42,9 @@ if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
target_include_directories(utf8cpp SYSTEM INTERFACE "${OMIM_ROOT}/3party/utfcpp/source")
endif()
+# Add protobuf library.
+add_subdirectory(protobuf)
+
add_subdirectory(agg)
add_subdirectory(bsdiff-courgette)
add_subdirectory(glaze)
+26 -28
View File
@@ -18,42 +18,32 @@
libxrandr,
libxinerama,
libxcursor,
gflags,
expat,
jansson,
boost,
fast-float,
utf8cpp,
nix-update-script,
}:
let
world_feed_integration_tests_data = fetchFromGitHub {
owner = "organicmaps";
repo = "world_feed_integration_tests_data";
rev = "30ecb0b3fe694a582edfacc2a7425b6f01f9fec6";
hash = "sha256-1FF658OhKg8a5kKX/7TVmsxZ9amimn4lB6bX9i7pnI4=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "organicmaps";
version = "2026.01.26-11";
version = "2026.05.27-11";
src = fetchFromGitHub {
owner = "organicmaps";
repo = "organicmaps";
tag = "${finalAttrs.version}-android";
hash = "sha256-EsVPzibUta0cmKA6bYLqCKKij5FWbwPHgMmIs2THpL0=";
hash = "sha256-zLNQk9CCCk3linmAyAT5qsS5GhrOrlSVOdDf5koBwrc=";
fetchSubmodules = true;
};
postPatch = ''
# Disable certificate check. It's dependent on time
echo "exit 0" > tools/unix/check_cert.sh
# crude fix for https://github.com/organicmaps/organicmaps/issues/1862
echo "echo ${lib.replaceStrings [ "." "-" ] [ "" "" ] finalAttrs.version}" > tools/unix/version.sh
# TODO use system boost instead, see https://github.com/organicmaps/organicmaps/issues/5345
patchShebangs 3party/boost/tools/build/src/engine/build.sh
# Prefetch test data, or the build system will try to fetch it with git.
ln -s ${world_feed_integration_tests_data} data/test_data/world_feed_integration_tests_data
'';
patches = [
# Needs the very old protobuf 3.3, so we use the vendored one
# https://github.com/organicmaps/organicmaps/pull/6310
./force-vendored-protobuf.patch
];
nativeBuildInputs = [
cmake
@@ -65,7 +55,6 @@ stdenv.mkDerivation (finalAttrs: {
qt6.wrapQtAppsHook
];
# Most dependencies are vendored
buildInputs = [
qt6.qtbase
qt6.qtpositioning
@@ -80,12 +69,21 @@ stdenv.mkDerivation (finalAttrs: {
libxrandr
libxinerama
libxcursor
gflags
expat
jansson
boost
fast-float
utf8cpp
];
# Yes, this is PRE configure. The configure phase uses cmake
preConfigure = ''
bash ./configure.sh
'';
cmakeFlags = [
(lib.cmakeBool "WITH_SYSTEM_PROVIDED_3PARTY" true)
(lib.cmakeBool "SKIP_TESTS" true)
(lib.cmakeBool "SKIP_TOOLS" true)
];
env.NIX_CFLAGS_COMPILE = "-I${lib.getDev utf8cpp}/include/utf8cpp";
passthru = {
updateScript = nix-update-script {
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "pgcenter";
version = "0.10.1";
version = "0.11.0";
src = fetchFromGitHub {
owner = "lesovsky";
repo = "pgcenter";
rev = "v${finalAttrs.version}";
sha256 = "sha256-HSSHRMkzb0WkRAPEtG654ngnJw9rjkBq/v2Su4bUO8Y=";
sha256 = "sha256-sIdCcle7s9ZL8XlEd09yGgq/gC5YDVONzm5Fj9z0lLw=";
};
vendorHash = "sha256-nHPS/iLHQwM39UYpajQRAbZcK7PxTPU0mO2HapDRFDU=";
+1 -1
View File
@@ -36,7 +36,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
dependencies = with python3Packages; [
pygobject3
mpd2
python-mpd2
];
dontWrapGApps = true;
+1 -1
View File
@@ -20,7 +20,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
dependencies = with python3Packages; [
mutagen
mpd2
python-mpd2
toml
appdirs
];
+5
View File
@@ -25,6 +25,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-OT9e+1BTbsE8pPSv+2nMmWbTw/lp5sXnAfrd+fl4U4E=";
};
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
SDL2
autoreconfHook
+5
View File
@@ -21,6 +21,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-Cyvx57ZWitvbybuSRkP3nZ3tr+Bh+h7Wh9HZrE5FO/0=";
};
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
SDL2
pkg-config
-1
View File
@@ -25,7 +25,6 @@ buildGoModule (finalAttrs: {
homepage = "https://github.com/SpectralOps/senv";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ SuperSandro2000 ];
broken = stdenv.hostPlatform.isDarwin; # needs golang.org/x/sys bump
mainProgram = "senv";
};
})
+2 -2
View File
@@ -17,7 +17,7 @@ let
buildPythonApplication
dbus-python
pygobject3
mpd2
python-mpd2
setuptools
;
in
@@ -53,7 +53,7 @@ buildPythonApplication (finalAttrs: {
# included because it's difficult to build.
pythonPath = [
dbus-python
mpd2
python-mpd2
pygobject3
setuptools # pkg_resources is imported during runtime
];
+8 -3
View File
@@ -8,16 +8,21 @@
buildGoModule (finalAttrs: {
pname = "ticker";
version = "5.2.1";
version = "5.3.0";
src = fetchFromGitHub {
owner = "achannarasappa";
repo = "ticker";
tag = "v${finalAttrs.version}";
hash = "sha256-1q+TMCYPp9AicWJZzWrrr5ukj6AcckNkp2yP4NyOm5g=";
hash = "sha256-DXaW1pL0MDM6GTm1i7ns94OgBqSsR94wFYoumOZsnXo=";
};
vendorHash = "sha256-kEyZMFW1ex45yC4G9qZUOeXVdQKjcExG7hKvN8lxrDI=";
postPatch = ''
substituteInPlace go.mod \
--replace-fail "go 1.26.4" "go 1.26.3"
'';
vendorHash = "sha256-ulAmWbsLp5oiIRJNyI0jRXBGUnjRzkZt3zHdbxkCLV0=";
ldflags = [
"-s"
@@ -1,3 +1,3 @@
{ transmission_4 }:
transmission_4.override { enableGTK4 = true; }
transmission_4.override { enableGTK = true; }
@@ -0,0 +1,3 @@
{ transmission_4 }:
transmission_4.override { enableQt = true; }
@@ -1,3 +0,0 @@
{ transmission_4 }:
transmission_4.override { enableQt5 = true; }
@@ -1,3 +0,0 @@
{ transmission_4 }:
transmission_4.override { enableQt6 = true; }
+11 -21
View File
@@ -24,15 +24,13 @@
dht,
libnatpmp,
# Build options
enableGTK4 ? false,
enableGTK ? false,
gtkmm4,
libpthread-stubs,
libayatana-appindicator,
wrapGAppsHook4,
enableQt5 ? false,
enableQt6 ? false,
enableQt ? false,
enableMac ? false,
qt5,
qt6Packages,
nixosTests,
enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
@@ -98,9 +96,9 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(cmakeBool "ENABLE_CLI" enableCli)
(cmakeBool "ENABLE_DAEMON" enableDaemon)
(cmakeBool "ENABLE_GTK" enableGTK4)
(cmakeBool "ENABLE_GTK" enableGTK)
(cmakeBool "ENABLE_MAC" enableMac)
(cmakeBool "ENABLE_QT" (enableQt5 || enableQt6))
(cmakeBool "ENABLE_QT" enableQt)
(cmakeBool "INSTALL_LIB" installLib)
(cmakeBool "RUN_CLANG_TIDY" false)
]
@@ -132,7 +130,7 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace CMakeLists.txt \
--replace-fail 'find_package(UtfCpp)' 'find_package(utf8cpp)'
''
+ optionalString (stdenv.hostPlatform.isDarwin && (enableQt5 || enableQt6)) ''
+ optionalString (stdenv.hostPlatform.isDarwin && enableQt) ''
substituteInPlace qt/CMakeLists.txt \
--replace-fail \
'transmission::qt_impl)' \
@@ -144,9 +142,8 @@ stdenv.mkDerivation (finalAttrs: {
cmake
python3
]
++ optionals enableGTK4 [ wrapGAppsHook4 ]
++ optionals enableQt5 [ qt5.wrapQtAppsHook ]
++ optionals enableQt6 [ qt6Packages.wrapQtAppsHook ]
++ optionals enableGTK [ wrapGAppsHook4 ]
++ optionals enableQt [ qt6Packages.wrapQtAppsHook ]
++ optionals enableMac [
ibtool
actool
@@ -171,14 +168,7 @@ stdenv.mkDerivation (finalAttrs: {
utf8cpp
zlib
]
++ optionals enableQt5 (
with qt5;
[
qttools
qtbase
]
)
++ optionals enableQt6 (
++ optionals enableQt (
with qt6Packages;
[
qttools
@@ -186,7 +176,7 @@ stdenv.mkDerivation (finalAttrs: {
qtsvg
]
)
++ optionals enableGTK4 [
++ optionals enableGTK [
gtkmm4
libpthread-stubs
libayatana-appindicator
@@ -230,9 +220,9 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Fast, easy and free BitTorrent client";
mainProgram =
if (enableQt5 || enableQt6) then
if enableQt then
"transmission-qt"
else if enableGTK4 then
else if enableGTK then
"transmission-gtk"
else if enableMac then
"transmission-mac"
+5 -5
View File
@@ -11,16 +11,16 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "urbit";
version = "4.3";
version = "4.5";
src = fetchurl {
url = "https://github.com/urbit/vere/releases/download/vere-v${finalAttrs.version}/${platform}.tgz";
sha256 =
{
x86_64-linux = "14svyh258iqw8zrbf6nmsc1rfhrsyp6wb2a84fc72lsh28jm7fm0";
aarch64-linux = "0gbpfsysmag9wnka9lgd812wsgrp78fr5l5nwin524zx47cq0fdm";
x86_64-darwin = "0ff77jpsblgbsx03w0yqqsnyrw6g6c90bcj4bvm6idjdxknfnpfv";
aarch64-darwin = "037860zqp9l9gzr3s0d8pbis3xsd26f3a6k63rpvjn76bpwy6swb";
x86_64-linux = "1vbyh6glh4fqcx8d8x2jp88nzl9922dj709zgwhvy858s2m30ymz";
aarch64-linux = "18gc1kyxj4j6vikxpif4a1b6l629m0lnhdzmlwx5i2v0l18drvbp";
x86_64-darwin = "02g431xgjw8gwa823kkxnzhg1cgswi3nlkv54mzkjxbhw856qa4z";
aarch64-darwin = "06x8mdxmbmhg78jzsf0n83cwmp2czp74ssh616ikqf1r8v5l0h2p";
}
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
};
+17 -11
View File
@@ -1,11 +1,11 @@
{
lib,
stdenv,
fetchurl,
fetchFromGitHub,
pkg-config,
makeself,
yasm,
fuse,
fuse3,
wxwidgets_3_2,
lvm2,
replaceVars,
@@ -21,9 +21,11 @@ stdenv.mkDerivation (finalAttrs: {
pname = "veracrypt";
version = "1.26.29";
src = fetchurl {
url = "https://launchpad.net/veracrypt/trunk/${finalAttrs.version}/+download/VeraCrypt_${finalAttrs.version}_Source.tar.bz2";
hash = "sha256-YIJnMeKYK0vSMeOTDoWkQ5EWljhnGhsgDFGPjItGyyo=";
src = fetchFromGitHub {
owner = "veracrypt";
repo = "VeraCrypt";
tag = "VeraCrypt_${finalAttrs.version}";
hash = "sha256-Q+WUz8F63cP9/KlZUn9xLu2V9wO4FeY7AtErE1T9Km4=";
};
patches = [
@@ -40,7 +42,9 @@ stdenv.mkDerivation (finalAttrs: {
./nix-system-paths.patch
];
sourceRoot = "src";
sourceRoot = "${finalAttrs.src.name}/src";
buildFlags = [ "WITHFUSE3=1" ];
nativeBuildInputs = [
makeself
@@ -49,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
wrapGAppsHook3
];
buildInputs = [
fuse
fuse3
lvm2
wxwidgets_3_2
pcsclite
@@ -70,10 +74,12 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Free Open-Source filesystem on-the-fly encryption";
homepage = "https://www.veracrypt.fr/";
license = with lib.licenses; [
asl20 # and
unfree # TrueCrypt License version 3.0
];
license =
with lib.licenses;
AND [
asl20 # and
unfree # TrueCrypt License version 3.0
];
maintainers = [ lib.maintainers.ryand56 ];
platforms = lib.platforms.linux;
};
+3 -3
View File
@@ -13,7 +13,7 @@
pipewire,
libpulseaudio,
autoPatchelfHook,
pnpm_10_29_2,
pnpm_10,
fetchPnpmDeps,
pnpmConfigHook,
nodejs,
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
src
patches
;
pnpm = pnpm_10_29_2;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-Ue1K1KmRi4gF7E519deVY7QH+22dqlECMjdA7Z7qDCA=";
};
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
nodejs
pnpmConfigHook
pnpm_10_29_2
pnpm_10
jq
]
++ lib.optionals stdenv.hostPlatform.isLinux [
+1 -1
View File
@@ -22,7 +22,7 @@ python3Packages.buildPythonPackage rec {
dependencies = with python3Packages; [
pyyaml
psutil
mpd2
python-mpd2
requests
];
@@ -29,17 +29,17 @@
buildPythonPackage (finalAttrs: {
pname = "aiosendspin";
version = "4.4.0";
version = "6.0.5";
pyproject = true;
src = fetchFromGitHub {
owner = "Sendspin";
repo = "aiosendspin";
tag = finalAttrs.version;
hash = "sha256-7edFCGNbECW5rrTbF7vJ4lJUc2IrQZD9VTR3IxJRP08=";
hash = "sha256-veX6MZSqEQb+tEqZTEgdCObLdaVPJEdTFW5Ivmb0TNQ=";
};
# https://github.com/Sendspin/aiosendspin/blob/4.4.0/pyproject.toml#L7
# https://github.com/Sendspin/aiosendspin/blob/5.3.0/pyproject.toml#L27
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
@@ -54,20 +54,26 @@ buildPythonPackage (finalAttrs: {
dependencies = [
aiohttp
av
mashumaro
numpy
orjson
pillow
zeroconf
];
optional-dependencies = {
server = [
av
numpy
pillow
];
};
nativeCheckInputs = [
pytest-aiohttp
pytest-cov-stub
pytest-xdist
pytestCheckHook
];
]
++ finalAttrs.passthru.optional-dependencies.server;
pythonImportsCheck = [
"aiosendspin"
@@ -0,0 +1,44 @@
{
lib,
setproctitle,
uvloop,
aiovban,
buildPythonPackage,
pyaudio,
setuptools,
}:
buildPythonPackage (finalAttrs: {
pname = "aiovban-pyaudio";
inherit (aiovban) version pyproject src;
sourceRoot = "${aiovban.src.name}/aiovban_pyaudio";
build-system = [ setuptools ];
dependencies = [
aiovban
pyaudio
];
pythonImportsCheck = [
"aiovban_pyaudio"
];
optional-dependencies = {
cli = [
setproctitle
uvloop
];
};
__structuredAttrs = true;
meta = {
changelog = "https://github.com/wmbest2/aiovban/releases/tag/${finalAttrs.src.tag}";
description = "PyAudio wrapper for aiovban";
homepage = "https://github.com/wmbest2/aiovban/tree/main/aiovban_pyaudio";
license = lib.licenses.mit;
inherit (aiovban.meta) maintainers;
};
})
@@ -1,32 +1,52 @@
{
lib,
aiovban-pyaudio,
buildPythonPackage,
fetchFromGitHub,
setuptools,
pytestCheckHook,
textual,
uv-build,
music-assistant,
}:
buildPythonPackage (finalAttrs: {
pname = "aiovban";
version = "0.7.0";
version = "1.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "wmbest2";
repo = "aiovban";
tag = "v${finalAttrs.version}";
hash = "sha256-0mhpmpsV0zSOWbhrPF9bfR9xAtJe6X57guWDZWMH6f0=";
hash = "sha256-yPp4+aQGJISTIFI/OoO7+mAR8daEytxrQn21SsFWEyc=";
};
build-system = [ setuptools ];
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "uv_build>=0.10.0,<0.11.0" "uv_build"
'';
nativeCheckInputs = [ pytestCheckHook ];
build-system = [ uv-build ];
dependencies = [ textual ];
# avoid infinite recursion with aiovban-pyaudio
doCheck = false;
nativeCheckInputs = [
aiovban-pyaudio
pytestCheckHook
]
++ aiovban-pyaudio.optional-dependencies.cli;
pythonImportsCheck = [
"aiovban"
];
passthru.tests = finalAttrs.finalPackage.overrideAttrs (_: {
doInstallCheck = true;
});
meta = {
changelog = "https://github.com/wmbest2/aiovban/releases/tag/${finalAttrs.src.tag}";
description = "Asyncio VBAN Protocol Wrapper";
@@ -0,0 +1,73 @@
{
lib,
buildPythonPackage,
einops,
fetchFromGitHub,
fetchurl,
numpy,
pytestCheckHook,
rotary-embedding-torch,
setuptools,
soundfile,
soxr,
torch,
torchaudio,
writableTmpDirAsHomeHook,
}:
buildPythonPackage (finalAttrs: {
pname = "beat-this";
version = "1.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "CPJKU";
repo = "beat_this";
tag = "v${finalAttrs.version}";
hash = "sha256-AEcDptPn5FUBb8+FuYSKjd00sFY5z6bS2iEOU64jido=";
};
build-system = [ setuptools ];
dependencies = [
einops
numpy
rotary-embedding-torch
soxr
torch
torchaudio
];
nativeCheckInputs = [
pytestCheckHook
soundfile
writableTmpDirAsHomeHook
];
preCheck = ''
mkdir -p $HOME/.cache/torch/hub/checkpoints/
cp ${finalAttrs.passthru.final0Ckpt} $HOME/.cache/torch/hub/checkpoints/beat_this-final0.ckpt
'';
pythonImportsCheck = [ "beat_this" ];
passthru = {
# The program prints the download URLs in the error message when it cannot download things in the nix sandbox
final0Ckpt = fetchurl {
url = "https://cloud.cp.jku.at/public.php/dav/files/7ik4RrBKTS273gp/final0.ckpt";
hash = "sha256-jDKLRfWdjdPf8hklP/ao1kgr5X0BM6KRQOL+u/jrgzE=";
};
small0Ckpt = fetchurl {
url = "https://cloud.cp.jku.at/public.php/dav/files/7ik4RrBKTS273gp/small0.ckpt";
hash = "sha256-YHS+LE1JDF9hAfzDdKHscq6TRW4ju2AZeDuEn13H1Hs=";
};
};
meta = {
description = "Accurate and general beat tracker";
homepage = "https://github.com/CPJKU/beat_this";
changelog = "https://github.com/CPJKU/beat_this/blob/main/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ SuperSandro2000 ];
};
})
@@ -70,7 +70,7 @@
librosa,
mp3gain,
mp3val,
mpd2,
python-mpd2,
pyacoustid,
pylast,
pyxdg,
@@ -350,9 +350,9 @@ buildPythonPackage (finalAttrs: {
mbpseudo = { };
metasync.testPaths = [ ];
missing.testPaths = [ ];
mpdstats.propagatedBuildInputs = [ mpd2 ];
mpdstats.propagatedBuildInputs = [ python-mpd2 ];
mpdupdate = {
propagatedBuildInputs = [ mpd2 ];
propagatedBuildInputs = [ python-mpd2 ];
testPaths = [ ];
};
musicbrainz = { };
@@ -0,0 +1,132 @@
{
lib,
buildPythonPackage,
fastmcp,
# build-system
hatchling,
uv-dynamic-versioning,
# dependencies
anthropic,
authlib,
azure-identity,
cyclopts,
exceptiongroup,
google-genai,
griffelib,
httpx,
jsonref,
jsonschema-path,
mcp,
openai,
openapi-pydantic,
opentelemetry-api,
packaging,
platformdirs,
py-key-value-aio,
pydantic,
pydantic-monty,
pydantic-settings,
pydocket,
pyjwt,
pyperclip,
python-dotenv,
python-multipart,
pyyaml,
rich,
typing-extensions,
uncalled-for,
uvicorn,
watchfiles,
websockets,
}:
buildPythonPackage (finalAttrs: {
pname = "fastmcp-slim";
inherit (fastmcp) version src;
sourceRoot = "${finalAttrs.src.name}/fastmcp_slim";
pyproject = true;
build-system = [
hatchling
uv-dynamic-versioning
];
dependencies = [
platformdirs
pydantic
pydantic-settings
python-dotenv
rich
typing-extensions
]
++ pydantic.optional-dependencies.email;
optional-dependencies = {
anthropic = [ anthropic ];
apps = [
# unpackaged prefab-ui
];
azure = [
azure-identity
pyjwt
];
client = [
authlib
]
++ finalAttrs.passthru.optional-dependencies.mcp
++ py-key-value-aio.optional-dependencies.filetree
++ py-key-value-aio.optional-dependencies.keyring
++ py-key-value-aio.optional-dependencies.memory;
code-mode = [ pydantic-monty ];
gemini = [
google-genai
jsonref
];
mcp = [
exceptiongroup
httpx
mcp
opentelemetry-api
];
openai = [ openai ];
server = [
authlib
cyclopts
griffelib
jsonref
jsonschema-path
openapi-pydantic
packaging
py-key-value-aio
pyperclip
python-multipart
pyyaml
uncalled-for
uvicorn
watchfiles
websockets
]
++ finalAttrs.passthru.optional-dependencies.mcp
++ py-key-value-aio.optional-dependencies.filetree
++ py-key-value-aio.optional-dependencies.keyring
++ py-key-value-aio.optional-dependencies.memory;
tasks = [
pydocket
];
};
pythonImportsCheck = [ "fastmcp" ];
# tests are done in fastmcp package
doCheck = false;
meta = {
description = "Dependency-slim FastMCP package";
changelog = "https://github.com/jlowin/fastmcp/releases/tag/${finalAttrs.src.tag}";
homepage = "https://github.com/PrefectHQ/fastmcp/tree/main/fastmcp_slim";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
})
@@ -10,54 +10,26 @@
uv-dynamic-versioning,
# dependencies
anthropic,
authlib,
azure-identity,
cyclopts,
exceptiongroup,
griffelib,
httpx,
jsonref,
jsonschema-path,
mcp,
fakeredis,
google-genai,
openai,
openapi-pydantic,
opentelemetry-api,
packaging,
platformdirs,
py-key-value-aio,
pydantic,
pydantic-monty,
pydocket,
pyjwt,
pyperclip,
python-dotenv,
pyyaml,
rich,
uncalled-for,
uvicorn,
watchfiles,
websockets,
fastmcp-slim,
# tests
dirty-equals,
email-validator,
fastapi,
inline-snapshot,
lupa,
opentelemetry-sdk,
psutil,
pytest-asyncio,
pytest-examples,
pytest-httpx,
pytest-rerunfailures,
pytest-timeout,
pytest-xdist,
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "fastmcp";
version = "3.2.4";
version = "3.3.1";
pyproject = true;
__structuredAttrs = true;
@@ -65,7 +37,7 @@ buildPythonPackage (finalAttrs: {
owner = "PrefectHQ";
repo = "fastmcp";
tag = "v${finalAttrs.version}";
hash = "sha256-rJpxPvqAaa6/vXhG1+R9dI32cY/54e6I+F/zyBVoqBM=";
hash = "sha256-1W5NbWIULxFXGSozZEeITcPt1EbY6IsJLQdyevcn9BI=";
};
build-system = [
@@ -73,121 +45,66 @@ buildPythonPackage (finalAttrs: {
uv-dynamic-versioning
];
pythonRelaxDeps = [
"py-key-value-aio"
"pydocket"
];
dependencies = [
authlib
cyclopts
exceptiongroup
griffelib
httpx
jsonref
jsonschema-path
mcp
openapi-pydantic
opentelemetry-api
packaging
platformdirs
py-key-value-aio
pydantic
pyperclip
python-dotenv
pyyaml
rich
uncalled-for
uvicorn
watchfiles
websockets
fastmcp-slim
]
++ py-key-value-aio.optional-dependencies.filetree
++ py-key-value-aio.optional-dependencies.keyring
++ py-key-value-aio.optional-dependencies.memory
++ pydantic.optional-dependencies.email;
++ fastmcp-slim.optional-dependencies.client
++ fastmcp-slim.optional-dependencies.server;
optional-dependencies = {
anthropic = [ anthropic ];
azure = [
azure-identity
pyjwt
];
code-mode = [ pydantic-monty ];
gemini = [ google-genai ];
openai = [ openai ];
tasks = [
pydocket
fakeredis
]
++ fakeredis.optional-dependencies.lua;
anthropic = fastmcp-slim.optional-dependencies.anthropic;
apps = fastmcp-slim.optional-dependencies.apps;
azure = fastmcp-slim.optional-dependencies.azure;
code-mode = fastmcp-slim.optional-dependencies.code-mode;
gemini = fastmcp-slim.optional-dependencies.gemini;
openai = fastmcp-slim.optional-dependencies.openai;
tasks = fastmcp-slim.optional-dependencies.tasks;
};
pythonImportsCheck = [ "fastmcp" ];
nativeCheckInputs = [
dirty-equals
email-validator
fastapi
inline-snapshot
lupa
opentelemetry-sdk
psutil
pytest-asyncio
pytest-examples
pytest-httpx
pytest-rerunfailures
pytest-timeout
pytest-xdist
pytestCheckHook
writableTmpDirAsHomeHook
]
++ finalAttrs.passthru.optional-dependencies.anthropic
++ finalAttrs.passthru.optional-dependencies.apps
++ finalAttrs.passthru.optional-dependencies.azure
++ finalAttrs.passthru.optional-dependencies.code-mode
++ finalAttrs.passthru.optional-dependencies.gemini
++ finalAttrs.passthru.optional-dependencies.openai
++ finalAttrs.passthru.optional-dependencies.tasks
++ inline-snapshot.optional-dependencies.dirty-equals;
disabledTests = [
# requires internet
"test_github_api_schema_performance"
# RuntimeError: Client failed to connect: Connection closed
"test_keep_alive_maintains_session_across_multiple_calls"
"test_keep_alive_false_starts_new_session_across_multiple_calls"
"test_keep_alive_false_exit_scope_kills_server"
"test_keep_alive_starts_new_session_if_manually_closed"
"test_keep_alive_true_exit_scope_kills_client"
"test_keep_alive_maintains_session_if_reentered"
"test_close_session_and_try_to_use_client_raises_error"
"test_parallel_calls"
"test_single_server_config_include_tags_filtering"
"test_run_mcp_config"
"test_settings_from_environment_issue_1749"
# requires uv
"test_uv_transport"
"test_uv_transport_module"
"test_github_api_schema_performance"
# Hang forever
"test_nested_streamable_http_server_resolves_correctly"
# RuntimeError: Client failed to connect: Timed out while waiting for response
"test_timeout"
"test_timeout_tool_call_overrides_client_timeout_even_if_lower"
# Requires prefab-ui (optional dependency)
"test_auto_registers_renderer_resource"
"test_auto_synthesizes_renderer_resource"
"test_equivalent_to_app_true"
# Requires pydocket (tasks optional dependency, not in test inputs)
"test_mounted_server_does_not_have_docket"
"test_get_tasks_returns_task_eligible_tools"
"test_task_teardown_does_not_hang"
"test_background_task_can_read_snapshotted_request_headers"
"test_background_task_current_http_dependencies_restore_headers"
"test_task_execution_auto_populated_for_task_enabled_tool"
"test_function_tool_task_config_still_works"
"test_async_partial_with_task_true_does_not_raise"
"test_sync_partial_with_task_true_raises"
"test_is_docket_available"
"test_require_docket_passes_when_installed"
# Shared dependency caching differs in sandbox
"TestSharedDependencies"
"TestPrefabAppConfig"
"test_doc_examples_quality"
# AssertionError: assert 'INFO' == 'DEBUG'
"test_temporary_settings"
@@ -195,36 +112,21 @@ buildPythonPackage (finalAttrs: {
# Subprocess-based multi-client tests fail in sandbox
"test_multi_client"
"test_multi_server"
"test_single_server_config_include_tags_filtering"
"test_server_starts_without_auth"
"test_canonical_multi_client_with_transforms"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# RuntimeError: Server failed to start after 10 attempts
"test_unauthorized_access"
"test_stateless_proxy"
++ lib.optionals stdenv.hostPlatform.isAarch64 [
# floating point error
"test_index_retrieval[float32-quantization1-1-metric0-3]"
];
disabledTestPaths = [
# Requires prefab-ui (optional dependency)
"tests/apps"
"tests/docs/test_doc_examples.py"
"tests/test_apps_prefab.py"
"tests/test_fastmcp_app.py"
# Subprocess crash recovery tests are flaky in sandbox
"tests/client/test_stdio.py"
# Requires pydocket/fakeredis (tasks optional dependency, not in test inputs)
"tests/server/tasks"
"tests/server/test_server_docket.py"
"tests/client/tasks"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# RuntimeError: Server failed to start after 10 attempts
"tests/client/auth/test_oauth_client.py"
"tests/client/test_sse.py"
"tests/client/test_streamable_http.py"
"tests/server/auth/test_jwt_provider.py"
"tests/server/http/test_http_dependencies.py"
];
__darwinAllowLocalNetworking = true;
@@ -0,0 +1,54 @@
{
lib,
python,
buildPythonPackage,
fetchPypi,
setuptools,
numpy,
patchelfUnstable,
pyyaml,
nix-update-script,
}:
buildPythonPackage (finalAttrs: {
pname = "hebi-py";
version = "2.7.9";
pyproject = true;
src = fetchPypi {
pname = "hebi-py";
inherit (finalAttrs) version;
hash = "sha256-7B0oxG1CVDTUVDFTJpuYvaCj+HnCL/2zmsD33W4nTLs=";
};
__structuredAttrs = true;
strictDeps = true;
build-system = [
setuptools
patchelfUnstable # Depends on --clear-execstack which is not in any tagged release yet
];
dependencies = [
numpy
pyyaml
];
doCheck = false; # no tests
postFixup = ''
for lib in $out/${python.sitePackages}/hebi/lib/linux_x86_64/libhebi.so*; do
patchelf --clear-execstack "$lib"
done
'';
pythonImportsCheck = [ "hebi" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Python library for the Hebi Robotics API";
homepage = "https://docs.hebi.us/";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ pandapip1 ];
};
})
@@ -0,0 +1,80 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
fetchurl,
librosa,
numpy,
pytestCheckHook,
setuptools,
scipy,
stdenv,
torch,
writableTmpDirAsHomeHook,
}:
let
choice = fetchurl {
url = "https://librosa.org/data/audio/admiralbob77_-_Choice_-_Drum-bass.ogg";
hash = "sha256-rGRPlkXnwVF05KT4Vh5NFEjX9uWf9rBVazEOu87Yebw=";
};
vibeace = fetchurl {
url = "https://librosa.org/data/audio/Kevin_MacLeod_-_Vibe_Ace.ogg";
hash = "sha256-bCOu091apX8rFlLsq2jRXZuCrSV/VOY56yiAygm8EYo=";
};
in
buildPythonPackage (finalAttrs: {
pname = "nnaudio";
version = "0.3.4";
pyproject = true;
src = fetchFromGitHub {
owner = "KinWaiCheuk";
repo = "nnAudio";
rev = "e77d9f874cf37b273f44f68aefbd32fb0b979912";
hash = "sha256-uJySa2A7IbuY/9Wq/w9gRkBk1NhMrhipyclOWO5koHE=";
};
sourceRoot = "${finalAttrs.src.name}/Installation";
build-system = [ setuptools ];
dependencies = [
numpy
scipy
torch
];
nativeCheckInputs = [
librosa
pytestCheckHook
writableTmpDirAsHomeHook
];
preCheck = ''
mkdir -p $HOME/.cache/librosa/
cp ${choice} $HOME/.cache/librosa/admiralbob77_-_Choice_-_Drum-bass.ogg
cp ${vibeace} $HOME/.cache/librosa/Kevin_MacLeod_-_Vibe_Ace.ogg
export NUMBA_CACHE_DIR=$(mktemp -d)
'';
disabledTests = [
# AttributeError: module 'scipy.signal' has no attribute 'blackmanharris'
"test_cfp_original[cpu]"
"test_cfp_new[cpu]"
# Test fixture matrix has other values
"test_vqt_gamma_zero[cpu]"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# Test fixture matrix has other values
"test_cqt_1992_v2_log[cpu]"
];
pythonImportsCheck = [ "nnAudio" ];
meta = {
description = "Fast GPU audio processing toolbox with 1D convolutional neural network";
homepage = "https://github.com/KinWaiCheuk/nnAudio";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ SuperSandro2000 ];
};
})
@@ -1,23 +1,24 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
setuptools,
aiohttp,
mashumaro,
requests,
pytest-asyncio,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
pname = "py-opensonic";
version = "9.1.0";
version = "10.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "khers";
repo = "py-opensonic";
tag = "v${version}";
hash = "sha256-xZHlI62QoKkR4sZf0GUEzUGMpG2urHooPs8GvVyqpIQ=";
hash = "sha256-LT6pTtXCUMhk6uV9Y2inlAuP8osWUwsWOH7/yOW2OXI=";
};
build-system = [ setuptools ];
@@ -25,10 +26,16 @@ buildPythonPackage rec {
dependencies = [
aiohttp
mashumaro
requests
];
doCheck = false; # no tests
pythonRelaxDeps = [
"mashumaro"
];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [
"libopensonic"
@@ -1,25 +1,25 @@
{
aiohttp,
aioresponses,
buildPythonPackage,
fetchFromGitHub,
hatchling,
lib,
lxml,
mocket,
pytest-asyncio,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "pyblu";
version = "2.0.6";
version = "2.0.8";
pyproject = true;
src = fetchFromGitHub {
owner = "LouisChrist";
repo = "pyblu";
tag = "v${version}";
hash = "sha256-qLB9o40tRYgmbYJEEx8r3SodH1hB8MM4yLXbdKIs/xA=";
hash = "sha256-uYYiu0V491eHg47Rc9HGEiddONnFqGuPj34Mkfk5Gnk=";
};
pythonRelaxDeps = [ "aiohttp" ];
@@ -34,11 +34,17 @@ buildPythonPackage rec {
pythonImportsCheck = [ "pyblu" ];
nativeCheckInputs = [
aioresponses
mocket
pytest-asyncio
pytestCheckHook
];
disabledTestPaths = [
# all tests fail with:
# aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host node:11000 ssl:default [Could not contact DNS servers]
"tests/test_player.py"
];
meta = {
changelog = "https://github.com/LouisChrist/pyblu/releases/tag/${src.tag}";
description = "BluOS API client";
@@ -16,7 +16,7 @@
dbus-fast,
iwlib,
libcst,
mpd2,
python-mpd2,
prompt-toolkit,
psutil,
pulsectl-asyncio,
@@ -118,7 +118,7 @@ buildPythonPackage (finalAttrs: {
dbus-fast
iwlib
libcst
mpd2
python-mpd2
# prompt-toolkit used for qtile repl
# see https://github.com/qtile/qtile/blob/master/libqtile/scripts/repl.py
prompt-toolkit
@@ -41,14 +41,14 @@
buildPythonPackage (finalAttrs: {
pname = "redis";
version = "8.0.0";
version = "8.0.1";
pyproject = true;
src = fetchFromGitHub {
owner = "redis";
repo = "redis-py";
tag = "v${finalAttrs.version}";
hash = "sha256-ze9Q8IfSWDAEH0sR+ql0tOu7ajeXF78AKYD6SHpZqRU=";
hash = "sha256-41i4oZmbWi87KBSaAAaZe2gPlCpgw6kEPne1IA3PHQM=";
};
build-system = [ hatchling ];
@@ -8,6 +8,7 @@
numpy,
pulsectl-asyncio,
pychromecast,
pytest-asyncio,
pytestCheckHook,
qrcode,
readchar,
@@ -18,14 +19,14 @@
buildPythonPackage (finalAttrs: {
pname = "sendspin";
version = "5.9.0";
version = "7.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Sendspin";
repo = "sendspin-cli";
tag = finalAttrs.version;
hash = "sha256-g+qw3mDHij50CEDKGjltMGNZoI6/HeJQ8zq8NSvD3Ls=";
hash = "sha256-B375jsOik0IdLtozH3t3hZKqoO+dtqkzX2bk5YuoO9Y=";
};
postPatch = ''
@@ -45,20 +46,23 @@ buildPythonPackage (finalAttrs: {
readchar
rich
sounddevice
];
]
++ aiosendspin.optional-dependencies.server;
optional-dependencies = {
cast = [ pychromecast ];
};
nativeCheckInputs = [ pytestCheckHook ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "sendspin" ];
disabledTests = [
# AssertionError: assert None == (1, 'Digital')
"test_alsa_available_for_hw_device_with_mixer"
"test_hifiberry_dac_discovery"
# requires internet
"test_multi_worker_starts_and_serves_status"
];
meta = {
@@ -4,6 +4,7 @@
buildPythonPackage,
fetchPypi,
setuptools,
setuptools-scm,
cffi,
numpy,
portaudio,
@@ -12,15 +13,18 @@
buildPythonPackage rec {
pname = "sounddevice";
version = "0.5.3";
version = "0.5.5";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-y6wrYBmPurhFM2l+fEkEzIlexp1fs5c1VsnrdKRimyw=";
hash = "sha256-Ikh7ZRmMtb8iCHVRBbUk94rRc+Wra0Rb2rHJifZpjfM=";
};
build-system = [ setuptools ];
build-system = [
setuptools
setuptools-scm
];
dependencies = [
cffi
@@ -43,7 +47,8 @@ buildPythonPackage rec {
meta = {
description = "Play and Record Sound with Python";
homepage = "http://python-sounddevice.rtfd.org/";
homepage = "https://python-sounddevice.readthedocs.io/";
changelog = "https://github.com/spatialaudio/python-sounddevice/releases/tag/${version}";
license = with lib.licenses; [ mit ];
};
}
@@ -1,8 +1,8 @@
diff --git a/sounddevice.py b/sounddevice.py
index 0974289..2d56c28 100644
--- a/sounddevice.py
+++ b/sounddevice.py
@@ -58,32 +58,7 @@ from ctypes.util import find_library as _find_library
diff --git a/src/sounddevice.py b/src/sounddevice.py
index 00fc6f8..72abede 100644
--- a/src/sounddevice.py
+++ b/src/sounddevice.py
@@ -59,36 +59,7 @@
from _sounddevice import ffi as _ffi
@@ -17,22 +17,26 @@ index 0974289..2d56c28 100644
- break
- else:
- raise OSError('PortAudio library not found')
- _lib = _ffi.dlopen(_libname)
- _lib: ... = _ffi.dlopen(_libname)
-except OSError:
- if _platform.system() == 'Darwin':
- _libname = 'libportaudio.dylib'
- elif _platform.system() == 'Windows':
- if 'SD_ENABLE_ASIO' in _os.environ:
- _libname = 'libportaudio' + _platform.architecture()[0] + '-asio.dll'
- if _platform.machine().lower() in ('arm64', 'aarch64'):
- _platform_suffix = 'arm64'
- else:
- _libname = 'libportaudio' + _platform.architecture()[0] + '.dll'
- _platform_suffix = _platform.architecture()[0]
- if 'SD_ENABLE_ASIO' in _os.environ:
- _libname = 'libportaudio' + _platform_suffix + '-asio.dll'
- else:
- _libname = 'libportaudio' + _platform_suffix + '.dll'
- else:
- raise
- import _sounddevice_data
- _libname = _os.path.join(
- next(iter(_sounddevice_data.__path__)), 'portaudio-binaries', _libname)
- _lib = _ffi.dlopen(_libname)
+_lib = _ffi.dlopen('@portaudio@')
- _lib: ... = _ffi.dlopen(_libname)
+_lib: ... = _ffi.dlopen('@portaudio@')
_sampleformats = {
_sampleformats: ... = {
'float32': _lib.paFloat32,
+12 -2
View File
@@ -34,6 +34,7 @@
acl,
lz4,
openssl,
libucontext,
libgcrypt,
libidn2,
curl,
@@ -318,14 +319,23 @@ stdenv.mkDerivation (finalAttrs: {
buildPackages.llvmPackages.libllvm
];
autoPatchelfFlags = [ "--keep-libc" ];
autoPatchelfFlags = [
"--keep-libc"
]
++ lib.optionals stdenv.hostPlatform.isMusl [
# TODO: can be unconditionalized on staging.
# Nixpkgs does not rely on gettext for libintl for musl.
"--ignore-missing=libintl.so.8"
];
buildInputs = [
libxcrypt
libuuid
linuxHeaders
]
++ lib.optionals stdenv.hostPlatform.isMusl [
libucontext
]
++ lib.optionals withGcrypt [
libgcrypt
]
@@ -4245,7 +4245,7 @@
];
"mpd" =
ps: with ps; [
mpd2
python-mpd2
];
"mqtt" =
ps: with ps; [
+3 -1
View File
@@ -1470,6 +1470,7 @@ mapAliases {
mailnagWithPlugins = throw "mailnagWithPlugins has been removed because mailnag has been marked as broken since 2022."; # Added 2025-10-12
makeOverridable = warnAlias "'makeOverridable' has been removed from pkgs, use `lib.makeOverridable` instead" lib.makeOverridable; # Added 2025-10-30
manaplus = throw "manaplus has been removed, as it was broken"; # Added 2025-08-25
mangowc = throw "'mangowc' has been renamed to 'mango'"; # Added 2026-06-23
manrope = throw "'manrope' has been removed because its source has been pulled"; # Added 2025-12-20
mariadb-client = throw "mariadb-client has been renamed to mariadb.client"; # Converted to throw 2025-10-26
marwaita-manjaro = throw "'marwaita-manjaro' has been renamed to/replaced by 'marwaita-teal'"; # Converted to throw 2025-10-27
@@ -2245,7 +2246,8 @@ mapAliases {
transmission_3-gtk = throw "transmission_3-gtk has been removed in favour of transmission_4-gtk. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26
transmission_3-qt = throw "transmission_3-qt has been removed in favour of transmission_4-qt. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26
transmission_3_noSystemd = throw "transmission_3_noSystemd has been removed in favour of transmission_4. Note that upgrade caused data loss for some users so backup is recommended (see NixOS 24.11 release notes for details)"; # Added 2025-10-26
transmission_4-qt = transmission_4-qt5; # Added 2026-06-05
transmission_4-qt5 = lib.warnOnInstantiate "'transmission_4-qt5' has been removed in favour of 'transmission_4-qt'" transmission_4-qt; # Added 2026-06-25
transmission_4-qt6 = lib.warnOnInstantiate "'transmission_4-qt6' has been renamed to 'transmission_4-qt'" transmission_4-qt; # Added 2026-06-25
travis = throw "'travis' has been removed because upstream has stopped maintaining it, and it contains dependencies with security vulnerabilities."; # Added 2026-02-14
treefmt2 = throw "'treefmt2' has been renamed to/replaced by 'treefmt'"; # Converted to throw 2025-10-27
tremor-language-server = throw "'tremor-language-server' has been removed because it is unmaintained"; # Added 2025-11-17
+2
View File
@@ -1855,6 +1855,8 @@ with pkgs;
cffconvert = python3Packages.toPythonApplication python3Packages.cffconvert;
aiovban-pyaudio = python3Packages.toPythonApplication python3Packages.aiovban-pyaudio;
clickhouse-lts = callPackage ../by-name/cl/clickhouse/lts.nix { };
cmdpack = callPackages ../tools/misc/cmdpack { };
+1
View File
@@ -371,6 +371,7 @@ mapAliases {
monarchmoney = throw "'monarchmoney' has been renamed to/replaced by 'monarchmoneycommunity'"; # Added 2026-03-05
monkeytype = throw "'monkeytype' has been removed as it was unmaintained upstream"; # Added 2026-04-19
moretools = "'moretools' has been removed because it is unmaintained"; # Added 2026-01-19
mpd2 = warnAlias "'mpd2' has been renamed to 'python-mpd2'"; # Added 2026-06-14
mpire = throw "'mpire' has been removed because it is unused in Nixpkgs"; # Added 2026-06-22
msldap-bad = throw "'msldap-bad' has been renamed to/replaced by 'badldap'"; # added 2025-11-06
mullvad-closest = throw "'mullvad-closest' has been removed as it was unmaintained. Consider using 'mullvad-compass' instead."; # Added 2026-01-13
+12 -2
View File
@@ -578,6 +578,8 @@ self: super: with self; {
aiovban = callPackage ../development/python-modules/aiovban { };
aiovban-pyaudio = callPackage ../development/python-modules/aiovban-pyaudio { };
aiovlc = callPackage ../development/python-modules/aiovlc { };
aiovodafone = callPackage ../development/python-modules/aiovodafone { };
@@ -2030,6 +2032,8 @@ self: super: with self; {
beartype = callPackage ../development/python-modules/beartype { };
beat-this = callPackage ../development/python-modules/beat-this { };
beaupy = callPackage ../development/python-modules/beaupy { };
beautiful-date = callPackage ../development/python-modules/beautiful-date { };
@@ -5596,6 +5600,8 @@ self: super: with self; {
fastmcp = callPackage ../development/python-modules/fastmcp { };
fastmcp-slim = callPackage ../development/python-modules/fastmcp-slim { };
fastmri = callPackage ../development/python-modules/fastmri { };
fastnlo-toolkit = toPythonModule (
@@ -7199,6 +7205,8 @@ self: super: with self; {
hebg = callPackage ../development/python-modules/hebg { };
hebi-py = callPackage ../development/python-modules/hebi-py { };
hegel-ip-client = callPackage ../development/python-modules/hegel-ip-client { };
helion = callPackage ../development/python-modules/helion { };
@@ -10550,8 +10558,6 @@ self: super: with self; {
callPackage ../development/python-modules/mozjpeg_lossless_optimization
{ };
mpd2 = callPackage ../development/python-modules/mpd2 { };
mpegdash = callPackage ../development/python-modules/mpegdash { };
mpi-pytest = callPackage ../development/python-modules/mpi-pytest { };
@@ -11466,6 +11472,8 @@ self: super: with self; {
nmcli = callPackage ../development/python-modules/nmcli { };
nnaudio = callPackage ../development/python-modules/nnaudio { };
nnpdf = toPythonModule (pkgs.nnpdf.override { python3 = python; });
noaa-coops = callPackage ../development/python-modules/noaa-coops { };
@@ -16308,6 +16316,8 @@ self: super: with self; {
python-motionmount = callPackage ../development/python-modules/python-motionmount { };
python-mpd2 = callPackage ../development/python-modules/python-mpd2 { };
python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
python-multipart = callPackage ../development/python-modules/python-multipart { };