diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index da1751fb2ec5..a1da2bf562d3 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -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"; diff --git a/pkgs/applications/editors/emacs/make-emacs.nix b/pkgs/applications/editors/emacs/make-emacs.nix index 51795c98737d..4002b222084a 100644 --- a/pkgs/applications/editors/emacs/make-emacs.nix +++ b/pkgs/applications/editors/emacs/make-emacs.nix @@ -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)' + '' + "" ]; diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index 17a04822a252..da20ebd26ea0 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -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"; diff --git a/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix b/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix index 4c481fc43e24..29dffb98b0a7 100644 --- a/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix +++ b/pkgs/applications/editors/vscode/extensions/ms-python.python/default.nix @@ -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 ]; diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix index 20608414517b..5eb84b4153e2 100644 --- a/pkgs/applications/editors/vscode/vscode.nix +++ b/pkgs/applications/editors/vscode/vscode.nix @@ -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; }; diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix index d37882b5a348..0be8f36274a3 100644 --- a/pkgs/applications/misc/1password-gui/default.nix +++ b/pkgs/applications/misc/1password-gui/default.nix @@ -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="; }; }; }; diff --git a/pkgs/by-name/af/affine/package.nix b/pkgs/by-name/af/affine/package.nix index 2dcdae5b5e00..65c8bf95cec2 100644 --- a/pkgs/by-name/af/affine/package.nix +++ b/pkgs/by-name/af/affine/package.nix @@ -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 = [ diff --git a/pkgs/by-name/ht/htgettoken/package.nix b/pkgs/by-name/ht/htgettoken/package.nix index 4fd405b5fd52..a83955ab23de 100644 --- a/pkgs/by-name/ht/htgettoken/package.nix +++ b/pkgs/by-name/ht/htgettoken/package.nix @@ -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; [ diff --git a/pkgs/by-name/mu/music-assistant/dont-install-deps.patch b/pkgs/by-name/mu/music-assistant/dont-install-deps.patch index 652a4a072bcd..5281f578bedf 100644 --- a/pkgs/by-name/mu/music-assistant/dont-install-deps.patch +++ b/pkgs/by-name/mu/music-assistant/dont-install-deps.patch @@ -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.""" diff --git a/pkgs/by-name/mu/music-assistant/ffmpeg.patch b/pkgs/by-name/mu/music-assistant/ffmpeg.patch index 158451304a34..e0f8f1360979 100644 --- a/pkgs/by-name/mu/music-assistant/ffmpeg.patch +++ b/pkgs/by-name/mu/music-assistant/ffmpeg.patch @@ -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 = ( diff --git a/pkgs/by-name/mu/music-assistant/frontend.nix b/pkgs/by-name/mu/music-assistant/frontend.nix index 6e62e6a5e70a..4a3a70d31a1d 100644 --- a/pkgs/by-name/mu/music-assistant/frontend.nix +++ b/pkgs/by-name/mu/music-assistant/frontend.nix @@ -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 = '' diff --git a/pkgs/by-name/mu/music-assistant/librespot.patch b/pkgs/by-name/mu/music-assistant/librespot.patch new file mode 100644 index 000000000000..95b135a46b15 --- /dev/null +++ b/pkgs/by-name/mu/music-assistant/librespot.patch @@ -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@" diff --git a/pkgs/by-name/mu/music-assistant/package.nix b/pkgs/by-name/mu/music-assistant/package.nix index c35d0addd85e..382b337bfd53 100644 --- a/pkgs/by-name/mu/music-assistant/package.nix +++ b/pkgs/by-name/mu/music-assistant/package.nix @@ -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() diff --git a/pkgs/by-name/mu/music-assistant/providers.nix b/pkgs/by-name/mu/music-assistant/providers.nix index 52249470f2ab..919e4ad3cd0d 100644 --- a/pkgs/by-name/mu/music-assistant/providers.nix +++ b/pkgs/by-name/mu/music-assistant/providers.nix @@ -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 ]; diff --git a/pkgs/by-name/or/orca-slicer/package.nix b/pkgs/by-name/or/orca-slicer/package.nix index faa025a797f0..96b996e4f38c 100644 --- a/pkgs/by-name/or/orca-slicer/package.nix +++ b/pkgs/by-name/or/orca-slicer/package.nix @@ -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 = '' diff --git a/pkgs/by-name/se/servo/package.nix b/pkgs/by-name/se/servo/package.nix index de06d0c2ae7e..f8787f1e00b5 100644 --- a/pkgs/by-name/se/servo/package.nix +++ b/pkgs/by-name/se/servo/package.nix @@ -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 diff --git a/pkgs/by-name/sn/snakemake/package.nix b/pkgs/by-name/sn/snakemake/package.nix index 8b46b27e5fcb..39e607a5a941 100644 --- a/pkgs/by-name/sn/snakemake/package.nix +++ b/pkgs/by-name/sn/snakemake/package.nix @@ -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 diff --git a/pkgs/by-name/su/superfile/package.nix b/pkgs/by-name/su/superfile/package.nix index ef512fa58472..2a364fbb7bcb 100644 --- a/pkgs/by-name/su/superfile/package.nix +++ b/pkgs/by-name/su/superfile/package.nix @@ -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" diff --git a/pkgs/development/python-modules/aioaudiobookshelf/default.nix b/pkgs/development/python-modules/aioaudiobookshelf/default.nix new file mode 100644 index 000000000000..e89fc1f99b57 --- /dev/null +++ b/pkgs/development/python-modules/aioaudiobookshelf/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/python-modules/aiorun/default.nix b/pkgs/development/python-modules/aiorun/default.nix index 0ec07882d17e..911c97e0af4e 100644 --- a/pkgs/development/python-modules/aiorun/default.nix +++ b/pkgs/development/python-modules/aiorun/default.nix @@ -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 ]; diff --git a/pkgs/development/python-modules/deezer-python-async/default.nix b/pkgs/development/python-modules/deezer-python-async/default.nix new file mode 100644 index 000000000000..b9be379b016e --- /dev/null +++ b/pkgs/development/python-modules/deezer-python-async/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/python-modules/duration-parser/default.nix b/pkgs/development/python-modules/duration-parser/default.nix new file mode 100644 index 000000000000..9d8eb744024e --- /dev/null +++ b/pkgs/development/python-modules/duration-parser/default.nix @@ -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 ]; + }; +} diff --git a/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/pkgs/development/python-modules/scikit-hep-testdata/default.nix index ad27cd906f28..4d76471e2d34 100644 --- a/pkgs/development/python-modules/scikit-hep-testdata/default.nix +++ b/pkgs/development/python-modules/scikit-hep-testdata/default.nix @@ -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 ]; }; diff --git a/pkgs/servers/home-assistant/custom-components/daikin_onecta/package.nix b/pkgs/servers/home-assistant/custom-components/daikin_onecta/package.nix index c914a1f02079..be9ae7010515 100644 --- a/pkgs/servers/home-assistant/custom-components/daikin_onecta/package.nix +++ b/pkgs/servers/home-assistant/custom-components/daikin_onecta/package.nix @@ -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 = { diff --git a/pkgs/servers/home-assistant/custom-components/frigate/package.nix b/pkgs/servers/home-assistant/custom-components/frigate/package.nix index 11a7d1fcd93a..ddd69f9f4df7 100644 --- a/pkgs/servers/home-assistant/custom-components/frigate/package.nix +++ b/pkgs/servers/home-assistant/custom-components/frigate/package.nix @@ -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"; diff --git a/pkgs/servers/home-assistant/custom-components/localtuya/package.nix b/pkgs/servers/home-assistant/custom-components/localtuya/package.nix index f713f138c529..f7b0f8a81fe8 100644 --- a/pkgs/servers/home-assistant/custom-components/localtuya/package.nix +++ b/pkgs/servers/home-assistant/custom-components/localtuya/package.nix @@ -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; { diff --git a/pkgs/servers/home-assistant/custom-components/smartir/package.nix b/pkgs/servers/home-assistant/custom-components/smartir/package.nix index 6735dd530676..dcbe0491b049 100644 --- a/pkgs/servers/home-assistant/custom-components/smartir/package.nix +++ b/pkgs/servers/home-assistant/custom-components/smartir/package.nix @@ -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; diff --git a/pkgs/servers/home-assistant/custom-components/xiaomi_miot/package.nix b/pkgs/servers/home-assistant/custom-components/xiaomi_miot/package.nix index 011471fda2d0..2229d6259462 100644 --- a/pkgs/servers/home-assistant/custom-components/xiaomi_miot/package.nix +++ b/pkgs/servers/home-assistant/custom-components/xiaomi_miot/package.nix @@ -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 = [ diff --git a/pkgs/servers/home-assistant/custom-components/yoto_ha/package.nix b/pkgs/servers/home-assistant/custom-components/yoto_ha/package.nix index c8b3935d34a7..e2259c87ee42 100644 --- a/pkgs/servers/home-assistant/custom-components/yoto_ha/package.nix +++ b/pkgs/servers/home-assistant/custom-components/yoto_ha/package.nix @@ -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 = [ diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/package.nix new file mode 100644 index 000000000000..f17148a7df09 --- /dev/null +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/package.nix @@ -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 ]; + }; +} diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/clock-weather-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/clock-weather-card/package.nix index 09743011c733..0e651743dbe0 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/clock-weather-card/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/clock-weather-card/package.nix @@ -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 = [ diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 38604c3516be..59ace4cff11a 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -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; diff --git a/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix b/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix index e8bae80d8747..3fdec67a3507 100644 --- a/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix +++ b/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix @@ -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 ]; diff --git a/pkgs/servers/home-assistant/python-modules/hass-web-proxy-lib/default.nix b/pkgs/servers/home-assistant/python-modules/hass-web-proxy-lib/default.nix new file mode 100644 index 000000000000..0cb298e48d68 --- /dev/null +++ b/pkgs/servers/home-assistant/python-modules/hass-web-proxy-lib/default.nix @@ -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; + }; +} diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix index b62bbb9419df..cea002e1612f 100644 --- a/pkgs/servers/home-assistant/stubs.nix +++ b/pkgs/servers/home-assistant/stubs.nix @@ -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 = [ diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix index a157107b6a1e..d21d509e2416 100644 --- a/pkgs/tools/filesystems/garage/default.nix +++ b/pkgs/tools/filesystems/garage/default.nix @@ -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; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 793e8918b5a1..a9c4e35458c0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 66a399f2e04d..52710770960b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.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 { };