Merge staging-next into staging
This commit is contained in:
@@ -192,6 +192,12 @@
|
||||
github = "2gn";
|
||||
githubId = 101851090;
|
||||
};
|
||||
_2hexed = {
|
||||
name = "n";
|
||||
email = "2hexed@protonmail.com";
|
||||
github = "2hexed";
|
||||
githubId = 54501296;
|
||||
};
|
||||
_360ied = {
|
||||
name = "Brian Zhu";
|
||||
email = "therealbarryplayer@gmail.com";
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
libxml2,
|
||||
llvmPackages_14,
|
||||
m17n_lib,
|
||||
mailcap,
|
||||
mailutils,
|
||||
makeWrapper,
|
||||
motif,
|
||||
@@ -244,6 +245,14 @@ mkDerivation (finalAttrs: {
|
||||
done
|
||||
''
|
||||
|
||||
''
|
||||
substituteInPlace lisp/net/mailcap.el \
|
||||
--replace-fail '"/etc/mime.types"' \
|
||||
'"/etc/mime.types" "${mailcap}/etc/mime.types"' \
|
||||
--replace-fail '("/etc/mailcap" system)' \
|
||||
'("/etc/mailcap" system) ("${mailcap}/etc/mailcap" system)'
|
||||
''
|
||||
|
||||
""
|
||||
];
|
||||
|
||||
|
||||
@@ -2500,6 +2500,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
illixion.vscode-vibrancy-continued = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-vibrancy-continued";
|
||||
publisher = "illixion";
|
||||
version = "1.1.44";
|
||||
hash = "sha256-1oEfnS7BBKPJ9cSu05S6GQsN76nk5JW7aBq/2O8raSY=";
|
||||
};
|
||||
meta = {
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=illixion.vscode-vibrancy-continued";
|
||||
changelog = "https://marketplace.visualstudio.com/items/illixion.vscode-vibrancy-continued/changelog";
|
||||
homepage = "https://github.com/illixion/vscode-vibrancy-continued#readme";
|
||||
description = "Vibrancy Effect for Visual Studio Code";
|
||||
maintainers = with lib.maintainers; [ _2hexed ];
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
influxdata.flux = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
publisher = "influxdata";
|
||||
|
||||
@@ -21,8 +21,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
|
||||
mktplcRef = {
|
||||
name = "python";
|
||||
publisher = "ms-python";
|
||||
version = "2025.1.2025022501";
|
||||
hash = "sha256-hPVT86Uvok4BAKbbB6FhjWxQoEY/TWVKCliEn/+QNWY=";
|
||||
version = "2025.2.0";
|
||||
hash = "sha256-bq6xcNTzGsnoAcwjn4yyCVN7n4kXOPULHu0V2Vgzu68=";
|
||||
};
|
||||
|
||||
buildInputs = [ icu ];
|
||||
|
||||
@@ -36,22 +36,22 @@ let
|
||||
|
||||
sha256 =
|
||||
{
|
||||
x86_64-linux = "11a0y0zdz3mmc2xvpnlq06a7q06y6529xpp4hlhpjylj0bk06xn1";
|
||||
x86_64-darwin = "12fxhwqcz36f5pv4kvs7bblmymxyixg7pvi0gb5k0j73pkvqrr6g";
|
||||
aarch64-linux = "0g5qz7gq7k65p2f8iwz1jiy03nwsmy3v3gb18qwg9mbhm0dk59la";
|
||||
aarch64-darwin = "1g4fz8nw5m7krjlsjs43937kz1sr7lkflbphpyh8cmalwpxa8ysn";
|
||||
armv7l-linux = "09r12y9xbpqnnw9mab3k4kx0ngpfng1l6rk09n9l2q36ji20ijmy";
|
||||
x86_64-linux = "1yywjdpdv2y71mdja7pzfj15vdrv1wj6r8k7a8n8sldk1blv0d1s";
|
||||
x86_64-darwin = "1nai04fvl1v18v6vbgrf7rbzx72q2pn2n5hxccm5jf99ismynp0a";
|
||||
aarch64-linux = "0hsm6iczad5pa8dvxgwn34n1bpcfbl1732a199zscng94zybm02w";
|
||||
aarch64-darwin = "0bg7jmjb0y754h6xampwfisklk9gql0ppik93prsd5kvgq537567";
|
||||
armv7l-linux = "0pmv3n99353vwwi9d0y7qgcwip4srw7mc1c3fl8zn1p2i7w4pw78";
|
||||
}
|
||||
.${system} or throwSystem;
|
||||
in
|
||||
callPackage ./generic.nix rec {
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.97.2";
|
||||
version = "1.98.0";
|
||||
pname = "vscode" + lib.optionalString isInsiders "-insiders";
|
||||
|
||||
# This is used for VS Code - Remote SSH test
|
||||
rev = "e54c774e0add60467559eb0d1e229c6452cf8447";
|
||||
rev = "6609ac3d66f4eade5cf376d1cb76f13985724bcb";
|
||||
|
||||
executableName = "code" + lib.optionalString isInsiders "-insiders";
|
||||
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
|
||||
@@ -75,7 +75,7 @@ callPackage ./generic.nix rec {
|
||||
src = fetchurl {
|
||||
name = "vscode-server-${rev}.tar.gz";
|
||||
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
|
||||
sha256 = "15fd401sqmlkpw48pysqpyi5rlsqx4cm55bbwakhkal4qa1qnq4m";
|
||||
sha256 = "0v4qbmv7m4880vpawdnrl123fgg82gvnyvvq0imwi6mhb5z73ibs";
|
||||
};
|
||||
stdenv = stdenvNoCC;
|
||||
};
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
let
|
||||
pname = "1password";
|
||||
version = if channel == "stable" then "8.10.60" else "8.10.60-4.BETA";
|
||||
version = if channel == "stable" then "8.10.60" else "8.10.68-12.BETA";
|
||||
|
||||
sources = {
|
||||
stable = {
|
||||
@@ -34,19 +34,19 @@ let
|
||||
beta = {
|
||||
x86_64-linux = {
|
||||
url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
|
||||
hash = "sha256-c9r/t7VpClf2RQfLLyKdpU90RYlPEPA4N2PjrL2QXAo=";
|
||||
hash = "sha256-/0Y1qnCI/gXGKTHk9EIaUVbHTwRkOvwOOiMif6sRkqw=";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
|
||||
hash = "sha256-Tf19dRmf7wufUJQf9m/M2Nwrs4yGW/idzs8FsgkM96o=";
|
||||
hash = "sha256-4J6a10r5n8ffqC5Y2pjO/GJLXY5AQDkQWmFNLYeK/Xw=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
|
||||
hash = "sha256-lOQjuXLCCBF1lmEwkLrfX8Pjlwwx5wAa5WBDdf60VnQ=";
|
||||
hash = "sha256-XvflRqqUI59ekuSiQXyACzS94VIrl8wJjemi0xAznZU=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
|
||||
hash = "sha256-2wYmLIxvUDlqKrCsSmI/yCoNOrMEgPdfrHJHMwFYkyo=";
|
||||
hash = "sha256-UErp3pcSXz/C5s3JraLoBN89tL8ghgJ3XLpg7KtU8Sc=";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -41,17 +41,17 @@ in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = binName;
|
||||
|
||||
version = "0.20.2";
|
||||
version = "0.20.3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "toeverything";
|
||||
repo = "AFFiNE";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-MbDc0p0Mvjd5Hhysy4iYuDJpjRc9tj2dUuj4ta6Ux3k=";
|
||||
hash = "sha256-L6+ZJ4U/mz1Z/Ql7v5pukZ1DLjhaSnvFvvQYDAdR2Zk=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-r7oKeW43nib1AAdb22+PEP8PLcRcuAM1vjLlcZEeMP0=";
|
||||
hash = "sha256-Ob+A7NMTFuJ2wmRkHmemHnqkEAiY7G8NyxXXrT7NTR8=";
|
||||
};
|
||||
yarnOfflineCache = stdenvNoCC.mkDerivation {
|
||||
name = "yarn-offline-cache";
|
||||
@@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
dontInstall = true;
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha256-BMyDIoW9pNvS5BRMN+Wxu+3EFKCiuSdTGsljel7/wUM=";
|
||||
outputHash = "sha256-e5GNWgeYw4CcpOGDd/LNk+syBupqAuws0hz+wUbaFL4=";
|
||||
};
|
||||
nativeBuildInputs =
|
||||
[
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "htgettoken";
|
||||
version = "2.0-2";
|
||||
version = "2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fermitools";
|
||||
repo = pname;
|
||||
tag = "v${version}";
|
||||
hash = "sha256-1rF72zo/Jj4ZeEG2Nk6Wla+AfaDo5iPZhZP1j9WAK5I=";
|
||||
hash = "sha256-cp/Y4l59MscQIrHjVdMUQEqgFZTPTEfVdRoH/pOG5uQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/music_assistant/helpers/util.py b/music_assistant/helpers/util.py
|
||||
index b6e5f2b4..0edead16 100644
|
||||
index 8daf159d..af5a6f38 100644
|
||||
--- a/music_assistant/helpers/util.py
|
||||
+++ b/music_assistant/helpers/util.py
|
||||
@@ -424,29 +424,11 @@ async def load_provider_module(domain: str, requirements: list[str]) -> Provider
|
||||
@@ -429,30 +429,11 @@ async def load_provider_module(domain: str, requirements: list[str]) -> Provider
|
||||
def _get_provider_module(domain: str) -> ProviderModuleType:
|
||||
return importlib.import_module(f".{domain}", "music_assistant.providers")
|
||||
|
||||
@@ -29,7 +29,8 @@ index b6e5f2b4..0edead16 100644
|
||||
- # try loading the provider again to be safe
|
||||
- # this will fail if something else is wrong (as it should)
|
||||
- return await asyncio.to_thread(_get_provider_module, domain)
|
||||
+ raise RuntimeError(f"Missing dependencies for provider {domain}")
|
||||
|
||||
-
|
||||
+ raise RuntimeError(f"Missing dependencies for provider {domain}.")
|
||||
|
||||
def create_tempfile():
|
||||
"""Return a (named) temporary file."""
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/music_assistant/helpers/audio.py b/music_assistant/helpers/audio.py
|
||||
index dad3c5db..d1398d66 100644
|
||||
index 482ab8e8..a02fc435 100644
|
||||
--- a/music_assistant/helpers/audio.py
|
||||
+++ b/music_assistant/helpers/audio.py
|
||||
@@ -74,7 +74,7 @@ async def crossfade_pcm_parts(
|
||||
@@ -80,7 +80,7 @@ async def crossfade_pcm_parts(
|
||||
await outfile.write(fade_out_part)
|
||||
args = [
|
||||
# generic args
|
||||
@@ -11,7 +11,7 @@ index dad3c5db..d1398d66 100644
|
||||
"-hide_banner",
|
||||
"-loglevel",
|
||||
"quiet",
|
||||
@@ -135,7 +135,7 @@ async def strip_silence(
|
||||
@@ -141,7 +141,7 @@ async def strip_silence(
|
||||
reverse: bool = False,
|
||||
) -> bytes:
|
||||
"""Strip silence from begin or end of pcm audio using ffmpeg."""
|
||||
@@ -20,16 +20,7 @@ index dad3c5db..d1398d66 100644
|
||||
args += [
|
||||
"-acodec",
|
||||
pcm_format.content_type.name.lower(),
|
||||
@@ -734,7 +734,7 @@ async def get_file_stream(
|
||||
async def check_audio_support() -> tuple[bool, bool, str]:
|
||||
"""Check if ffmpeg is present (with/without libsoxr support)."""
|
||||
# check for FFmpeg presence
|
||||
- returncode, output = await check_output("ffmpeg", "-version")
|
||||
+ returncode, output = await check_output("@ffmpeg@", "-version")
|
||||
ffmpeg_present = returncode == 0 and "FFmpeg" in output.decode()
|
||||
|
||||
# use globals as in-memory cache
|
||||
@@ -789,7 +789,7 @@ async def get_silence(
|
||||
@@ -912,7 +912,7 @@ async def get_silence(
|
||||
return
|
||||
# use ffmpeg for all other encodings
|
||||
args = [
|
||||
@@ -39,11 +30,11 @@ index dad3c5db..d1398d66 100644
|
||||
"-loglevel",
|
||||
"quiet",
|
||||
diff --git a/music_assistant/helpers/ffmpeg.py b/music_assistant/helpers/ffmpeg.py
|
||||
index 0405fc27..570f9157 100644
|
||||
index 7c1c8d83..501a7370 100644
|
||||
--- a/music_assistant/helpers/ffmpeg.py
|
||||
+++ b/music_assistant/helpers/ffmpeg.py
|
||||
@@ -213,7 +213,7 @@ def get_ffmpeg_args( # noqa: PLR0915
|
||||
|
||||
@@ -218,7 +218,7 @@ def get_ffmpeg_args(
|
||||
extra_args = []
|
||||
# generic args
|
||||
generic_args = [
|
||||
- "ffmpeg",
|
||||
@@ -51,11 +42,20 @@ index 0405fc27..570f9157 100644
|
||||
"-hide_banner",
|
||||
"-loglevel",
|
||||
loglevel,
|
||||
@@ -370,7 +370,7 @@ async def check_ffmpeg_version() -> None:
|
||||
"""Check if ffmpeg is present (with libsoxr support)."""
|
||||
# check for FFmpeg presence
|
||||
try:
|
||||
- returncode, output = await check_output("ffmpeg", "-version")
|
||||
+ returncode, output = await check_output("@ffmpeg@", "-version")
|
||||
except FileNotFoundError:
|
||||
raise AudioError(
|
||||
"FFmpeg binary is missing from system. "
|
||||
diff --git a/music_assistant/helpers/tags.py b/music_assistant/helpers/tags.py
|
||||
index 55def74b..7c26e13d 100644
|
||||
index 06c8bcb5..a703aacd 100644
|
||||
--- a/music_assistant/helpers/tags.py
|
||||
+++ b/music_assistant/helpers/tags.py
|
||||
@@ -387,7 +387,7 @@ async def parse_tags(input_file: str, file_size: int | None = None) -> AudioTags
|
||||
@@ -438,7 +438,7 @@ def parse_tags(input_file: str, file_size: int | None = None) -> AudioTags:
|
||||
Input_file may be a (local) filename or URL accessible by ffmpeg.
|
||||
"""
|
||||
args = (
|
||||
@@ -64,7 +64,7 @@ index 55def74b..7c26e13d 100644
|
||||
"-hide_banner",
|
||||
"-loglevel",
|
||||
"fatal",
|
||||
@@ -448,7 +448,7 @@ async def get_embedded_image(input_file: str) -> bytes | None:
|
||||
@@ -553,7 +553,7 @@ async def get_embedded_image(input_file: str) -> bytes | None:
|
||||
Input_file may be a (local) filename or URL accessible by ffmpeg.
|
||||
"""
|
||||
args = (
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "music-assistant-frontend";
|
||||
version = "2.9.16";
|
||||
version = "2.11.11";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-bUtclj8GMq1JdC4tYNETl+l+TNF91y4yTANSpuOOm70=";
|
||||
hash = "sha256-fPFszZfJjdc2KTQipeb2KVbIwWwL56bqFGba1LSJXuQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
diff --git a/music_assistant/providers/spotify/helpers.py b/music_assistant/providers/spotify/helpers.py
|
||||
index 8b6c4e78..20c2a269 100644
|
||||
--- a/music_assistant/providers/spotify/helpers.py
|
||||
+++ b/music_assistant/providers/spotify/helpers.py
|
||||
@@ -11,23 +11,4 @@ from music_assistant.helpers.process import check_output
|
||||
async def get_librespot_binary() -> str:
|
||||
"""Find the correct librespot binary belonging to the platform."""
|
||||
|
||||
- # ruff: noqa: SIM102
|
||||
- async def check_librespot(librespot_path: str) -> str | None:
|
||||
- try:
|
||||
- returncode, output = await check_output(librespot_path, "--version")
|
||||
- if returncode == 0 and b"librespot" in output:
|
||||
- return librespot_path
|
||||
- except OSError:
|
||||
- return None
|
||||
-
|
||||
- base_path = os.path.join(os.path.dirname(__file__), "bin")
|
||||
- system = platform.system().lower().replace("darwin", "macos")
|
||||
- architecture = platform.machine().lower()
|
||||
-
|
||||
- if bridge_binary := await check_librespot(
|
||||
- os.path.join(base_path, f"librespot-{system}-{architecture}")
|
||||
- ):
|
||||
- return bridge_binary
|
||||
-
|
||||
- msg = f"Unable to locate Librespot for {system}/{architecture}"
|
||||
- raise RuntimeError(msg)
|
||||
+ return "@librespot@"
|
||||
@@ -3,6 +3,7 @@
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
ffmpeg-headless,
|
||||
librespot,
|
||||
nixosTests,
|
||||
replaceVars,
|
||||
providers ? [ ],
|
||||
@@ -12,27 +13,16 @@ let
|
||||
python = python3.override {
|
||||
self = python;
|
||||
packageOverrides = self: super: {
|
||||
aiojellyfin = super.aiojellyfin.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "0.10.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Jc2k";
|
||||
repo = "aiojellyfin";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-A+uvM1/7HntRMIdknfHr0TMGIjHk7BCwsZopXdVoEO8=";
|
||||
};
|
||||
});
|
||||
|
||||
music-assistant-frontend = self.callPackage ./frontend.nix { };
|
||||
|
||||
music-assistant-models = super.music-assistant-models.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.1.4";
|
||||
version = "1.1.30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "music-assistant";
|
||||
repo = "models";
|
||||
tag = version;
|
||||
hash = "sha256-keig18o32X53q/QcoaPO0o9AT4XTEZ+dQ3L6u6BVkLU=";
|
||||
hash = "sha256-ZLTRHarjVFAk+tYPkgLm192rE+C82vNzqs8PmJhGSeg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -54,14 +44,14 @@ in
|
||||
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "music-assistant";
|
||||
version = "2.3.6";
|
||||
version = "2.4.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "music-assistant";
|
||||
repo = "server";
|
||||
tag = version;
|
||||
hash = "sha256-CSGpG1E4ou1TGz/S1mXFHyk49p7dStEwxUTB+xxfNEc=";
|
||||
hash = "sha256-5FIIXIn4tEz6w/uAh6PGkU4tU+mz7Jpb3+bq1mRNr2Y=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -69,6 +59,9 @@ python.pkgs.buildPythonApplication rec {
|
||||
ffmpeg = "${lib.getBin ffmpeg-headless}/bin/ffmpeg";
|
||||
ffprobe = "${lib.getBin ffmpeg-headless}/bin/ffprobe";
|
||||
})
|
||||
(replaceVars ./librespot.patch {
|
||||
librespot = lib.getExe librespot;
|
||||
})
|
||||
|
||||
# Disable interactive dependency resolution, which clashes with the immutable Python environment
|
||||
./dont-install-deps.patch
|
||||
@@ -77,6 +70,8 @@ python.pkgs.buildPythonApplication rec {
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace-fail "0.0.0" "${version}"
|
||||
|
||||
rm -rv music_assistant/providers/spotify/bin
|
||||
'';
|
||||
|
||||
build-system = with python.pkgs; [
|
||||
@@ -85,6 +80,7 @@ python.pkgs.buildPythonApplication rec {
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"aiohttp"
|
||||
"aiosqlite"
|
||||
"certifi"
|
||||
"colorlog"
|
||||
"cryptography"
|
||||
@@ -123,8 +119,10 @@ python.pkgs.buildPythonApplication rec {
|
||||
memory-tempfile
|
||||
music-assistant-frontend
|
||||
music-assistant-models
|
||||
mutagen
|
||||
orjson
|
||||
pillow
|
||||
podcastparser
|
||||
python-slugify
|
||||
shortuuid
|
||||
unidecode
|
||||
@@ -136,7 +134,6 @@ python.pkgs.buildPythonApplication rec {
|
||||
nativeCheckInputs =
|
||||
with python.pkgs;
|
||||
[
|
||||
aiojellyfin
|
||||
pytest-aiohttp
|
||||
pytest-cov-stub
|
||||
pytest-timeout
|
||||
@@ -144,7 +141,9 @@ python.pkgs.buildPythonApplication rec {
|
||||
syrupy
|
||||
pytest-timeout
|
||||
]
|
||||
++ lib.flatten (lib.attrValues optional-dependencies);
|
||||
++ lib.flatten (lib.attrValues optional-dependencies)
|
||||
++ (providerPackages.jellyfin python.pkgs)
|
||||
++ (providerPackages.opensubsonic python.pkgs);
|
||||
|
||||
pytestFlagsArray = [
|
||||
# blocks in poll()
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
# Do not edit manually, run ./update-providers.py
|
||||
|
||||
{
|
||||
version = "2.3.6";
|
||||
version = "2.4.2";
|
||||
providers = {
|
||||
airplay = ps: [
|
||||
];
|
||||
apple_music = ps: [
|
||||
]; # missing pywidevine
|
||||
audible =
|
||||
ps: with ps; [
|
||||
audible
|
||||
];
|
||||
audiobookshelf =
|
||||
ps: with ps; [
|
||||
aioaudiobookshelf
|
||||
];
|
||||
bluesound =
|
||||
ps: with ps; [
|
||||
pyblu
|
||||
@@ -19,8 +27,9 @@
|
||||
];
|
||||
deezer =
|
||||
ps: with ps; [
|
||||
deezer-python-async
|
||||
pycryptodome
|
||||
]; # missing deezer-python-async
|
||||
];
|
||||
dlna =
|
||||
ps: with ps; [
|
||||
async-upnp-client
|
||||
@@ -41,6 +50,8 @@
|
||||
];
|
||||
hass_players = ps: [
|
||||
];
|
||||
ibroadcast = ps: [
|
||||
]; # missing ibroadcastaio
|
||||
jellyfin =
|
||||
ps: with ps; [
|
||||
aiojellyfin
|
||||
@@ -57,6 +68,10 @@
|
||||
ps: with ps; [
|
||||
plexapi
|
||||
];
|
||||
podcastfeed =
|
||||
ps: with ps; [
|
||||
podcastparser
|
||||
];
|
||||
qobuz = ps: [
|
||||
];
|
||||
radiobrowser =
|
||||
@@ -87,6 +102,8 @@
|
||||
ps: with ps; [
|
||||
pkce
|
||||
];
|
||||
spotify_connect = ps: [
|
||||
];
|
||||
template_player_provider = ps: [
|
||||
];
|
||||
test = ps: [
|
||||
@@ -101,6 +118,7 @@
|
||||
];
|
||||
ytmusic =
|
||||
ps: with ps; [
|
||||
duration-parser
|
||||
yt-dlp
|
||||
ytmusicapi
|
||||
];
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
lib,
|
||||
binutils,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
cmake,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
@@ -126,7 +127,15 @@ stdenv.mkDerivation rec {
|
||||
patches = [
|
||||
# Fix for webkitgtk linking
|
||||
./patches/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
|
||||
# Link opencv_core and opencv_imgproc instead of opencv_world
|
||||
./patches/dont-link-opencv-world-orca.patch
|
||||
# The changeset from https://github.com/SoftFever/OrcaSlicer/pull/7650, can be removed when that PR gets merged
|
||||
# Allows disabling the update nag screen
|
||||
(fetchpatch {
|
||||
name = "pr-7650-configurable-update-check.patch";
|
||||
url = "https://github.com/SoftFever/OrcaSlicer/commit/d10a06ae11089cd1f63705e87f558e9392f7a167.patch";
|
||||
hash = "sha256-t4own5AwPsLYBsGA15id5IH1ngM0NSuWdFsrxMRXmTk=";
|
||||
})
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
@@ -186,6 +195,7 @@ stdenv.mkDerivation rec {
|
||||
"-DCMAKE_CXX_FLAGS=-DGL_SILENCE_DEPRECATION"
|
||||
"-DCMAKE_EXE_LINKER_FLAGS=-Wl,--no-as-needed"
|
||||
"-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${mesa.drivers}/lib -Wl,-rpath,${mesa.osmesa}/lib"
|
||||
"-DORCA_VERSION_CHECK_DEFAULT=OFF"
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
|
||||
@@ -62,13 +62,13 @@ in
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "servo";
|
||||
version = "0-unstable-2025-03-01";
|
||||
version = "0-unstable-2025-03-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "servo";
|
||||
repo = "servo";
|
||||
rev = "ce977636f63c2cded3c2d26cce548efbb91312b2";
|
||||
hash = "sha256-m+VWSuxXRdY2Pqs7akmtpzrGmFLCY/5WSD/5cQU8RU4=";
|
||||
rev = "69e749947910480e97ffaf22031316ebe7f67b9c";
|
||||
hash = "sha256-p06547WijlfAUgMzbCyQUFx7Xq+eUI+iB6inQguzJ1c=";
|
||||
# Breaks reproducibility depending on whether the picked commit
|
||||
# has other ref-names or not, which may change over time, i.e. with
|
||||
# "ref-names: HEAD -> main" as long this commit is the branch HEAD
|
||||
@@ -79,7 +79,7 @@ rustPlatform.buildRustPackage {
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-O7M1NJRaUPyh1+i8Ab2vvCwHMLBSMfwgEkfFCuIA9TA=";
|
||||
cargoHash = "sha256-znHKck88XXjl+v3iJFCjq0Cxyxh1HrtLbK9o3y8Kelw=";
|
||||
|
||||
postPatch = ''
|
||||
# Remap absolute path between modules to include SEMVER
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "snakemake";
|
||||
version = "8.29.0";
|
||||
version = "8.29.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "snakemake";
|
||||
repo = "snakemake";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-vGa0N5jbm+b4FH1rkvZI5yI005K0D5AP29JGK2wscps=";
|
||||
hash = "sha256-69NsbfHF29l92gwO8If9vp8Cdjac3BnO+hbY3b2bZ8E=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -152,7 +152,7 @@ python3Packages.buildPythonApplication rec {
|
||||
homepage = "https://snakemake.github.io";
|
||||
license = lib.licenses.mit;
|
||||
description = "Python-based execution environment for make-like workflows";
|
||||
changelog = "https://github.com/snakemake/snakemake/blob/v${version}/CHANGELOG.md";
|
||||
changelog = "https://github.com/snakemake/snakemake/blob/${src.tag}/CHANGELOG.md";
|
||||
mainProgram = "snakemake";
|
||||
longDescription = ''
|
||||
Snakemake is a workflow management system that aims to reduce the complexity of
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
let
|
||||
version = "1.1.7.1";
|
||||
version = "1.2.0.0";
|
||||
tag = "v${version}";
|
||||
in
|
||||
buildGoModule {
|
||||
@@ -15,10 +15,10 @@ buildGoModule {
|
||||
owner = "yorukot";
|
||||
repo = "superfile";
|
||||
inherit tag;
|
||||
hash = "sha256-v7EfMgOsc6FSGIjYkF+44t0wl34WFmokOtzNOAOneBc=";
|
||||
hash = "sha256-ByCKpNUWwVzO6A8Ad9V0P0lsquYgVqDS3eCta5iOfXI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-MdOdQQZhiuOJtnj5n1uVbJV6KIs0aa1HLZpFmvxxsWY=";
|
||||
vendorHash = "sha256-5mjy6Mu/p7UJCxn2XRbgtfGmrS+9bEt4+EVheYZcDpY=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
aiohttp,
|
||||
mashumaro,
|
||||
python-socketio,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aioaudiobookshelf";
|
||||
version = "0.1.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "music-assistant";
|
||||
repo = "aioaudiobookshelf";
|
||||
tag = version;
|
||||
hash = "sha256-rUd8TwmQDeMxXu7/UBnN426N+BMas2u6RNpTBXa3/5g=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
aiohttp
|
||||
mashumaro
|
||||
python-socketio
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"aioaudiobookshelf"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Async python library to interact with Audiobookshelf";
|
||||
homepage = "https://github.com/music-assistant/aioaudiobookshelf";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ hexa ];
|
||||
};
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aiorun";
|
||||
version = "2024.8.1";
|
||||
version = "2025.1.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "cjrh";
|
||||
repo = "aiorun";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-D+4IceCdPg1Akq1YgPuSGF7yAOhDe8PmioNBE5X7yuQ=";
|
||||
hash = "sha256-YqUlWf79EbC47BETBDjo8hzg5jhL4LiWLKGr1Qy4AbM=";
|
||||
};
|
||||
|
||||
build-system = [ flit-core ];
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
|
||||
# build-system
|
||||
poetry-core,
|
||||
|
||||
# dependencies
|
||||
aiohttp,
|
||||
asyncio-throttle,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "deezer-python-async";
|
||||
version = "0.3.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "music-assistant";
|
||||
repo = "deezer-python-async";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-uuAB+SC/ECG50ox/6Bi+94bAt+YZokeQChpDQUAK+zc=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
poetry-core
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
aiohttp
|
||||
asyncio-throttle
|
||||
];
|
||||
|
||||
doCheck = false; # requires access to the deezer api
|
||||
|
||||
pythonImportsCheck = [
|
||||
"deezer"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Deezer client for python *but async";
|
||||
homepage = "https://github.com/music-assistant/deezer-python-async";
|
||||
changelog = "https://github.com/music-assistant/deezer-python-async/blob/${src.tag}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hexa ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "duration-parser";
|
||||
version = "1.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "adriansahlman";
|
||||
repo = "duration-parser";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Vn3H2JEMrJ6b/7eNG+h9tG5QzslGvaV3sunM7UO9Bok=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"duration_parser"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "A minimal duration parser written in python";
|
||||
homepage = "https://github.com/adriansahlman/duration-parser";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hexa ];
|
||||
};
|
||||
}
|
||||
@@ -15,14 +15,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "scikit-hep-testdata";
|
||||
version = "0.5.2";
|
||||
version = "0.5.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scikit-hep";
|
||||
repo = "scikit-hep-testdata";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-yG9ZeBKB0NcTZ8zU0iJTSwDvaafD+2FzkDk2dVYSJO8=";
|
||||
hash = "sha256-T325BqQquuTwSKaei4O+UBzzB+OIXhubdPNaBmVkrCk=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools-scm ];
|
||||
@@ -41,7 +41,7 @@ buildPythonPackage rec {
|
||||
meta = {
|
||||
homepage = "https://github.com/scikit-hep/scikit-hep-testdata";
|
||||
description = "Common package to provide example files (e.g., ROOT) for testing and developing packages against";
|
||||
changelog = "https://github.com/scikit-hep/scikit-hep-testdata/releases/tag/v${version}";
|
||||
changelog = "https://github.com/scikit-hep/scikit-hep-testdata/releases/tag/${src.tag}";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ veprbl ];
|
||||
};
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "jwillemsen";
|
||||
domain = "daikin_onecta";
|
||||
version = "4.2.2";
|
||||
version = "4.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jwillemsen";
|
||||
repo = "daikin_onecta";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-kjFBy+Nq9aQSsmvzWT2Wy/BwMpyd8GdgSXIrp44cMnA=";
|
||||
hash = "sha256-ylVHgmE6zDLE73KpuIag0iUx77w6ujp3cF/+x2bJiA8=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -2,25 +2,55 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildHomeAssistantComponent,
|
||||
pytz,
|
||||
|
||||
# dependencies
|
||||
hass-web-proxy-lib,
|
||||
|
||||
# tests
|
||||
homeassistant,
|
||||
pytest-aiohttp,
|
||||
pytest-cov-stub,
|
||||
pytest-homeassistant-custom-component,
|
||||
pytest-timeout,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "blakeblackshear";
|
||||
domain = "frigate";
|
||||
version = "5.4.0";
|
||||
version = "5.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "blakeblackshear";
|
||||
repo = "frigate-hass-integration";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-V2Y+xUAA/Lu7u82WUlUI5CFi9SGWe6ocVQtlXeVg2ZA=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-sQgi3F44eT/iL3cE9YuKyjJmE4nZM+OcwirUyl3maGo=";
|
||||
};
|
||||
|
||||
dependencies = [ pytz ];
|
||||
dependencies = [ hass-web-proxy-lib ];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
nativeCheckInputs =
|
||||
[
|
||||
homeassistant
|
||||
pytest-aiohttp
|
||||
pytest-cov-stub
|
||||
pytest-homeassistant-custom-component
|
||||
pytest-timeout
|
||||
pytestCheckHook
|
||||
]
|
||||
++ (homeassistant.getPackages "mqtt" homeassistant.python.pkgs)
|
||||
++ (homeassistant.getPackages "stream" homeassistant.python.pkgs);
|
||||
|
||||
disabledTests = [
|
||||
# uses deprecated and removed constants
|
||||
# https://github.com/blakeblackshear/frigate-hass-integration/issues/860
|
||||
"test_duplicate"
|
||||
"test_options_advanced"
|
||||
"test_options"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Provides Home Assistant integration to interface with a separately running Frigate service";
|
||||
homepage = "https://github.com/blakeblackshear/frigate-hass-integration";
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "xZetsubou";
|
||||
domain = "localtuya";
|
||||
version = "2025.3.0";
|
||||
version = "2025.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xZetsubou";
|
||||
repo = "hass-localtuya";
|
||||
rev = version;
|
||||
hash = "sha256-ZtUK73aj2NKlcanlFZLeL35X1M9CrMLYLW0P0cILdr8=";
|
||||
hash = "sha256-DZ0TS6vdMDBCYP661GeRm+pAmm387/+/DayIBkeuPQA=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -2,36 +2,26 @@
|
||||
lib,
|
||||
buildHomeAssistantComponent,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
aiofiles,
|
||||
broadlink,
|
||||
distutils,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "smartHomeHub";
|
||||
domain = "smartir";
|
||||
version = "1.17.9";
|
||||
version = "1.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "smartHomeHub";
|
||||
repo = "SmartIR";
|
||||
rev = version;
|
||||
hash = "sha256-E6TM761cuaeQzlbjA+oZ+wt5HTJAfkF2J3i4P1Wbuic=";
|
||||
tag = version;
|
||||
hash = "sha256-Sy1wxVUApKWm9TlDia2Gwd+mIi7WbDkzJrAtyb0tTbM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Replace distutils.version.StrictVersion with packaging.version.Version
|
||||
# https://github.com/smartHomeHub/SmartIR/pull/1250
|
||||
(fetchpatch {
|
||||
url = "https://github.com/smartHomeHub/SmartIR/commit/1ed8ef23a8f7b9dcae75721eeab8d5f79013b851.patch";
|
||||
hash = "sha256-IhdnTDtUa7mS+Vw/+BqfqWIKK4hbshbVgJNjfKjgAvI=";
|
||||
})
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
aiofiles
|
||||
broadlink
|
||||
distutils
|
||||
];
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "al-one";
|
||||
domain = "xiaomi_miot";
|
||||
version = "1.0.12";
|
||||
version = "1.0.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "al-one";
|
||||
repo = "hass-xiaomi-miot";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-WU512UnKRHVoflerXK4vs/wJXxaerC1XVhfLN1YPh84=";
|
||||
hash = "sha256-RjEhmdoImfWcvrQ09wX3WaWS8qKuzL2+2Rrz1BfEFFA=";
|
||||
};
|
||||
|
||||
dependencies = [
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "cdnninja";
|
||||
domain = "yoto";
|
||||
version = "1.23.0";
|
||||
version = "1.23.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cdnninja";
|
||||
repo = "yoto_ha";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-FB711ofk5BV/U0ZWfa6Q2aheZkzbwxDUfqNDu9wj2aQ=";
|
||||
hash = "sha256-RErsZGSoBhBGg852znZq6W8oDZmDDoPTZihUBhWCO5w=";
|
||||
};
|
||||
|
||||
dependencies = [
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchzip,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "advanced-camera-card";
|
||||
version = "7.3.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/dermotduffy/advanced-camera-card/releases/download/v${version}/advanced-camera-card.zip";
|
||||
hash = "sha256-N9G96yGas1hrB2zpUPrB+md7Nz2vg7/2NhyqNjFBlxM=";
|
||||
};
|
||||
|
||||
# TODO: build from source once yarn berry support lands in nixpkgs
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -d $out
|
||||
install -m0644 *.js $out/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/dermotduffy/advanced-camera-card/releases/tag/v${version}";
|
||||
description = "A comprehensive camera card for Home Assistant";
|
||||
homepage = "https://github.com/dermotduffy/advanced-camera-card";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hexa ];
|
||||
};
|
||||
}
|
||||
@@ -9,18 +9,18 @@
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "clock-weather-card";
|
||||
version = "2.8.9";
|
||||
version = "2.8.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pkissling";
|
||||
repo = "clock-weather-card";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-7b0U6HelWLoCvkJrqzRbRyDnl0odi6OYYEp0sUOYnoU=";
|
||||
hash = "sha256-ZmqtvA6kRkqkoRCBerLZXqRB1wwTF0jrc+KfigaE7Pw=";
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
hash = "sha256-9MFEJQ9JYUjded6sdDcF/kB+ZdGE6z4MZOzFk1Qb3vo=";
|
||||
hash = "sha256-Z9UZHsmaRjaf7fIDYhNmlLU2T1l1hlFKvyEahPK3Y3E=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -354,6 +354,7 @@ let
|
||||
});
|
||||
|
||||
# internal python packages only consumed by home-assistant itself
|
||||
hass-web-proxy-lib = self.callPackage ./python-modules/hass-web-proxy-lib { };
|
||||
home-assistant-frontend = self.callPackage ./frontend.nix { };
|
||||
home-assistant-intents = self.callPackage ./intents.nix { };
|
||||
homeassistant = self.toPythonModule home-assistant;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pytest-homeassistant-custom-component";
|
||||
version = "0.13.214";
|
||||
version = "0.13.220";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.12";
|
||||
@@ -27,7 +27,7 @@ buildPythonPackage rec {
|
||||
owner = "MatthewFlamm";
|
||||
repo = "pytest-homeassistant-custom-component";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-AbqDLFC/U+zJJF4pc1ovuzwmXLv37ojCpQQIzWUc/70=";
|
||||
hash = "sha256-p/pC0dgKRVPlu3kOiSmeGhbfRW7cPm5W0Lr38XWlcnQ=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
fetchpatch2,
|
||||
|
||||
# build-system
|
||||
poetry-core,
|
||||
|
||||
# dependencies
|
||||
aiohttp,
|
||||
|
||||
# tests
|
||||
home-assistant,
|
||||
pytest-aiohttp,
|
||||
pytest-cov-stub,
|
||||
pytest-homeassistant-custom-component,
|
||||
pytest-timeout,
|
||||
pytestCheckHook,
|
||||
|
||||
# reverse dependencies
|
||||
home-assistant-custom-components,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "hass-web-proxy-lib";
|
||||
version = "0.0.7";
|
||||
pyproject = true;
|
||||
|
||||
# no tags on git
|
||||
src = fetchPypi {
|
||||
pname = "hass_web_proxy_lib";
|
||||
inherit version;
|
||||
hash = "sha256-bhz71tNOpZ+4tSlndS+UbC3w2WW5+dAMtpk7TnnFpuQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
name = "add-missing-build-system.patch";
|
||||
url = "https://github.com/dermotduffy/hass-web-proxy-lib/commit/0eed7a57f503fc552948a45e7f490ddaff711896.patch";
|
||||
hash = "sha256-ccOdhA0NhlTmdA51sNdB357Xh13E4PsLlvUTU4GQ9jk=";
|
||||
})
|
||||
];
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
dependencies = [ aiohttp ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
home-assistant
|
||||
pytest-aiohttp
|
||||
pytest-cov-stub
|
||||
pytest-homeassistant-custom-component
|
||||
pytest-timeout
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"hass_web_proxy_lib"
|
||||
];
|
||||
|
||||
passthru.tests = {
|
||||
inherit (home-assistant-custom-components) frigate;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "A library to proxy web traffic through Home Assistant integrations";
|
||||
homepage = "https://github.com/dermotduffy/hass-web-proxy-lib";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = home-assistant-custom-components.frigate.meta.maintainers;
|
||||
};
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "homeassistant-stubs";
|
||||
version = "2025.2.5";
|
||||
version = "2025.3.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = python.version != home-assistant.python.version;
|
||||
@@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "KapJI";
|
||||
repo = "homeassistant-stubs";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-tqg7NHvtKrXJ8+czcWqoaPMLYfskjuoFmSOkhjmnr3g=";
|
||||
hash = "sha256-4Chn8PRvTERiTQqhp3ScoV6woISvEWHFoohCKzLJCP8=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
pkg-config,
|
||||
protobuf,
|
||||
cacert,
|
||||
garage,
|
||||
nixosTests,
|
||||
}:
|
||||
let
|
||||
@@ -133,10 +132,10 @@ rec {
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
};
|
||||
|
||||
garage_1_0_1 = generic {
|
||||
version = "1.0.1";
|
||||
hash = "sha256-f6N2asycN04I6U5XQ5LEAqYu/v5jYZiFCxZ8YQ32XyM=";
|
||||
cargoHash = "sha256-DX20Uv4g8JO3PlRsTbvr8nF4g9aw1/hW0bfQm6zGBd4=";
|
||||
garage_1_1_0 = generic {
|
||||
version = "1.1.0";
|
||||
hash = "sha256-ysf/GYR39trXTPRdw8uB6E4YDp4nAR8dbU9k9rQTxz0=";
|
||||
cargoHash = "sha256-SkDr/e9YZ3raTGucaiv/RV2zF9tEDIeqZeri6Xk3xEU=";
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
};
|
||||
|
||||
@@ -144,7 +143,7 @@ rec {
|
||||
|
||||
garage_0_9 = garage_0_9_4;
|
||||
|
||||
garage_1_x = garage_1_0_1;
|
||||
garage_1_x = garage_1_1_0;
|
||||
|
||||
garage = garage_1_x;
|
||||
}
|
||||
|
||||
@@ -3347,7 +3347,7 @@ with pkgs;
|
||||
garage
|
||||
garage_0_8 garage_0_9
|
||||
garage_0_8_7 garage_0_9_4
|
||||
garage_1_0_1 garage_1_x;
|
||||
garage_1_1_0 garage_1_x;
|
||||
|
||||
gauge-unwrapped = callPackage ../development/tools/gauge { };
|
||||
gauge = callPackage ../development/tools/gauge/wrapper.nix { };
|
||||
|
||||
@@ -185,6 +185,8 @@ self: super: with self; {
|
||||
|
||||
aioasuswrt = callPackage ../development/python-modules/aioasuswrt { };
|
||||
|
||||
aioaudiobookshelf = callPackage ../development/python-modules/aioaudiobookshelf { };
|
||||
|
||||
aioautomower = callPackage ../development/python-modules/aioautomower { };
|
||||
|
||||
aioazuredevops = callPackage ../development/python-modules/aioazuredevops { };
|
||||
@@ -3194,6 +3196,8 @@ self: super: with self; {
|
||||
|
||||
deezer-python = callPackage ../development/python-modules/deezer-python { };
|
||||
|
||||
deezer-python-async = callPackage ../development/python-modules/deezer-python-async { };
|
||||
|
||||
defang = callPackage ../development/python-modules/defang { };
|
||||
|
||||
defcon = callPackage ../development/python-modules/defcon { };
|
||||
@@ -4036,6 +4040,8 @@ self: super: with self; {
|
||||
|
||||
duo-client = callPackage ../development/python-modules/duo-client { };
|
||||
|
||||
duration-parser = callPackage ../development/python-modules/duration-parser { };
|
||||
|
||||
durationpy = callPackage ../development/python-modules/durationpy { };
|
||||
|
||||
durus = callPackage ../development/python-modules/durus { };
|
||||
|
||||
Reference in New Issue
Block a user