mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
Merge master into staging-next
This commit is contained in:
commit
651b30f989
75 changed files with 1701 additions and 599 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).
|
||||
|
|
|
|||
|
|
@ -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
nixos/modules/services/web-apps/koito.nix
Normal file
140
nixos/modules/services/web-apps/koito.nix
Normal 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 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -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
nixos/tests/web-apps/koito.nix
Normal file
20
nixos/tests/web-apps/koito.nix
Normal 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.
|
||||
|
|
|
|||
|
|
@ -51,10 +51,10 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
|
|||
icalendar
|
||||
jsonpath-ng
|
||||
lxml
|
||||
mpd2
|
||||
psutil
|
||||
pygobject3
|
||||
python-dateutil
|
||||
python-mpd2
|
||||
requests
|
||||
requests-file
|
||||
tzdata
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 = [
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
pkgs/by-name/gr/graphlan/package.nix
Normal file
44
pkgs/by-name/gr/graphlan/package.nix
Normal 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";
|
||||
};
|
||||
}
|
||||
|
|
@ -60,7 +60,7 @@ python313Packages.buildPythonApplication (finalAttrs: {
|
|||
pygobject3
|
||||
tidalapi
|
||||
requests
|
||||
mpd2
|
||||
python-mpd2
|
||||
pypresence
|
||||
]);
|
||||
|
||||
|
|
|
|||
47
pkgs/by-name/ko/koito/client.nix
Normal file
47
pkgs/by-name/ko/koito/client.nix
Normal 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
pkgs/by-name/ko/koito/missing-hashes.json
Normal file
117
pkgs/by-name/ko/koito/missing-hashes.json
Normal 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
pkgs/by-name/ko/koito/package.nix
Normal file
66
pkgs/by-name/ko/koito/package.nix
Normal 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
pkgs/by-name/ko/koito/update.sh
Executable file
32
pkgs/by-name/ko/koito/update.sh
Executable 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."
|
||||
|
|
@ -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
pkgs/by-name/lo/locker/package.nix
Normal file
31
pkgs/by-name/lo/locker/package.nix
Normal 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";
|
||||
};
|
||||
})
|
||||
|
|
@ -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 {
|
||||
|
|
@ -23,7 +23,7 @@ buildPythonApplication (finalAttrs: {
|
|||
dependencies = [
|
||||
colorthief
|
||||
ffmpeg-python
|
||||
mpd2
|
||||
python-mpd2
|
||||
pillow
|
||||
pixcat
|
||||
requests
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
|
||||
dependencies = with python3Packages; [
|
||||
dbus-python
|
||||
mpd2
|
||||
python-mpd2
|
||||
mutagen
|
||||
pygobject3
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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 ];
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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])
|
||||
|
||||
|
|
|
|||
|
|
@ -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 ];
|
||||
|
|
|
|||
20
pkgs/by-name/ne/neovim-remote/use-importlib-metadata.patch
Normal file
20
pkgs/by-name/ne/neovim-remote/use-importlib-metadata.patch
Normal file
|
|
@ -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])
|
||||
24
pkgs/by-name/or/organicmaps/force-vendored-protobuf.patch
Normal file
24
pkgs/by-name/or/organicmaps/force-vendored-protobuf.patch
Normal file
|
|
@ -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)
|
||||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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=";
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
|
||||
dependencies = with python3Packages; [
|
||||
pygobject3
|
||||
mpd2
|
||||
python-mpd2
|
||||
];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
|
||||
dependencies = with python3Packages; [
|
||||
mutagen
|
||||
mpd2
|
||||
python-mpd2
|
||||
toml
|
||||
appdirs
|
||||
];
|
||||
|
|
|
|||
|
|
@ -25,6 +25,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
hash = "sha256-OT9e+1BTbsE8pPSv+2nMmWbTw/lp5sXnAfrd+fl4U4E=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
SDL2
|
||||
autoreconfHook
|
||||
|
|
|
|||
|
|
@ -21,6 +21,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
hash = "sha256-Cyvx57ZWitvbybuSRkP3nZ3tr+Bh+h7Wh9HZrE5FO/0=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
SDL2
|
||||
pkg-config
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -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,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; }
|
||||
|
|
|
|||
3
pkgs/by-name/tr/transmission_4-qt/package.nix
Normal file
3
pkgs/by-name/tr/transmission_4-qt/package.nix
Normal file
|
|
@ -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; }
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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}");
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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 [
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
44
pkgs/development/python-modules/aiovban-pyaudio/default.nix
Normal file
44
pkgs/development/python-modules/aiovban-pyaudio/default.nix
Normal file
|
|
@ -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";
|
||||
|
|
|
|||
73
pkgs/development/python-modules/beat-this/default.nix
Normal file
73
pkgs/development/python-modules/beat-this/default.nix
Normal file
|
|
@ -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 = { };
|
||||
|
|
|
|||
132
pkgs/development/python-modules/fastmcp-slim/default.nix
Normal file
132
pkgs/development/python-modules/fastmcp-slim/default.nix
Normal file
|
|
@ -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;
|
||||
|
|
|
|||
54
pkgs/development/python-modules/hebi-py/default.nix
Normal file
54
pkgs/development/python-modules/hebi-py/default.nix
Normal file
|
|
@ -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 ];
|
||||
};
|
||||
})
|
||||
80
pkgs/development/python-modules/nnaudio/default.nix
Normal file
80
pkgs/development/python-modules/nnaudio/default.nix
Normal file
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -4245,7 +4245,7 @@
|
|||
];
|
||||
"mpd" =
|
||||
ps: with ps; [
|
||||
mpd2
|
||||
python-mpd2
|
||||
];
|
||||
"mqtt" =
|
||||
ps: with ps; [
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 { };
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 { };
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue