Merge branch 'master' into haskell-updates

To get revert of accidental mass rebuild.
This commit is contained in:
Vladimír Čunát 2024-02-11 07:40:01 +01:00
commit b1bedc5a85
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
57 changed files with 883 additions and 686 deletions

View file

@ -9289,6 +9289,12 @@
github = "josephst"; github = "josephst";
githubId = 1269177; githubId = 1269177;
}; };
josephsurin = {
name = "Joseph Surin";
email = "nix@jsur.in";
github = "josephsurin";
githubId = 14977484;
};
joshniemela = { joshniemela = {
name = "Joshua Niemelä"; name = "Joshua Niemelä";
email = "josh@jniemela.dk"; email = "josh@jniemela.dk";

View file

@ -286,6 +286,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
[fileSystems.overlay](#opt-fileSystems._name_.overlay.lowerdir). See also the [fileSystems.overlay](#opt-fileSystems._name_.overlay.lowerdir). See also the
[NixOS docs](#sec-overlayfs). [NixOS docs](#sec-overlayfs).
- systemd units can now specify the `Upholds=` and `UpheldBy=` unit dependencies via the aptly
named `upholds` and `upheldBy` options. These options get systemd to enforce that the
dependencies remain continuosly running for as long as the dependent unit is in a running state.
- `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`. - `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`.
- A new hardening flag, `zerocallusedregs` was made available, corresponding to the gcc/clang option `-fzero-call-used-regs=used-gpr`. - A new hardening flag, `zerocallusedregs` was made available, corresponding to the gcc/clang option `-fzero-call-used-regs=used-gpr`.

View file

@ -242,7 +242,7 @@ in rec {
ln -sfn '${name}' $out/'${name2}' ln -sfn '${name}' $out/'${name2}'
'') (unit.aliases or [])) units)} '') (unit.aliases or [])) units)}
# Create .wants and .requires symlinks from the wantedBy and # Create .wants, .upholds and .requires symlinks from the wantedBy, upheldBy and
# requiredBy options. # requiredBy options.
${concatStrings (mapAttrsToList (name: unit: ${concatStrings (mapAttrsToList (name: unit:
concatMapStrings (name2: '' concatMapStrings (name2: ''
@ -250,6 +250,12 @@ in rec {
ln -sfn '../${name}' $out/'${name2}.wants'/ ln -sfn '../${name}' $out/'${name2}.wants'/
'') (unit.wantedBy or [])) units)} '') (unit.wantedBy or [])) units)}
${concatStrings (mapAttrsToList (name: unit:
concatMapStrings (name2: ''
mkdir -p $out/'${name2}.upholds'
ln -sfn '../${name}' $out/'${name2}.upholds'/
'') (unit.upheldBy or [])) units)}
${concatStrings (mapAttrsToList (name: unit: ${concatStrings (mapAttrsToList (name: unit:
concatMapStrings (name2: '' concatMapStrings (name2: ''
mkdir -p $out/'${name2}.requires' mkdir -p $out/'${name2}.requires'
@ -289,6 +295,8 @@ in rec {
{ Requires = toString config.requires; } { Requires = toString config.requires; }
// optionalAttrs (config.wants != []) // optionalAttrs (config.wants != [])
{ Wants = toString config.wants; } { Wants = toString config.wants; }
// optionalAttrs (config.upholds != [])
{ Upholds = toString config.upholds; }
// optionalAttrs (config.after != []) // optionalAttrs (config.after != [])
{ After = toString config.after; } { After = toString config.after; }
// optionalAttrs (config.before != []) // optionalAttrs (config.before != [])

View file

@ -74,6 +74,15 @@ in rec {
''; '';
}; };
upheldBy = mkOption {
default = [];
type = types.listOf unitNameType;
description = lib.mdDoc ''
Keep this unit running as long as the listed units are running. This is a continuously
enforced version of wantedBy.
'';
};
wantedBy = mkOption { wantedBy = mkOption {
default = []; default = [];
type = types.listOf unitNameType; type = types.listOf unitNameType;
@ -147,6 +156,14 @@ in rec {
''; '';
}; };
upholds = mkOption {
default = [];
type = types.listOf unitNameType;
description = lib.mdDoc ''
Keeps the specified running while this unit is running. A continuous version of `wants`.
'';
};
after = mkOption { after = mkOption {
default = []; default = [];
type = types.listOf unitNameType; type = types.listOf unitNameType;

View file

@ -52,7 +52,7 @@ let
hasAttrByPath (splitString "." component) cfg.config hasAttrByPath (splitString "." component) cfg.config
|| useComponentPlatform component || useComponentPlatform component
|| useExplicitComponent component || useExplicitComponent component
|| builtins.elem component cfg.extraComponents; || builtins.elem component (cfg.extraComponents ++ cfg.defaultIntegrations);
# Final list of components passed into the package to include required dependencies # Final list of components passed into the package to include required dependencies
extraComponents = filter useComponent availableComponents; extraComponents = filter useComponent availableComponents;
@ -103,6 +103,45 @@ in {
description = lib.mdDoc "The config directory, where your {file}`configuration.yaml` is located."; description = lib.mdDoc "The config directory, where your {file}`configuration.yaml` is located.";
}; };
defaultIntegrations = mkOption {
type = types.listOf (types.enum availableComponents);
# https://github.com/home-assistant/core/blob/dev/homeassistant/bootstrap.py#L109
default = [
"application_credentials"
"frontend"
"hardware"
"logger"
"network"
"system_health"
# key features
"automation"
"person"
"scene"
"script"
"tag"
"zone"
# built-in helpers
"counter"
"input_boolean"
"input_button"
"input_datetime"
"input_number"
"input_select"
"input_text"
"schedule"
"timer"
# non-supervisor
"backup"
];
readOnly = true;
description = ''
List of integrations set are always set up, unless in recovery mode.
'';
};
extraComponents = mkOption { extraComponents = mkOption {
type = types.listOf (types.enum availableComponents); type = types.listOf (types.enum availableComponents);
default = [ default = [
@ -533,6 +572,7 @@ in {
"inkbird" "inkbird"
"improv_ble" "improv_ble"
"keymitt_ble" "keymitt_ble"
"leaone-ble"
"led_ble" "led_ble"
"medcom_ble" "medcom_ble"
"melnor" "melnor"

View file

@ -185,6 +185,19 @@ in
can be loaded using "nft -f". The ruleset is updated atomically. can be loaded using "nft -f". The ruleset is updated atomically.
''; '';
}; };
networking.nftables.flattenRulesetFile = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Use `builtins.readFile` rather than `include` to handle {option}`networking.nftables.rulesetFile`. It is useful when you want to apply {option}`networking.nftables.preCheckRuleset` to {option}`networking.nftables.rulesetFile`.
::: {.note}
It is expected that {option}`networking.nftables.rulesetFile` can be accessed from the build sandbox.
:::
'';
};
networking.nftables.tables = mkOption { networking.nftables.tables = mkOption {
type = types.attrsOf (types.submodule tableSubmodule); type = types.attrsOf (types.submodule tableSubmodule);
@ -295,9 +308,13 @@ in
} }
'') enabledTables)} '') enabledTables)}
${cfg.ruleset} ${cfg.ruleset}
${lib.optionalString (cfg.rulesetFile != null) '' ${if cfg.rulesetFile != null then
include "${cfg.rulesetFile}" if cfg.flattenRulesetFile then
''} builtins.readFile cfg.rulesetFile
else ''
include "${cfg.rulesetFile}"
''
else ""}
''; '';
checkPhase = lib.optionalString cfg.checkRuleset '' checkPhase = lib.optionalString cfg.checkRuleset ''
cp $out ruleset.conf cp $out ruleset.conf

View file

@ -738,7 +738,7 @@ in
See the [QEMU Wiki on Networking](https://wiki.qemu.org/Documentation/Networking) for details. See the [QEMU Wiki on Networking](https://wiki.qemu.org/Documentation/Networking) for details.
If you override this option, be advised to keep If you override this option, be advised to keep
''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the example) `''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}` (as seen in the example)
to keep the default runtime behaviour. to keep the default runtime behaviour.
''; '';
}; };
@ -813,14 +813,19 @@ in
defaultText = "!cfg.useBootLoader"; defaultText = "!cfg.useBootLoader";
description = description =
lib.mdDoc '' lib.mdDoc ''
If enabled, the virtual machine will boot directly into the kernel instead of through a bootloader. Other relevant parameters such as the initrd are also passed to QEMU. If enabled, the virtual machine will boot directly into the kernel instead of through a bootloader.
Read more about this feature in the [QEMU documentation on Direct Linux Boot](https://qemu-project.gitlab.io/qemu/system/linuxboot.html)
This is enabled by default.
If you want to test netboot, consider disabling this option. If you want to test netboot, consider disabling this option.
Enable a bootloader with {option}`virtualisation.useBootLoader` if you need.
This will not boot / reboot correctly into a system that has switched to a different configuration on disk. Relevant parameters such as those set in `boot.initrd` and `boot.kernelParams` are also passed to QEMU.
Additional parameters can be supplied on invocation through the environment variable `$QEMU_KERNEL_PARAMS`.
They are added to the `-append` option, see [QEMU User Documentation](https://www.qemu.org/docs/master/system/qemu-manpage) for details
For example, to let QEMU use the parent terminal as the serial console, set `QEMU_KERNEL_PARAMS="console=ttyS0"`.
This is enabled by default if you don't enable bootloaders, but you can still enable a bootloader if you need. This will not (re-)boot correctly into a system that has switched to a different configuration on disk.
Read more about this feature: <https://qemu-project.gitlab.io/qemu/system/linuxboot.html>.
''; '';
}; };
initrd = initrd =
@ -850,6 +855,8 @@ in
If disabled, the kernel and initrd are directly booted, If disabled, the kernel and initrd are directly booted,
forgoing any bootloader. forgoing any bootloader.
Check the documentation on {option}`virtualisation.directBoot.enable` for details.
''; '';
}; };

View file

@ -26,14 +26,14 @@ let
buildType = "release"; buildType = "release";
# Use maintainers/scripts/update.nix to update the version and all related hashes or # Use maintainers/scripts/update.nix to update the version and all related hashes or
# change the hashes in extpack.nix and guest-additions/default.nix as well manually. # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
version = "7.0.12"; version = "7.0.14";
in stdenv.mkDerivation { in stdenv.mkDerivation {
pname = "virtualbox"; pname = "virtualbox";
inherit version; inherit version;
src = fetchurl { src = fetchurl {
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "d76634c6ccf62503726a5aeae6c78a3462474c51a0ebe4942591ccc2d939890a"; sha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9";
}; };
outputs = [ "out" "modsrc" ]; outputs = [ "out" "modsrc" ];

View file

@ -12,7 +12,7 @@ fetchurl rec {
# Manually sha256sum the extensionPack file, must be hex! # Manually sha256sum the extensionPack file, must be hex!
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`. # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
let value = "dbf7ce39e5c021d420fc6b2045b084a68fc5172937192bd70c3207efa786278d"; let value = "42cb36fbf439a9ed28c95d2bbc718a0eac902225eb579c884c549af2e94be633";
in assert (builtins.stringLength value) == 64; value; in assert (builtins.stringLength value) == 64; value;
meta = { meta = {

View file

@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "b37f6aabe5a32e8b96ccca01f37fb49f4fd06674f1b29bc8fe0f423ead37b917"; sha256 = "0efbcb9bf4722cb19292ae00eba29587432e918d3b1f70905deb70f7cf78e8ce";
}; };
KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";

View file

@ -57,9 +57,9 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.76" version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]

View file

@ -0,0 +1,51 @@
{ lib
, stdenv
, fetchFromGitHub
, unstableGitUpdater
, cmake
, blas
, gmp
, mpfr
, fplll
, eigen
, llvmPackages
}:
stdenv.mkDerivation {
pname = "flatter";
version = "0-unstable-2023-08-10";
src = fetchFromGitHub {
owner = "keeganryan";
repo = "flatter";
rev = "500e31df6b7308e8101b2a4a9cc816bf8f483417";
hash = "sha256-STYx7cXvkcF+KqrG32pN16HWfEScc0zxkmOmfv43zIw=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
];
buildInputs = [
blas
gmp
mpfr
fplll
eigen
] ++ lib.optionals stdenv.isDarwin [
llvmPackages.openmp
];
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "(F)ast (lat)tice (r)eduction of integer lattice bases";
homepage = "https://github.com/keeganryan/flatter";
license = licenses.lgpl3Only;
mainProgram = "flatter";
platforms = platforms.all;
maintainers = with maintainers; [ josephsurin ];
};
}

View file

@ -20,14 +20,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "htcondor"; pname = "htcondor";
version = "23.3.0"; version = "23.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "htcondor"; owner = "htcondor";
repo = "htcondor"; repo = "htcondor";
rev = "v23.3.0"; rev = "v23.4.0";
hash = "sha256-Ew9leVpvEndiRkOnhx2fLClrNW1bC5djcJEBsve6eIk="; hash = "sha256-+WfNVxP7qsEpn8zPretLnOEAnPq0GylyxCbcQI8o0L0=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View file

@ -1,14 +1,12 @@
{ lib { lib
, fetchFromGitHub , fetchFromGitHub
, buildGoPackage , buildGoModule
}: }:
buildGoPackage rec { buildGoModule rec {
pname = "qsreplace"; pname = "qsreplace";
version = "0.0.3"; version = "0.0.3";
goPackagePath = "github.com/tomnomnom/qsreplace";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tomnomnom"; owner = "tomnomnom";
repo = "qsreplace"; repo = "qsreplace";
@ -16,6 +14,10 @@ buildGoPackage rec {
hash = "sha256-j9bqO2gp4RUxZHGBCIxI5nA3nD1dG4nCpJ1i4TM/fbo="; hash = "sha256-j9bqO2gp4RUxZHGBCIxI5nA3nD1dG4nCpJ1i4TM/fbo=";
}; };
vendorHash = null;
ldflags = [ "-s" "-w" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/tomnomnom/qsreplace"; homepage = "https://github.com/tomnomnom/qsreplace";
description = "Accept URLs on stdin, replace all query string values with a user-supplied value"; description = "Accept URLs on stdin, replace all query string values with a user-supplied value";

View file

@ -1,18 +1,25 @@
{ lib { lib
, stdenv , stdenv
, fetchurl , fetchFromGitLab
, fetchpatch
, autoreconfHook , autoreconfHook
, libmd , libmd
, gitUpdater , gitUpdater
}: }:
stdenv.mkDerivation rec { # Run `./get-version` for the new value when bumping the Git revision.
pname = "libbsd"; let gitVersion = "0.11.7-55-g73b2"; in
version = "0.11.8";
src = fetchurl { stdenv.mkDerivation {
url = "https://libbsd.freedesktop.org/releases/${pname}-${version}.tar.xz"; pname = "libbsd";
hash = "sha256-Vf36Jpb7TVWlkvqa0Uqd+JfHsACN2zswxBmRSEH4XzM="; version = "unstable-2023-04-29";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "libbsd";
repo = "libbsd";
rev = "73b25a8f871b3a20f6ff76679358540f95d7dbfd";
hash = "sha256-LS28taIMjRCl6xqg75eYOIrTDl8PzSa+OvrdiEOP1+U=";
}; };
outputs = [ "out" "dev" "man" ]; outputs = [ "out" "dev" "man" ];
@ -24,12 +31,24 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoreconfHook ]; nativeBuildInputs = [ autoreconfHook ];
propagatedBuildInputs = [ libmd ]; propagatedBuildInputs = [ libmd ];
patches = lib.optionals stdenv.isDarwin [ patches = [
# Fix `{get,set}progname(3bsd)` conditionalization
# https://gitlab.freedesktop.org/libbsd/libbsd/-/issues/24
(fetchpatch {
url = "https://github.com/emilazy/libbsd/commit/0381f8d92873c5a19ced3ff861ee8ffe7825953e.patch";
hash = "sha256-+RMg5eHLgC4gyX9zXM0ttNf7rd9E3UzJX/7UVCYGXx4=";
})
] ++ lib.optionals stdenv.isDarwin [
# Temporary build system hack from upstream maintainer # Temporary build system hack from upstream maintainer
# https://gitlab.freedesktop.org/libbsd/libbsd/-/issues/19#note_2017684 # https://gitlab.freedesktop.org/libbsd/libbsd/-/issues/19#note_2017684
./darwin-fix-libbsd.sym.patch ./darwin-fix-libbsd.sym.patch
]; ];
postPatch = ''
substituteInPlace configure.ac \
--replace 'm4_esyscmd([./get-version])' '[${gitVersion}]'
'';
passthru.updateScript = gitUpdater { passthru.updateScript = gitUpdater {
# No nicer place to find latest release. # No nicer place to find latest release.
url = "https://gitlab.freedesktop.org/libbsd/libbsd.git"; url = "https://gitlab.freedesktop.org/libbsd/libbsd.git";

View file

@ -159,6 +159,7 @@ stdenv.mkDerivation rec {
# See https://gitlab.com/libvirt/libvirt/-/merge_requests/235 # See https://gitlab.com/libvirt/libvirt/-/merge_requests/235
sed -i "s/not supported_cc_flags.contains('-fsemantic-interposition')/false/" meson.build sed -i "s/not supported_cc_flags.contains('-fsemantic-interposition')/false/" meson.build
sed -i '/qemufirmwaretest/d' tests/meson.build sed -i '/qemufirmwaretest/d' tests/meson.build
sed -i '/qemuhotplugtest/d' tests/meson.build
sed -i '/qemuvhostusertest/d' tests/meson.build sed -i '/qemuvhostusertest/d' tests/meson.build
sed -i '/qemuxml2xmltest/d' tests/meson.build sed -i '/qemuxml2xmltest/d' tests/meson.build
''; '';

View file

@ -47,6 +47,8 @@ stdenv.mkDerivation rec {
install -Dm644 -t "$out/share/bash-completion/completions/mirtk" share/completion/bash/mirtk install -Dm644 -t "$out/share/bash-completion/completions/mirtk" share/completion/bash/mirtk
''; '';
env.NIX_CFLAGS_COMPILE = "-Wno-changes-meaning";
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ buildInputs = [
boost boost

View file

@ -6,12 +6,13 @@
, pytest-aiohttp , pytest-aiohttp
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, setuptools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "aioecowitt"; pname = "aioecowitt";
version = "2024.2.0"; version = "2024.2.1";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -19,9 +20,13 @@ buildPythonPackage rec {
owner = "home-assistant-libs"; owner = "home-assistant-libs";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-vKpzD6m0zG8yAghmoNKcufqoJUYOTxN3w+ix1ObuLpw="; hash = "sha256-PBV5jk0oItelCDFZsk8et0raIGEWxOaNdHuAViQ6LZc=";
}; };
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
meteocalc meteocalc

View file

@ -14,7 +14,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aioelectricitymaps"; pname = "aioelectricitymaps";
version = "0.3.0"; version = "0.4.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "jpbede"; owner = "jpbede";
repo = "aioelectricitymaps"; repo = "aioelectricitymaps";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-saIzVbgYx5nIM5fk7i3wu4X1gOIj81L/rRNq5Xl4cnw="; hash = "sha256-q06B40c0uvSuzH/3YCoxg4p9aNIOPrphsoESktF+B14=";
}; };
postPatch = '' postPatch = ''

View file

@ -23,7 +23,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aioesphomeapi"; pname = "aioesphomeapi";
version = "21.0.1"; version = "21.0.2";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -32,7 +32,7 @@ buildPythonPackage rec {
owner = "esphome"; owner = "esphome";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-HPnyFHHx1BahqzvRChT85BaG4eJM3qvTq2Tpbqb3SDI="; hash = "sha256-uNVf0wnqVntjTxkNTilvb0v6h3VBCjd91wbLQJ6q71g=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -10,7 +10,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiohttp-zlib-ng"; pname = "aiohttp-zlib-ng";
version = "0.1.3"; version = "0.3.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -19,12 +19,12 @@ buildPythonPackage rec {
owner = "bdraco"; owner = "bdraco";
repo = "aiohttp-zlib-ng"; repo = "aiohttp-zlib-ng";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-t7T3KIGId5CoBciSkwu/sejW45i2EYtq1fHvNKNXlhA="; hash = "sha256-XA2XSX9KA/oBzOLJrhj78uoy6ufLbVTENYZL3y/+fwU=";
}; };
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml \ substituteInPlace pyproject.toml \
--replace " --cov=aiohttp_zlib_ng --cov-report=term-missing:skip-covered" "" --replace-fail " --cov=aiohttp_zlib_ng --cov-report=term-missing:skip-covered" ""
''; '';
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -3,28 +3,37 @@
, bluetooth-data-tools , bluetooth-data-tools
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, habluetooth
, orjson , orjson
, pythonOlder , pythonOlder
, setuptools
, yarl
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "aioshelly"; pname = "aioshelly";
version = "7.1.0"; version = "8.0.1";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "home-assistant-libs"; owner = "home-assistant-libs";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-W8oAJ7q4cAWq+RF4Hwd8cuPkEZQorsBnjmos5tVSBzc="; hash = "sha256-3W5XfSOaKCCBjDHJh8IP/5I48py3j6i2O3FfhbcQzbY=";
}; };
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [ propagatedBuildInputs = [
aiohttp aiohttp
bluetooth-data-tools bluetooth-data-tools
habluetooth
orjson orjson
yarl
]; ];
# Project has no test # Project has no test

View file

@ -15,7 +15,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "aiounifi"; pname = "aiounifi";
version = "69"; version = "70";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.11"; disabled = pythonOlder "3.11";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "Kane610"; owner = "Kane610";
repo = "aiounifi"; repo = "aiounifi";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-XYwdnG3OprHRZm3zQgoPw4VOzvvVflsQzi7+XQiASAU="; hash = "sha256-yLqGqRWzuMqymGqGR1mA4oQb+tWt58lA7C/kXC5bYz8=";
}; };
postPatch = '' postPatch = ''
@ -66,6 +66,6 @@ buildPythonPackage rec {
homepage = "https://github.com/Kane610/aiounifi"; homepage = "https://github.com/Kane610/aiounifi";
changelog = "https://github.com/Kane610/aiounifi/releases/tag/v${version}"; changelog = "https://github.com/Kane610/aiounifi/releases/tag/v${version}";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ peterhoeg ]; maintainers = with maintainers; [ ];
}; };
} }

View file

@ -13,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "awesomeversion"; pname = "awesomeversion";
version = "23.11.0"; version = "24.2.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "ludeeus"; owner = "ludeeus";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-glnM32ha5eXVpoaDkEsbwdH1oiG9qMxFwbtqLx+Kl98="; hash = "sha256-bpLtHhpWc1VweVl5G8mM473Js3bXT11N3Zc0jiVqq5c=";
}; };
postPatch = '' postPatch = ''

View file

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "bellows"; pname = "bellows";
version = "0.37.6"; version = "0.38.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = "bellows"; repo = "bellows";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-S3Yf0C+KInYoDaixlJf+9WSPIcEhfQCdcwEuNQYxugU="; hash = "sha256-7aqzhujTn1TMYBA6+79Ok76yv8hXszuuZ7TjhJ6zbQw=";
}; };
postPatch = '' postPatch = ''

View file

@ -13,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dbus-fast"; pname = "dbus-fast";
version = "2.21.0"; version = "2.21.1";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices"; owner = "Bluetooth-Devices";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-P2Czo7XRJLDnR62eLb2lYn97nS5x6LsnYHs47+mvktQ="; hash = "sha256-L3PZjxbcVfqWktWuN5l8JxfR1GyxuA+1ZtO/W2YqFZA=";
}; };
# The project can build both an optimized cython version and an unoptimized # The project can build both an optimized cython version and an unoptimized

View file

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "habluetooth"; pname = "habluetooth";
version = "2.1.0"; version = "2.4.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices"; owner = "Bluetooth-Devices";
repo = "habluetooth"; repo = "habluetooth";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-oPdKmaj2wKgOQw7QYwOQc8efcNtQiGryZgNJ+bbB6L8="; hash = "sha256-bZtcvidjUhlb9ML1UIP00yqJ+KnJig5i0j/tAZSK7+Y=";
}; };
postPatch = '' postPatch = ''

View file

@ -21,7 +21,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "hass-nabucasa"; pname = "hass-nabucasa";
version = "0.75.1"; version = "0.78.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "nabucasa"; owner = "nabucasa";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-VQ5nxkrHt6xp+bk/wqAPJ+srTuf9WyamoLXawW1mKWo="; hash = "sha256-ZqBYmh+MA4ZuhnUQPn/C8d7CVPrwp6mirsWnoB/ZMFw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -13,7 +13,7 @@
let let
pname = "hassil"; pname = "hassil";
version = "1.5.1"; version = "1.6.1";
in in
buildPythonPackage { buildPythonPackage {
inherit pname version; inherit pname version;
@ -23,7 +23,7 @@ buildPythonPackage {
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-GLvDT8BUBvEzgiqKaXokF912g3fOH+KsXnmeOXIwe9U="; hash = "sha256-jkPo02Jy6UqyC5YvwMw+DDkT8rG5Xe4EiNVED/JHzKc=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -21,16 +21,16 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "holidays"; pname = "holidays";
version = "0.40"; version = "0.42";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dr-prodigy"; owner = "vacanza";
repo = "python-holidays"; repo = "python-holidays";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-rFitLHUgXSWNd59VzG01ggaTHfVzI50OAi7Gxr6pMug="; hash = "sha256-BVmH3LO0VjIcpS8HoQmP6mHv7zDK0Aw3pS4oiZWhF/4=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -75,8 +75,8 @@ buildPythonPackage rec {
meta = with lib; { meta = with lib; {
description = "Generate and work with holidays in Python"; description = "Generate and work with holidays in Python";
homepage = "https://github.com/dr-prodigy/python-holidays"; homepage = "https://github.com/vacanza/python-holidays";
changelog = "https://github.com/dr-prodigy/python-holidays/releases/tag/v${version}"; changelog = "https://github.com/vacanza/python-holidays/releases/tag/v${version}";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ fab jluttine ]; maintainers = with maintainers; [ fab jluttine ];
}; };

View file

@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "home-assistant-libs"; owner = "home-assistant-libs";
repo = "home-assistant-bluetooth"; repo = "home-assistant-bluetooth";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-1Bp43TaJkrT9lZsBu4yiuOD4tE7vv6bYRlcgTfNwOuA="; hash = "sha256-KTaZ3xbZpBIN5zP73YdJW6QeCQThGdqejnfWwvL+0R8=";
}; };
postPatch = '' postPatch = ''

View file

@ -7,7 +7,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "home-assistant-chip-clusters"; pname = "home-assistant-chip-clusters";
version = "2023.12.0"; version = "2024.1.0";
format = "wheel"; format = "wheel";
src = fetchPypi { src = fetchPypi {
@ -15,7 +15,7 @@ buildPythonPackage rec {
pname = "home_assistant_chip_clusters"; pname = "home_assistant_chip_clusters";
dist = "py3"; dist = "py3";
python = "py3"; python = "py3";
hash = "sha256-4yAfbQBqHMEXWMwJ0kSDs0We/AsHweJ+Tc8aZiWi90w="; hash = "sha256-4btkqAHbwAsyGV1LjngEoeTT5qyI8dtqFVTp0lIFwmg=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -28,7 +28,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "home-assistant-chip-core"; pname = "home-assistant-chip-core";
version = "2023.12.0"; version = "2024.1.0";
format = "wheel"; format = "wheel";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -41,7 +41,7 @@ buildPythonPackage rec {
}; };
"x86_64-linux" = { "x86_64-linux" = {
name = "x86_64"; name = "x86_64";
hash = "sha256-wRJWgT+uycCwNKMgHaiACv1y+AvOLrPOpcm2I8hVAxk="; hash = "sha256-/+gegUMd2n7MpJvdilS5VWefXc0tuRcLrXBBXSH35b0=";
}; };
}.${stdenv.system} or (throw "Unsupported system"); }.${stdenv.system} or (throw "Unsupported system");
in fetchPypi { in fetchPypi {

View file

@ -1,35 +1,23 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchpatch
, fetchPypi , fetchPypi
, setuptools , setuptools
, wheel
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "knx-frontend"; pname = "knx-frontend";
version = "2023.6.23.191712"; version = "2024.1.20.105944";
format = "pyproject"; format = "pyproject";
# TODO: source build, uses yarn.lock # TODO: source build, uses yarn.lock
src = fetchPypi { src = fetchPypi {
pname = "knx_frontend"; pname = "knx_frontend";
inherit version; inherit version;
hash = "sha256-MeurZ6731qjeBK6HTwXYLVs6+nXF9Hf1p8/NNwxmae4="; hash = "sha256-5u+BaZjbGpIpQd3k+u5NC099TQuiwGKdE/EoIWny01I=";
}; };
patches = [
# https://github.com/XKNX/knx-frontend/pull/96
(fetchpatch {
name = "relax-setuptools-dependency.patch";
url = "https://github.com/XKNX/knx-frontend/commit/72ac6dc42eeeb488992b0709ee58ea4a79287817.patch";
hash = "sha256-EpfgEq4pIx7ahqJZalzo30ruj8NlZYHcKHxFXCGL98w=";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
setuptools setuptools
wheel
]; ];
pythonImportsCheck = [ pythonImportsCheck = [

View file

@ -1,54 +1,57 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, logbook
# build-system
, poetry-core
# dependencies
, aiofiles , aiofiles
, aiohttp , aiohttp
, aiohttp-socks , aiohttp-socks
, aioresponses
, atomicwrites
, attrs
, cachetools
, faker
, future
, git
, h11 , h11
, h2 , h2
, hypothesis
, jsonschema , jsonschema
, peewee
, poetry-core
, py
, pycryptodome , pycryptodome
, unpaddedbase64
# optional-dependencies
, atomicwrites
, cachetools
, peewee
, python-olm
# tests
, aioresponses
, faker
, hpack
, hyperframe
, hypothesis
, pytest-aiohttp , pytest-aiohttp
, pytest-benchmark , pytest-benchmark
, pytestCheckHook , pytestCheckHook
, python-olm
, unpaddedbase64 # passthru tests
, nixosTests
, opsdroid
, pantalaimon
, weechatScripts
, zulip
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "matrix-nio"; pname = "matrix-nio";
version = "0.22.1"; version = "0.24.0";
format = "pyproject"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "poljar"; owner = "poljar";
repo = "matrix-nio"; repo = "matrix-nio";
rev = version; rev = version;
hash = "sha256-hFSS2Nys95YJgBNED8SBan24iRo2q/UOr6pqUPAF5Ms="; hash = "sha256-XlswVHLvKOi1qr+I7Mbm4IBjn1DG7glgDsNY48NA5Ew=";
}; };
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'aiofiles = "^0.6.0"' 'aiofiles = "*"' \
--replace 'h11 = "^0.12.0"' 'h11 = "*"' \
--replace 'cachetools = { version = "^4.2.1", optional = true }' 'cachetools = { version = "*", optional = true }' \
--replace 'aiohttp-socks = "^0.7.0"' 'aiohttp-socks = "*"'
'';
nativeBuildInputs = [ nativeBuildInputs = [
git
poetry-core poetry-core
]; ];
@ -56,12 +59,9 @@ buildPythonPackage rec {
aiofiles aiofiles
aiohttp aiohttp
aiohttp-socks aiohttp-socks
attrs
future
h11 h11
h2 h2
jsonschema jsonschema
logbook
pycryptodome pycryptodome
unpaddedbase64 unpaddedbase64
]; ];
@ -78,8 +78,9 @@ buildPythonPackage rec {
nativeCheckInputs = [ nativeCheckInputs = [
aioresponses aioresponses
faker faker
hpack
hyperframe
hypothesis hypothesis
py
pytest-aiohttp pytest-aiohttp
pytest-benchmark pytest-benchmark
pytestCheckHook pytestCheckHook
@ -96,6 +97,23 @@ buildPythonPackage rec {
"test_transfer_monitor_callbacks" "test_transfer_monitor_callbacks"
]; ];
passthru.tests = {
inherit (nixosTests)
dendrite
matrix-appservice-irc
matrix-conduit
mjolnir
;
inherit (weechatScripts)
weechat-matrix
;
inherit
opsdroid
pantalaimon
zulip
;
};
meta = with lib; { meta = with lib; {
homepage = "https://github.com/poljar/matrix-nio"; homepage = "https://github.com/poljar/matrix-nio";
changelog = "https://github.com/poljar/matrix-nio/blob/${version}/CHANGELOG.md"; changelog = "https://github.com/poljar/matrix-nio/blob/${version}/CHANGELOG.md";

View file

@ -1,6 +1,6 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchFromGitHub
, pythonOlder , pythonOlder
, can , can
, cobs , cobs
@ -8,31 +8,80 @@
, nunavut , nunavut
, numpy , numpy
, pyserial , pyserial
, pytestCheckHook
, pytest-asyncio
, setuptools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pycyphal"; pname = "pycyphal";
version = "1.15.4"; version = "1.18.0";
format = "pyproject"; format = "setuptools";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "OpenCyphal";
hash = "sha256-0Mp8d/rNOOPLg0gUPWdOgp/d5n148dxcLceW1VtjrkQ="; repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-XkH0wss8ueh/Wwz0lhvQShOp3a4X9lNdosT/sMe7p4Q=";
fetchSubmodules = true;
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
can
cobs
libpcap
numpy numpy
nunavut nunavut
pyserial
]; ];
# Can't seem to run the tests on nix passthru.optional-dependencies = {
doCheck = false; transport-can-pythoncan = [
can
] ++ can.optional-dependencies.serial;
transport-serial = [
cobs
pyserial
];
transport-udp = [
libpcap
];
};
nativeCheckInputs = [
pytestCheckHook
pytest-asyncio
] ++ builtins.foldl' (x: y: x ++ y) [ ]
(builtins.attrValues passthru.optional-dependencies)
;
preCheck = ''
export HOME=$TMPDIR
export PYTHONASYNCIODEBUG=1
python -c ${lib.escapeShellArg ''
import pycyphal
pycyphal.dsdl.compile_all(
[
"demo/public_regulated_data_types/uavcan",
"demo/custom_data_types/sirius_cyber_corp",
],
output_directory=".dsdl_compiled",
)
''}
export PYTHONPATH="$(pwd)/.dsdl_compiled:$PYTHONPATH"
'';
# These require extra permissions and/or actual hardware connected
disabledTestPaths = [
"pycyphal/application/__init__.py"
"pycyphal/application/_transport_factory.py"
"pycyphal/transport/udp/_ip/_link_layer.py"
"pycyphal/transport/udp/_ip/_v4.py"
"tests/application"
"tests/demo"
"tests/dsdl"
"tests/presentation"
"tests/transport"
];
pythonImportsCheck = [ pythonImportsCheck = [
"pycyphal" "pycyphal"
]; ];
@ -43,6 +92,7 @@ buildPythonPackage rec {
Cyphal is an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.). Cyphal is an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.).
''; '';
homepage = "https://opencyphal.org/"; homepage = "https://opencyphal.org/";
changelog = "https://github.com/OpenCyphal/pycyphal/blob/${version}/CHANGELOG.rst";
license = licenses.mit; license = licenses.mit;
maintainers = teams.ororatech.members; maintainers = teams.ororatech.members;
}; };

View file

@ -18,6 +18,7 @@
# optionals # optionals
, cryptography , cryptography
, home-assistant-chip-core , home-assistant-chip-core
, zeroconf
# tests # tests
, python , python
@ -28,7 +29,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-matter-server"; pname = "python-matter-server";
version = "5.1.1"; version = "5.5.3";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -37,7 +38,7 @@ buildPythonPackage rec {
owner = "home-assistant-libs"; owner = "home-assistant-libs";
repo = "python-matter-server"; repo = "python-matter-server";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-y4gapml7rIwOu1TVDEHPch7JS5Rl/cIfMLeVMIFzXOY="; hash = "sha256-8daAABR5l8ZEX+PR4XrxRHlLllgnOVE4Q9yY/7UQXHw=";
}; };
postPatch = '' postPatch = ''
@ -63,6 +64,7 @@ buildPythonPackage rec {
server = [ server = [
cryptography cryptography
home-assistant-chip-core home-assistant-chip-core
zeroconf
]; ];
}; };
@ -70,7 +72,7 @@ buildPythonPackage rec {
pytest-aiohttp pytest-aiohttp
pytestCheckHook pytestCheckHook
] ]
++ lib.flatten (builtins.attrValues passthru.optional-dependencies); ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
preCheck = let preCheck = let
pythonEnv = python.withPackages (_: propagatedBuildInputs ++ nativeCheckInputs ++ [ pytest ]); pythonEnv = python.withPackages (_: propagatedBuildInputs ++ nativeCheckInputs ++ [ pytest ]);

View file

@ -2,6 +2,7 @@
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, pythonOlder , pythonOlder
, setuptools
, ipython , ipython
, matplotlib , matplotlib
, numpy , numpy
@ -12,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "summarytools"; pname = "summarytools";
version = "0.2.3"; version = "0.2.3";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -22,6 +23,8 @@ buildPythonPackage rec {
hash = "sha256-wsDf9IXCMQe0cVfQQuRVwMhxkhhUxbPu06yWZPLvgw4="; hash = "sha256-wsDf9IXCMQe0cVfQQuRVwMhxkhhUxbPu06yWZPLvgw4=";
}; };
nativeBuildInputs = [ setuptools ];
propagatedBuildInputs = [ propagatedBuildInputs = [
ipython ipython
matplotlib matplotlib

View file

@ -3,14 +3,16 @@
, fetchFromGitHub , fetchFromGitHub
, pytestCheckHook , pytestCheckHook
, pythonOlder , pythonOlder
, requests , aiohttp
, responses , urllib3
, orjson
, aresponses
, setuptools , setuptools
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "tesla-powerwall"; pname = "tesla-powerwall";
version = "0.4.0"; version = "0.5.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -19,7 +21,7 @@ buildPythonPackage rec {
owner = "jrester"; owner = "jrester";
repo = "tesla_powerwall"; repo = "tesla_powerwall";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-IqUxWwEvrSEbLAEnHG84oCV75qO0L5LmgpHOfaM6G8o="; hash = "sha256-if/FCfxAB48WGXZOMvCtdSOW2FWO43OrlcHZbXIPmGE=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -27,12 +29,14 @@ buildPythonPackage rec {
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
requests aiohttp
urllib3
orjson
]; ];
nativeCheckInputs = [ nativeCheckInputs = [
aresponses
pytestCheckHook pytestCheckHook
responses
]; ];
pytestFlagsArray = [ pytestFlagsArray = [

View file

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "thermopro-ble"; pname = "thermopro-ble";
version = "0.8.0"; version = "0.9.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "bluetooth-devices"; owner = "bluetooth-devices";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-ENzFX0rD97hCnllFKjcSGbAbEksqln/Hj0MuDVOKGDo="; hash = "sha256-x/eO+LNJ98ThrQD5c9S54cPRnupN21UkpF7uR3+WwSU=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,6 +2,7 @@
, stdenv , stdenv
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, pythonRelaxDepsHook
# build-system # build-system
, setuptools , setuptools
@ -26,21 +27,27 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "universal-silabs-flasher"; pname = "universal-silabs-flasher";
version = "0.0.15"; version = "0.0.18";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "NabuCasa"; owner = "NabuCasa";
repo = "universal-silabs-flasher"; repo = "universal-silabs-flasher";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-5hA1i2XzKzQDRrZfOaA6I3X7hU+nSd7HpcHHNIzZO7g="; hash = "sha256-XUMpWzDqouhbsP+s0b13f6N0YGdXJK6qhbWQLqMzNHM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pythonRelaxDepsHook
setuptools setuptools
setuptools-git-versioning setuptools-git-versioning
]; ];
pythonRelaxDeps = [
# https://github.com/NabuCasa/universal-silabs-flasher/pull/50
"gpiod"
];
propagatedBuildInputs = [ propagatedBuildInputs = [
async-timeout async-timeout
bellows bellows

View file

@ -16,14 +16,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "wyoming"; pname = "wyoming";
version = "1.4.0"; version = "1.5.2";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rhasspy"; owner = "rhasspy";
repo = "wyoming"; repo = "wyoming";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-59/6tRHHAu31VFuKhj2LCEUqkdVi81fu5POuGJmw9bw="; hash = "sha256-2bc5coKL5KlTeL9fdghPmRF66NXfimHOKGtE2yPXgrA=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "zha-quirks"; pname = "zha-quirks";
version = "0.0.109"; version = "0.0.111";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = "zha-device-handlers"; repo = "zha-device-handlers";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-fkE44j+wXdIJekJJNoO67YzsghalTUpyNx9R/B2Vn1Y="; hash = "sha256-e2Ho/LBdnEKn7hgykhstjv8ZUYAn41e1+rsgA1MEmf4=";
}; };
postPatch = '' postPatch = ''

View file

@ -62,6 +62,17 @@ buildPythonPackage rec {
"--reruns=3" "--reruns=3"
]; ];
disabledTests = [
# failing since zigpy 0.60.0
"test_join_device"
"test_nonstandard_profile"
"test_permit_join"
"test_request_recovery_route_rediscovery_zdo"
"test_watchdog"
"test_zigpy_request"
"test_zigpy_request_failure"
];
pythonImportsCheck = [ pythonImportsCheck = [
"zigpy_znp" "zigpy_znp"
]; ];

View file

@ -18,8 +18,8 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "zigpy"; pname = "zigpy";
version = "0.60.2"; version = "0.62.3";
format = "pyproject"; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "zigpy"; owner = "zigpy";
repo = "zigpy"; repo = "zigpy";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-3hYgb2uvyFQmtfdVKBorGhTgVt/Dq1roXTu7xvE7SHY="; hash = "sha256-LMcyYDUH/jGrDW8sjrT9kHdIWQ20fOOcOJRhUpKMGi8=";
}; };
postPatch = '' postPatch = ''

View file

@ -2,7 +2,7 @@
# Do not edit! # Do not edit!
{ {
version = "2024.1.6"; version = "2024.2.1";
components = { components = {
"3_day_blinds" = ps: with ps; [ "3_day_blinds" = ps: with ps; [
]; ];
@ -94,6 +94,8 @@
"airtouch4" = ps: with ps; [ "airtouch4" = ps: with ps; [
airtouch4pyapi airtouch4pyapi
]; ];
"airtouch5" = ps: with ps; [
]; # missing inputs: airtouch5py
"airvisual" = ps: with ps; [ "airvisual" = ps: with ps; [
pyairvisual pyairvisual
]; ];
@ -157,6 +159,8 @@
psutil-home-assistant psutil-home-assistant
sqlalchemy sqlalchemy
]; ];
"analytics_insights" = ps: with ps; [
]; # missing inputs: python-homeassistant-analytics
"android_ip_webcam" = ps: with ps; [ "android_ip_webcam" = ps: with ps; [
pydroid-ipcam pydroid-ipcam
]; ];
@ -383,6 +387,8 @@
"balboa" = ps: with ps; [ "balboa" = ps: with ps; [
pybalboa pybalboa
]; ];
"bang_olufsen" = ps: with ps; [
]; # missing inputs: mozart-api
"bayesian" = ps: with ps; [ "bayesian" = ps: with ps; [
]; ];
"bbox" = ps: with ps; [ "bbox" = ps: with ps; [
@ -561,6 +567,8 @@
]; ];
"brel_home" = ps: with ps; [ "brel_home" = ps: with ps; [
]; ];
"bring" = ps: with ps; [
]; # missing inputs: python-bring-api
"broadlink" = ps: with ps; [ "broadlink" = ps: with ps; [
broadlink broadlink
]; ];
@ -680,9 +688,6 @@
"cisco_mobility_express" = ps: with ps; [ "cisco_mobility_express" = ps: with ps; [
ciscomobilityexpress ciscomobilityexpress
]; ];
"cisco_webex_teams" = ps: with ps; [
webexteamssdk
];
"citybikes" = ps: with ps; [ "citybikes" = ps: with ps; [
]; ];
"clementine" = ps: with ps; [ "clementine" = ps: with ps; [
@ -719,6 +724,8 @@
"co2signal" = ps: with ps; [ "co2signal" = ps: with ps; [
aioelectricitymaps aioelectricitymaps
]; ];
"coautilities" = ps: with ps; [
];
"coinbase" = ps: with ps; [ "coinbase" = ps: with ps; [
]; # missing inputs: coinbase ]; # missing inputs: coinbase
"color_extractor" = ps: with ps; [ "color_extractor" = ps: with ps; [
@ -1115,6 +1122,7 @@
pyeconet pyeconet
]; ];
"ecovacs" = ps: with ps; [ "ecovacs" = ps: with ps; [
deebot-client
]; # missing inputs: py-sucks ]; # missing inputs: py-sucks
"ecowitt" = ps: with ps; [ "ecowitt" = ps: with ps; [
aioecowitt aioecowitt
@ -1170,6 +1178,11 @@
"elv" = ps: with ps; [ "elv" = ps: with ps; [
pypca pypca
]; ];
"elvia" = ps: with ps; [
fnv-hash-fast
psutil-home-assistant
sqlalchemy
]; # missing inputs: elvia
"emby" = ps: with ps; [ "emby" = ps: with ps; [
pyemby pyemby
]; ];
@ -1238,6 +1251,9 @@
"ephember" = ps: with ps; [ "ephember" = ps: with ps; [
pyephember pyephember
]; ];
"epion" = ps: with ps; [
epion
];
"epson" = ps: with ps; [ "epson" = ps: with ps; [
epson-projector epson-projector
]; ];
@ -1332,8 +1348,6 @@
]; ];
"facebook" = ps: with ps; [ "facebook" = ps: with ps; [
]; ];
"facebox" = ps: with ps; [
];
"fail2ban" = ps: with ps; [ "fail2ban" = ps: with ps; [
]; ];
"familyhub" = ps: with ps; [ "familyhub" = ps: with ps; [
@ -1787,6 +1801,15 @@
webrtc-noise-gain webrtc-noise-gain
zeroconf zeroconf
]; ];
"govee_light_local" = ps: with ps; [
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-zlib-ng
fnv-hash-fast
ifaddr
psutil-home-assistant
sqlalchemy
]; # missing inputs: govee-local-api
"gpsd" = ps: with ps; [ "gpsd" = ps: with ps; [
gps3 gps3
]; ];
@ -1898,6 +1921,8 @@
"hive" = ps: with ps; [ "hive" = ps: with ps; [
pyhiveapi pyhiveapi
]; ];
"hko" = ps: with ps; [
]; # missing inputs: hko
"hlk_sw16" = ps: with ps; [ "hlk_sw16" = ps: with ps; [
hlk-sw16 hlk-sw16
]; ];
@ -1915,10 +1940,6 @@
sqlalchemy sqlalchemy
]; ];
"home_plus_control" = ps: with ps; [ "home_plus_control" = ps: with ps; [
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-zlib-ng
homepluscontrol
]; ];
"homeassistant" = ps: with ps; [ "homeassistant" = ps: with ps; [
]; ];
@ -2108,6 +2129,9 @@
]; ];
"hurrican_shutters_wholesale" = ps: with ps; [ "hurrican_shutters_wholesale" = ps: with ps; [
]; ];
"huum" = ps: with ps; [
huum
];
"hvv_departures" = ps: with ps; [ "hvv_departures" = ps: with ps; [
pygti pygti
]; ];
@ -2542,6 +2566,9 @@
]; ];
"lacrosse_view" = ps: with ps; [ "lacrosse_view" = ps: with ps; [
]; # missing inputs: lacrosse-view ]; # missing inputs: lacrosse-view
"lamarzocco" = ps: with ps; [
lmcloud
];
"lametric" = ps: with ps; [ "lametric" = ps: with ps; [
aiohttp-cors aiohttp-cors
aiohttp-fast-url-dispatcher aiohttp-fast-url-dispatcher
@ -2608,6 +2635,35 @@
webrtc-noise-gain webrtc-noise-gain
zeroconf zeroconf
]; ];
"leaone" = ps: with ps; [
aioesphomeapi
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-zlib-ng
aioruuvigateway
aioshelly
bleak
bleak-esphome
bleak-retry-connector
bluetooth-adapters
bluetooth-auto-recovery
bluetooth-data-tools
dbus-fast
esphome-dashboard-api
fnv-hash-fast
ha-ffmpeg
habluetooth
hassil
home-assistant-intents
ifaddr
mutagen
psutil-home-assistant
pyserial
pyudev
sqlalchemy
webrtc-noise-gain
zeroconf
]; # missing inputs: leaone-ble
"led_ble" = ps: with ps; [ "led_ble" = ps: with ps; [
aioesphomeapi aioesphomeapi
aiohttp-cors aiohttp-cors
@ -2650,7 +2706,6 @@
aiopyarr aiopyarr
]; ];
"life360" = ps: with ps; [ "life360" = ps: with ps; [
life360
]; ];
"lifx" = ps: with ps; [ "lifx" = ps: with ps; [
aiohttp-cors aiohttp-cors
@ -2962,9 +3017,6 @@
"meteoclimatic" = ps: with ps; [ "meteoclimatic" = ps: with ps; [
pymeteoclimatic pymeteoclimatic
]; ];
"metoffice" = ps: with ps; [
datapoint
];
"mfi" = ps: with ps; [ "mfi" = ps: with ps; [
]; # missing inputs: mficlient ]; # missing inputs: mficlient
"microsoft" = ps: with ps; [ "microsoft" = ps: with ps; [
@ -3211,6 +3263,14 @@
"mythicbeastsdns" = ps: with ps; [ "mythicbeastsdns" = ps: with ps; [
mbddns mbddns
]; ];
"myuplink" = ps: with ps; [
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-zlib-ng
fnv-hash-fast
psutil-home-assistant
sqlalchemy
]; # missing inputs: myuplink
"nad" = ps: with ps; [ "nad" = ps: with ps; [
nad-receiver nad-receiver
]; ];
@ -3884,6 +3944,17 @@
"qwikswitch" = ps: with ps; [ "qwikswitch" = ps: with ps; [
pyqwikswitch pyqwikswitch
]; ];
"rabbitair" = ps: with ps; [
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-zlib-ng
fnv-hash-fast
ifaddr
psutil-home-assistant
python-rabbitair
sqlalchemy
zeroconf
];
"rachio" = ps: with ps; [ "rachio" = ps: with ps; [
aiohttp-cors aiohttp-cors
aiohttp-fast-url-dispatcher aiohttp-fast-url-dispatcher
@ -3920,6 +3991,16 @@
aioeagle aioeagle
eagle100 eagle100
]; ];
"rainforest_raven" = ps: with ps; [
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-zlib-ng
fnv-hash-fast
psutil-home-assistant
pyserial
pyudev
sqlalchemy
]; # missing inputs: aioraven
"rainmachine" = ps: with ps; [ "rainmachine" = ps: with ps; [
regenmaschine regenmaschine
]; ];
@ -4079,6 +4160,8 @@
"roku" = ps: with ps; [ "roku" = ps: with ps; [
rokuecp rokuecp
]; ];
"romy" = ps: with ps; [
]; # missing inputs: romy
"roomba" = ps: with ps; [ "roomba" = ps: with ps; [
roombapy roombapy
]; ];
@ -4826,8 +4909,7 @@
tank-utility tank-utility
]; ];
"tankerkoenig" = ps: with ps; [ "tankerkoenig" = ps: with ps; [
pytankerkoenig ]; # missing inputs: aiotankerkoenig
];
"tapsaff" = ps: with ps; [ "tapsaff" = ps: with ps; [
]; # missing inputs: tapsaff ]; # missing inputs: tapsaff
"tasmota" = ps: with ps; [ "tasmota" = ps: with ps; [
@ -4843,9 +4925,17 @@
]; ];
"tcp" = ps: with ps; [ "tcp" = ps: with ps; [
]; ];
"technove" = ps: with ps; [
]; # missing inputs: python-technove
"ted5000" = ps: with ps; [ "ted5000" = ps: with ps; [
xmltodict xmltodict
]; ];
"tedee" = ps: with ps; [
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-zlib-ng
pytedee-async
];
"telegram" = ps: with ps; [ "telegram" = ps: with ps; [
aiohttp-cors aiohttp-cors
aiohttp-fast-url-dispatcher aiohttp-fast-url-dispatcher
@ -4881,6 +4971,9 @@
"tesla_wall_connector" = ps: with ps; [ "tesla_wall_connector" = ps: with ps; [
tesla-wall-connector tesla-wall-connector
]; ];
"teslemetry" = ps: with ps; [
tesla-fleet-api
];
"tessie" = ps: with ps; [ "tessie" = ps: with ps; [
]; # missing inputs: tessie-api ]; # missing inputs: tessie-api
"text" = ps: with ps; [ "text" = ps: with ps; [
@ -5085,6 +5178,8 @@
"tplink_omada" = ps: with ps; [ "tplink_omada" = ps: with ps; [
tplink-omada-client tplink-omada-client
]; ];
"tplink_tapo" = ps: with ps; [
];
"traccar" = ps: with ps; [ "traccar" = ps: with ps; [
aiohttp-cors aiohttp-cors
aiohttp-fast-url-dispatcher aiohttp-fast-url-dispatcher
@ -5092,6 +5187,9 @@
pytraccar pytraccar
stringcase stringcase
]; ];
"traccar_server" = ps: with ps; [
pytraccar
];
"trace" = ps: with ps; [ "trace" = ps: with ps; [
]; ];
"tractive" = ps: with ps; [ "tractive" = ps: with ps; [
@ -5133,8 +5231,7 @@
]; ];
"tuya" = ps: with ps; [ "tuya" = ps: with ps; [
ha-ffmpeg ha-ffmpeg
tuya-iot-py-sdk ]; # missing inputs: tuya-device-sharing-sdk
];
"twentemilieu" = ps: with ps; [ "twentemilieu" = ps: with ps; [
twentemilieu twentemilieu
]; ];
@ -5891,6 +5988,7 @@
"enocean" "enocean"
"enphase_envoy" "enphase_envoy"
"environment_canada" "environment_canada"
"epion"
"epson" "epson"
"escea" "escea"
"esphome" "esphome"
@ -5901,7 +5999,6 @@
"ezviz" "ezviz"
"faa_delays" "faa_delays"
"facebook" "facebook"
"facebox"
"fail2ban" "fail2ban"
"fan" "fan"
"feedreader" "feedreader"
@ -5972,6 +6069,7 @@
"google_travel_time" "google_travel_time"
"google_wifi" "google_wifi"
"govee_ble" "govee_ble"
"gpsd"
"gpslogger" "gpslogger"
"graphite" "graphite"
"gree" "gree"
@ -5995,7 +6093,6 @@
"hlk_sw16" "hlk_sw16"
"holiday" "holiday"
"home_connect" "home_connect"
"home_plus_control"
"homeassistant" "homeassistant"
"homeassistant_alerts" "homeassistant_alerts"
"homeassistant_green" "homeassistant_green"
@ -6015,6 +6112,7 @@
"huisbaasje" "huisbaasje"
"humidifier" "humidifier"
"hunterdouglas_powerview" "hunterdouglas_powerview"
"huum"
"hvv_departures" "hvv_departures"
"hydrawise" "hydrawise"
"hyperion" "hyperion"
@ -6065,6 +6163,7 @@
"kostal_plenticore" "kostal_plenticore"
"kraken" "kraken"
"kulersky" "kulersky"
"lamarzocco"
"lametric" "lametric"
"landisgyr_heat_meter" "landisgyr_heat_meter"
"lastfm" "lastfm"
@ -6096,6 +6195,8 @@
"loqed" "loqed"
"lovelace" "lovelace"
"luftdaten" "luftdaten"
"lupusec"
"lutron"
"lutron_caseta" "lutron_caseta"
"lyric" "lyric"
"mailbox" "mailbox"
@ -6116,7 +6217,6 @@
"met_eireann" "met_eireann"
"meteo_france" "meteo_france"
"meteoclimatic" "meteoclimatic"
"metoffice"
"microsoft_face" "microsoft_face"
"microsoft_face_detect" "microsoft_face_detect"
"microsoft_face_identify" "microsoft_face_identify"
@ -6244,6 +6344,7 @@
"qnap" "qnap"
"qnap_qsw" "qnap_qsw"
"qwikswitch" "qwikswitch"
"rabbitair"
"rachio" "rachio"
"radarr" "radarr"
"radio_browser" "radio_browser"
@ -6382,16 +6483,17 @@
"tag" "tag"
"tailscale" "tailscale"
"tailwind" "tailwind"
"tankerkoenig"
"tasmota" "tasmota"
"tautulli" "tautulli"
"tcp" "tcp"
"tedee"
"telegram" "telegram"
"telegram_bot" "telegram_bot"
"tellduslive" "tellduslive"
"temper" "temper"
"template" "template"
"tesla_wall_connector" "tesla_wall_connector"
"teslemetry"
"text" "text"
"thermobeacon" "thermobeacon"
"thermopro" "thermopro"
@ -6414,6 +6516,7 @@
"tplink" "tplink"
"tplink_omada" "tplink_omada"
"traccar" "traccar"
"traccar_server"
"trace" "trace"
"tractive" "tractive"
"tradfri" "tradfri"
@ -6425,7 +6528,6 @@
"transport_nsw" "transport_nsw"
"trend" "trend"
"tts" "tts"
"tuya"
"twentemilieu" "twentemilieu"
"twilio" "twilio"
"twinkly" "twinkly"

View file

@ -90,7 +90,7 @@ let
hash = "sha256-YmJH4brWkTpgzyHwu9UnIWrY5qlDCmMtvF+KxQFXwfk="; hash = "sha256-YmJH4brWkTpgzyHwu9UnIWrY5qlDCmMtvF+KxQFXwfk=";
}; };
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml --replace \ substituteInPlace pyproject.toml --replace-fail \
'"setuptools >= 35.0.2", "wheel >= 0.29.0", "poetry>=0.12"' \ '"setuptools >= 35.0.2", "wheel >= 0.29.0", "poetry>=0.12"' \
'"poetry-core"' '"poetry-core"'
''; '';
@ -125,21 +125,12 @@ let
hash = "sha256-tWnxGLJT+CRFvkhxFamHxnLXBvoR8tfOvzH1o1i5JJg="; hash = "sha256-tWnxGLJT+CRFvkhxFamHxnLXBvoR8tfOvzH1o1i5JJg=";
}; };
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml --replace \ substituteInPlace pyproject.toml --replace-fail \
'"setuptools >= 35.0.2", "wheel >= 0.29.0", "poetry>=0.12"' \ '"setuptools >= 35.0.2", "wheel >= 0.29.0", "poetry>=0.12"' \
'"poetry-core"' '"poetry-core"'
''; '';
}); });
amberelectric = super.amberelectric.overridePythonAttrs (oldAttrs: rec {
version = "1.0.4";
src = fetchPypi {
inherit (oldAttrs) pname;
inherit version;
hash = "sha256-5SWJnTxRm6mzP0RxrgA+jnV+Gp23WjqQA57wbT2V9Dk=";
};
});
anova-wifi = super.anova-wifi.overridePythonAttrs (old: rec { anova-wifi = super.anova-wifi.overridePythonAttrs (old: rec {
version = "0.10.3"; version = "0.10.3";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -159,8 +150,8 @@ let
}; };
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml \ substituteInPlace pyproject.toml \
--replace "poetry>=1.0.0b1" "poetry-core" \ --replace-fail "poetry>=1.0.0b1" "poetry-core" \
--replace "poetry.masonry" "poetry.core.masonry" --replace-fail "poetry.masonry" "poetry.core.masonry"
''; '';
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
self.pytz self.pytz
@ -216,14 +207,25 @@ let
}; };
}); });
justnimbus = super.justnimbus.overridePythonAttrs (oldAttrs: rec { lxml = super.lxml.overridePythonAttrs (oldAttrs: rec {
version = "0.6.0"; version = "5.1.0";
pyprojet = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kvanzuijlen"; owner = "lxml";
repo = "justnimbus"; repo = "lxml";
rev = "refs/tags/${version}"; rev = "refs/tags/lxml-${version}";
hash = "sha256-uQ5Nc5sxqHeAuavyfX4Q6Umsd54aileJjFwOOU6X7Yg="; hash = "sha256-eWLYzZWatYDmhuBTZynsdytlNFKKmtWQ1XIyzVD8sDY=";
}; };
nativeBuildInputs = with self; [
cython_3
setuptools
libxml2.dev
libxslt.dev
];
patches = [];
}); });
notifications-android-tv = super.notifications-android-tv.overridePythonAttrs (oldAttrs: rec { notifications-android-tv = super.notifications-android-tv.overridePythonAttrs (oldAttrs: rec {
@ -321,16 +323,6 @@ let
}; };
}); });
pydrawise = super.pydrawise.overridePythonAttrs (oldAttrs: rec {
version = "2023.11.0";
src = fetchFromGitHub {
owner = "dknowles2";
repo = "pydrawise";
rev = "refs/tags/${version}";
hash = "sha256-gKOyTvdETGzKlpU67UKaHYTIvnAX9znHIynP3BiVbt4=";
};
});
pykaleidescape = super.pykaleidescape.overridePythonAttrs (oldAttrs: rec { pykaleidescape = super.pykaleidescape.overridePythonAttrs (oldAttrs: rec {
version = "1.0.1"; version = "1.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -350,35 +342,6 @@ let
}; };
}); });
python-kasa = super.python-kasa.overridePythonAttrs (oldAttrs: rec {
version = "0.5.4";
src = fetchFromGitHub {
owner = "python-kasa";
repo = "python-kasa";
rev = "refs/tags/${version}";
hash = "sha256-wGPMrYaTtKkkNW88eyiiciFcBSTRqqChYi6e15WUCHo=";
};
});
python-roborock = super.python-roborock.overridePythonAttrs (oldAttrs: rec {
version = "0.38.0";
src = fetchFromGitHub {
owner = "humbertogontijo";
repo = "python-roborock";
rev = "refs/tags/v${version}";
hash = "sha256-jYESUMhLb5oiM3PWIIIU4dn/waGUnCAaXe0URnIq0C8=";
};
});
python-slugify = super.python-slugify.overridePythonAttrs (oldAttrs: rec {
pname = "python-slugify";
version = "4.0.1";
src = fetchPypi {
inherit pname version;
hash = "sha256-aaUXdm4AwSaOW7/A0BCgqFCN4LGNMK1aH/NX+K5yQnA=";
};
});
pytradfri = super.pytradfri.overridePythonAttrs (oldAttrs: rec { pytradfri = super.pytradfri.overridePythonAttrs (oldAttrs: rec {
version = "9.0.1"; version = "9.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -389,16 +352,6 @@ let
}; };
}); });
tesla-powerwall = super.tesla-powerwall.overridePythonAttrs (oldAttrs: rec {
version = "0.3.19";
src = fetchFromGitHub {
owner = "jrester";
repo = "tesla_powerwall";
rev = "refs/tags/v${version}";
hash = "sha256-ClrMgPAMBtDMfD6hCJIN1u4mp75QW+c3re28v3FreQg=";
};
});
versioningit = super.versioningit.overridePythonAttrs (oldAttrs: rec { versioningit = super.versioningit.overridePythonAttrs (oldAttrs: rec {
version = "2.2.0"; version = "2.2.0";
src = fetchPypi { src = fetchPypi {
@ -483,7 +436,7 @@ let
extraBuildInputs = extraPackages python.pkgs; extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating # Don't forget to run parse-requirements.py after updating
hassVersion = "2024.1.6"; hassVersion = "2024.2.1";
in python.pkgs.buildPythonApplication rec { in python.pkgs.buildPythonApplication rec {
pname = "homeassistant"; pname = "homeassistant";
@ -501,13 +454,13 @@ in python.pkgs.buildPythonApplication rec {
owner = "home-assistant"; owner = "home-assistant";
repo = "core"; repo = "core";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-zCpdOl16ZkO9mr0nYZg1mlnGNaPaX0RALFEDRHGfKvM="; hash = "sha256-PtBDSxl0744rytMeMOTAj60eERzANzD2dyd4sPivgqQ=";
}; };
# Secondary source is pypi sdist for translations # Secondary source is pypi sdist for translations
sdist = fetchPypi { sdist = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-ipAw+vqePa5KA/Gqhl3WsQbzmzMXjmVx0NvbrM84SKg="; hash = "sha256-iLCHoDfZ1gz+LxNxIiKNsSDaL2Taq8B3Huu000eXSxc=";
}; };
nativeBuildInputs = with python.pkgs; [ nativeBuildInputs = with python.pkgs; [
@ -516,19 +469,12 @@ in python.pkgs.buildPythonApplication rec {
]; ];
pythonRelaxDeps = [ pythonRelaxDeps = [
"awesomeversion" "attrs"
"ciso8601" "ciso8601"
"cryptography"
"home-assistant-bluetooth"
"httpx"
"jinja2"
"lru-dict"
"orjson" "orjson"
"pyopenssl" "pyopenssl"
"typing-extensions" "typing-extensions"
"urllib3" "urllib3"
"voluptuous"
"yarl"
]; ];
# extract translations from pypi sdist # extract translations from pypi sdist
@ -539,7 +485,7 @@ in python.pkgs.buildPythonApplication rec {
# leave this in, so users don't have to constantly update their downstream patch handling # leave this in, so users don't have to constantly update their downstream patch handling
patches = [ patches = [
# Follow symlinks in /var/lib/hass/www # Follow symlinks in /var/lib/hass/www
./patches/static-symlinks.patch ./patches/static-follow-symlinks.patch
# Patch path to ffmpeg binary # Patch path to ffmpeg binary
(substituteAll { (substituteAll {
@ -549,7 +495,7 @@ in python.pkgs.buildPythonApplication rec {
]; ];
postPatch = '' postPatch = ''
substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"' substituteInPlace tests/test_config.py --replace-fail '"/usr"' '"/build/media"'
sed -i 's/setuptools[~=]/setuptools>/' pyproject.toml sed -i 's/setuptools[~=]/setuptools>/' pyproject.toml
sed -i 's/wheel[~=]/wheel>/' pyproject.toml sed -i 's/wheel[~=]/wheel>/' pyproject.toml

View file

@ -4,7 +4,7 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here # the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend"; pname = "home-assistant-frontend";
version = "20240104.0"; version = "20240207.1";
format = "wheel"; format = "wheel";
src = fetchPypi { src = fetchPypi {
@ -12,7 +12,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend"; pname = "home_assistant_frontend";
dist = "py3"; dist = "py3";
python = "py3"; python = "py3";
hash = "sha256-AQkrnU5UKsrl02CXDNf/aMTPII39poWJoZ4nBpySTZE="; hash = "sha256-uGBVha7nJvYua1rZXlIJGhUzEm5wSrhazrOBUi3omJk=";
}; };
# there is nothing to strip in this package # there is nothing to strip in this package

View file

@ -1,73 +1,41 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchFromGitHub , fetchPypi
, pythonOlder , pythonOlder
# build # build-system
, hassil
, jinja2
, pyyaml
, regex
, voluptuous
, python
, setuptools , setuptools
, wheel
# tests
, pytest-xdist
, pytestCheckHook
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "home-assistant-intents"; pname = "home-assistant-intents";
version = "2024.1.2"; version = "2024.2.2";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
src = fetchFromGitHub { src = fetchPypi {
owner = "home-assistant"; inherit pname version;
repo = "intents-package"; hash = "sha256-Tb9ZZvs5Wyzm2TS5INUSua4Y3/2H+kHEhjpfYWJi+d0=";
rev = "refs/tags/${version}";
hash = "sha256-uOrSvkzymG31nRmAgrn6z1IDJWahxqXHcPDflLPRVT4=";
fetchSubmodules = true;
}; };
postPatch = '' postPatch = ''
substituteInPlace pyproject.toml --replace 'requires = ["setuptools~=62.3", "wheel~=0.37.1"]' 'requires = ["setuptools", "wheel"]' substituteInPlace pyproject.toml --replace-fail \
'requires = ["setuptools~=62.3", "wheel~=0.37.1"]' \
'requires = ["setuptools"]'
''; '';
nativeBuildInputs = [ nativeBuildInputs = [
hassil
jinja2
pyyaml
regex
setuptools setuptools
wheel
voluptuous
]; ];
postInstall = '' # sdist does not ship tests
pushd intents doCheck = false;
# https://github.com/home-assistant/intents/blob/main/script/package#L18
${python.pythonOnBuildForHost.interpreter} -m script.intentfest merged_output $out/${python.sitePackages}/home_assistant_intents/data
popd
'';
checkInputs = [
pytest-xdist
pytestCheckHook
];
pytestFlagsArray = [ pytestFlagsArray = [
"intents/tests" "intents/tests"
]; ];
disabledTests = [
# AssertionError: Recognition failed for 'put apples on the list'
"test_shopping_list_HassShoppingListAddItem"
];
meta = with lib; { meta = with lib; {
description = "Intents to be used with Home Assistant"; description = "Intents to be used with Home Assistant";
homepage = "https://github.com/home-assistant/intents"; homepage = "https://github.com/home-assistant/intents";

View file

@ -0,0 +1,12 @@
diff --git a/homeassistant/components/http/static.py b/homeassistant/components/http/static.py
index e6e773d4c0..b53e0b4a11 100644
--- a/homeassistant/components/http/static.py
+++ b/homeassistant/components/http/static.py
@@ -31,7 +31,6 @@ def _get_file_path(rel_url: str, directory: Path) -> Path | None:
# where the static dir is totally different
raise HTTPForbidden
filepath: Path = directory.joinpath(filename).resolve()
- filepath.relative_to(directory)
# on opening a dir, load its contents if allowed
if filepath.is_dir():
return None

View file

@ -1,37 +0,0 @@
diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py
index 2ec991750f..9a937006ce 100644
--- a/homeassistant/components/frontend/__init__.py
+++ b/homeassistant/components/frontend/__init__.py
@@ -383,7 +383,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
local = hass.config.path("www")
if os.path.isdir(local):
- hass.http.register_static_path("/local", local, not is_dev)
+ hass.http.register_static_path("/local", local, not is_dev, follow_symlinks=True)
# Can be removed in 2023
hass.http.register_redirect("/config/server_control", "/developer-tools/yaml")
diff --git a/homeassistant/components/http/__init__.py b/homeassistant/components/http/__init__.py
index 122b7b79ce..3cf2b7e0db 100644
--- a/homeassistant/components/http/__init__.py
+++ b/homeassistant/components/http/__init__.py
@@ -411,16 +411,16 @@ class HomeAssistantHTTP:
)
def register_static_path(
- self, url_path: str, path: str, cache_headers: bool = True
+ self, url_path: str, path: str, cache_headers: bool = True, follow_symlinks: bool = False
) -> None:
"""Register a folder or file to serve as a static path."""
if os.path.isdir(path):
if cache_headers:
resource: CachingStaticResource | web.StaticResource = (
- CachingStaticResource(url_path, path)
+ CachingStaticResource(url_path, path, follow_symlinks=follow_symlinks)
)
else:
- resource = web.StaticResource(url_path, path)
+ resource = web.StaticResource(url_path, path, follow_symlinks=follow_symlinks)
self.app.router.register_resource(resource)
self.app["allow_configured_cors"](resource)
return

View file

@ -8,7 +8,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "homeassistant-stubs"; pname = "homeassistant-stubs";
version = "2024.1.6"; version = "2024.2.1";
format = "pyproject"; format = "pyproject";
disabled = python.version != home-assistant.python.version; disabled = python.version != home-assistant.python.version;
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "KapJI"; owner = "KapJI";
repo = "homeassistant-stubs"; repo = "homeassistant-stubs";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-htFz3Cw5AvI1h2YvECOJdMA4N3JAQRRRhx1tfR4h5co="; hash = "sha256-1a2iwyRyXOD8iaTzdnEGfwCgw6dU2bV1iWpoD7s35QI=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -27,7 +27,7 @@ buildPythonPackage rec {
postPatch = '' postPatch = ''
# Relax constraint to year and month # Relax constraint to year and month
substituteInPlace pyproject.toml --replace \ substituteInPlace pyproject.toml --replace-fail \
'homeassistant = "${version}"' \ 'homeassistant = "${version}"' \
'homeassistant = "~${lib.versions.majorMinor home-assistant.version}"' 'homeassistant = "~${lib.versions.majorMinor home-assistant.version}"'
''; '';

View file

@ -1,7 +1,7 @@
{ lib { lib
, stdenv , stdenv
, fetchurl , fetchurl
, scons_3_1_2 , buildPackages
, boost , boost
, gperftools , gperftools
, pcre-cpp , pcre-cpp
@ -32,38 +32,19 @@ with lib;
}: }:
let let
variants = scons = buildPackages.scons;
if versionAtLeast version "6.0" python = scons.python.withPackages (ps: with ps; [
then rec { pyyaml
python = scons.python.withPackages (ps: with ps; [ cheetah3
pyyaml psutil
cheetah3 setuptools
psutil ] ++ lib.optionals (versionAtLeast version "6.0") [
setuptools packaging
packaging pymongo
pymongo ]);
]);
scons = scons_3_1_2; mozjsVersion = "60";
mozjsReplace = "defined(HAVE___SINCOS)";
mozjsVersion = "60";
mozjsReplace = "defined(HAVE___SINCOS)";
}
else rec {
python = scons.python.withPackages (ps: with ps; [
pyyaml
cheetah3
psutil
setuptools
]);
scons = scons_3_1_2;
mozjsVersion = "60";
mozjsReplace = "defined(HAVE___SINCOS)";
};
system-libraries = [ system-libraries = [
"boost" "boost"
@ -87,8 +68,10 @@ in stdenv.mkDerivation rec {
inherit sha256; inherit sha256;
}; };
nativeBuildInputs = [ variants.scons ] nativeBuildInputs = [
++ lib.optionals (versionAtLeast version "4.4") [ xz ]; scons
python
] ++ lib.optional stdenv.isLinux net-snmp;
buildInputs = [ buildInputs = [
boost boost
@ -99,13 +82,12 @@ in stdenv.mkDerivation rec {
openssl openssl
openldap openldap
pcre-cpp pcre-cpp
variants.python
sasl sasl
snappy snappy
zlib zlib
] ++ lib.optionals stdenv.isDarwin [ Security CoreFoundation cctools ] ] ++ lib.optionals stdenv.isDarwin [ Security CoreFoundation cctools ]
++ lib.optionals stdenv.isLinux [ net-snmp ]; ++ lib.optional stdenv.isLinux net-snmp
++ lib.optionals (versionAtLeast version "4.4") [ xz ];
# MongoDB keeps track of its build parameters, which tricks nix into # MongoDB keeps track of its build parameters, which tricks nix into
# keeping dependencies to build inputs in the final output. # keeping dependencies to build inputs in the final output.
@ -127,7 +109,7 @@ in stdenv.mkDerivation rec {
# remove -march overriding, we know better. # remove -march overriding, we know better.
sed -i 's/env.Append.*-march=.*$/pass/' SConstruct sed -i 's/env.Append.*-march=.*$/pass/' SConstruct
'' + lib.optionalString (stdenv.isDarwin && versionOlder version "6.0") '' '' + lib.optionalString (stdenv.isDarwin && versionOlder version "6.0") ''
substituteInPlace src/third_party/mozjs-${variants.mozjsVersion}/extract/js/src/jsmath.cpp --replace '${variants.mozjsReplace}' 0 substituteInPlace src/third_party/mozjs-${mozjsVersion}/extract/js/src/jsmath.cpp --replace '${mozjsReplace}' 0
'' + lib.optionalString (stdenv.isDarwin && versionOlder version "3.6") '' '' + lib.optionalString (stdenv.isDarwin && versionOlder version "3.6") ''
substituteInPlace src/third_party/s2/s1angle.cc --replace drem remainder substituteInPlace src/third_party/s2/s1angle.cc --replace drem remainder
substituteInPlace src/third_party/s2/s1interval.cc --replace drem remainder substituteInPlace src/third_party/s2/s1interval.cc --replace drem remainder
@ -162,6 +144,7 @@ in stdenv.mkDerivation rec {
preBuild = '' preBuild = ''
sconsFlags+=" CC=$CC" sconsFlags+=" CC=$CC"
sconsFlags+=" CXX=$CXX" sconsFlags+=" CXX=$CXX"
sconsFlags+=" AR=$AR"
'' + optionalString stdenv.isAarch64 '' '' + optionalString stdenv.isAarch64 ''
sconsFlags+=" CCFLAGS='-march=armv8-a+crc'" sconsFlags+=" CCFLAGS='-march=armv8-a+crc'"
''; '';

View file

@ -6,27 +6,21 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "wyoming-faster-whisper"; pname = "wyoming-faster-whisper";
version = "1.0.2"; version = "1.1.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rhasspy"; owner = "rhasspy";
repo = "wyoming-faster-whisper"; repo = "wyoming-faster-whisper";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-mKnWab3i6lEnCBbO3ucNmWIxaaWwQagzfDhaD1U3qow="; hash = "sha256-RD6J/Q7kvd+sgTpR6ERyV+D8gpm0fF38L3U/Jp7gOgk=";
}; };
patches = [ patches = [
# add wyoming-faster-whisper executable
(fetchpatch { (fetchpatch {
url = "https://github.com/rhasspy/wyoming-faster-whisper/commit/a5715197abab34253d2864ed8cf406210834b4ec.patch"; # fix setup.py
hash = "sha256-a9gmXMngwXo9ZJDbxl/pPzm6WSy5XeGbz/Xncj7bOog="; url = "https://github.com/rhasspy/wyoming-faster-whisper/commit/cdd1536997a091dcf9054da9ff424a2603067755.patch";
}) hash = "sha256-LGYo21FhKGXcAN9DjXzwIRqkOzTz3suXiQdgGrJSDBw=";
# fix model retrieval on python3.11+
(fetchpatch {
url = "https://github.com/rhasspy/wyoming-faster-whisper/commit/d5229df2c3af536013bc931c1ed7cc239b618208.patch";
hash = "sha256-CMpOJ1qSPcdtX2h2ecGmQ/haus/gaSH8r/PCFsMChRY=";
}) })
]; ];

View file

@ -10313,17 +10313,7 @@ self: super: with self; {
pycxx = callPackage ../development/python-modules/pycxx { }; pycxx = callPackage ../development/python-modules/pycxx { };
pycyphal = callPackage ../development/python-modules/pycyphal { pycyphal = callPackage ../development/python-modules/pycyphal { };
# Does not yet support nunavut 2+, use latest 1.X version instead
# https://github.com/OpenCyphal/pycyphal/issues/277
nunavut = self.nunavut.overridePythonAttrs (prev: rec {
version = "1.9.0";
src = prev.src.override {
inherit version;
hash = "sha256-KhgijXJ908uxM7VZdXo1WU/RGU0cfqctBCbpF2wOcy8=";
};
});
};
pydaikin = callPackage ../development/python-modules/pydaikin { }; pydaikin = callPackage ../development/python-modules/pydaikin { };

File diff suppressed because it is too large Load diff