Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-12-10 18:01:37 +00:00 committed by GitHub
commit 19b2e66364
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
110 changed files with 2562 additions and 551 deletions

View file

@ -275,6 +275,8 @@ let
"The option `${optText}' does not exist. Definition values:${defText}";
in
if attrNames options == [ "_module" ]
# No options were declared at all (`_module` is built in)
# but we do have unmatched definitions, and no freeformType (earlier conditions)
then
let
optionName = showOption prefix;

View file

@ -94,6 +94,14 @@ checkConfigOutput '^true$' config.result ./module-argument-default.nix
# gvariant
checkConfigOutput '^true$' config.assertion ./gvariant.nix
# https://github.com/NixOS/nixpkgs/pull/131205
# We currently throw this error already in `config`, but throwing in `config.wrong1` would be acceptable.
checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.wrong1 ./error-mkOption-in-config.nix
# We currently throw this error already in `config`, but throwing in `config.nest.wrong2` would be acceptable.
checkConfigError 'It seems as if you.re trying to declare an option by placing it into .config. rather than .options.' config.nest.wrong2 ./error-mkOption-in-config.nix
checkConfigError 'The option .sub.wrong2. does not exist. Definition values:' config.sub ./error-mkOption-in-submodule-config.nix
checkConfigError '.*This can happen if you e.g. declared your options in .types.submodule.' config.sub ./error-mkOption-in-submodule-config.nix
# types.pathInStore
checkConfigOutput '".*/store/0lz9p8xhf89kb1c1kk6jxrzskaiygnlh-bash-5.2-p15.drv"' config.pathInStore.ok1 ./types.nix
checkConfigOutput '".*/store/0fb3ykw9r5hpayd05sr0cizwadzq1d8q-bash-5.2-p15"' config.pathInStore.ok2 ./types.nix

View file

@ -0,0 +1,14 @@
{ lib, ... }:
let
inherit (lib) mkOption;
in
{
wrong1 = mkOption {
};
# This is not actually reported separately, so could be omitted from the test
# but it makes the example more realistic.
# Making it parse this _config_ as options would too risky. What if it's not
# options but other values, that abort, throw, diverge, etc?
nest.wrong2 = mkOption {
};
}

View file

@ -0,0 +1,12 @@
{ lib, ... }:
let
inherit (lib) mkOption;
in
{
options.sub = lib.mkOption {
type = lib.types.submodule {
wrong2 = mkOption {};
};
default = {};
};
}

View file

@ -3737,6 +3737,12 @@
githubId = 1740337;
name = "Chris Ostrouchov";
};
cottand = {
email = "nico@dcotta.eu";
github = "cottand";
githubId = 45274424;
name = "Nico D'Cotta";
};
couchemar = {
email = "couchemar@yandex.ru";
github = "couchemar";
@ -5735,6 +5741,12 @@
githubId = 25955146;
name = "eyJhb";
};
eymeric = {
name = "Eymeric Dechelette";
email = "hatchchcien@protonmail.com";
github = "hatch01";
githubId = 42416805;
};
f2k1de = {
name = "f2k1de";
email = "hi@f2k1.de";
@ -6744,8 +6756,6 @@
};
gm6k = {
email = "nix@quidecco.pl";
github = "zeuner";
githubId = 2545850;
name = "Isidor Zeuner";
};
gmemstr = {
@ -8840,6 +8850,12 @@
githubId = 6321578;
name = "John Rinehart";
};
john-rodewald = {
email = "jnrodewald99@gmail.com";
github = "john-rodewald";
githubId = 51028009;
name = "John Rodewald";
};
john-shaffer = {
email = "jdsha@proton.me";
github = "john-shaffer";
@ -9372,6 +9388,7 @@
katexochen = {
github = "katexochen";
githubId = 49727155;
matrix = "@katexochen:matrix.org";
name = "Paul Meyer";
};
kayhide = {
@ -18554,8 +18571,6 @@
};
tomkoid = {
email = "tomaszierl@outlook.com";
github = "Tomkoid";
githubId = 67477750;
name = "Tomkoid";
};
tomodachi94 = {

View file

@ -55,6 +55,14 @@ which causes the new configuration (and previous ones created using
This can be useful to separate test configurations from "stable"
configurations.
A repl, or read-eval-print loop, is also available. You can inspect your configuration and use the Nix language with
```ShellSession
# nixos-rebuild repl
```
Your configuration is loaded into the `config` variable. Use tab for autocompletion, use the `:r` command to reload the configuration files. See `:?` or [`nix repl` in the Nix manual](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-repl.html) to learn more.
Finally, you can do
```ShellSession

View file

@ -32,6 +32,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- `mkosi` was updated to v19. Parts of the user interface have changed. Consult the
[release notes](https://github.com/systemd/mkosi/releases/tag/v19) for a list of changes.
- `services.avahi.nssmdns` got split into `services.avahi.nssmdns4` and `services.avahi.nssmdns6` which enable the mDNS NSS switch for IPv4 and IPv6 respectively.
Since most mDNS responders only register IPv4 addresses, most users want to keep the IPv6 support disabled to avoid long timeouts.
## Other Notable Changes {#sec-release-24.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@ -60,5 +63,10 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- The `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
- The `btrbk` module now automatically selects and provides required compression
program depending on the configured `stream_compress` option. Since this
replaces the need for the `extraPackages` option, this option will be
deprecated in future releases.
- QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.

View file

@ -6,12 +6,15 @@ let
concatMapStringsSep
concatStringsSep
filterAttrs
flatten
getAttr
isAttrs
literalExpression
mapAttrs'
mapAttrsToList
mkIf
mkOption
optional
optionalString
sortOn
types
@ -84,6 +87,18 @@ let
'';
};
streamCompressMap = {
gzip = pkgs.gzip;
pigz = pkgs.pigz;
bzip2 = pkgs.bzip2;
pbzip2 = pkgs.pbzip2;
bzip3 = pkgs.bzip3;
xz = pkgs.xz;
lzo = pkgs.lzo;
lz4 = pkgs.lz4;
zstd = pkgs.zstd;
};
cfg = config.services.btrbk;
sshEnabled = cfg.sshAccess != [ ];
serviceEnabled = cfg.instances != { };
@ -94,7 +109,14 @@ in
options = {
services.btrbk = {
extraPackages = mkOption {
description = lib.mdDoc "Extra packages for btrbk, like compression utilities for `stream_compress`";
description = lib.mdDoc ''
Extra packages for btrbk, like compression utilities for `stream_compress`.
**Note**: This option will get deprecated in future releases.
Required compression programs will get automatically provided to btrbk
depending on configured compression method in
`services.btrbk.instances.<name>.settings` option.
'';
type = types.listOf types.package;
default = [ ];
example = literalExpression "[ pkgs.xz ]";
@ -124,7 +146,19 @@ in
'';
};
settings = mkOption {
type = let t = types.attrsOf (types.either types.str (t // { description = "instances of this type recursively"; })); in t;
type = types.submodule {
freeformType = let t = types.attrsOf (types.either types.str (t // { description = "instances of this type recursively"; })); in t;
options = {
stream_compress = mkOption {
description = lib.mdDoc ''
Compress the btrfs send stream before transferring it from/to remote locations using a
compression command.
'';
type = types.enum ["gzip" "pigz" "bzip2" "pbzip2" "bzip3" "xz" "lzo" "lz4" "zstd" "no"];
default = "no";
};
};
};
default = { };
example = {
snapshot_preserve_min = "2d";
@ -169,6 +203,11 @@ in
};
config = mkIf (sshEnabled || serviceEnabled) {
warnings = optional (cfg.extraPackages != []) ''
extraPackages option will be deprecated in future releases. Programs required for compression are now automatically selected depending on services.btrbk.instances.<name>.settings.stream_compress option.
'';
environment.systemPackages = [ pkgs.btrbk ] ++ cfg.extraPackages;
security.sudo.extraRules = mkIf (sudo_doas == "sudo") [ sudoRule ];
@ -232,12 +271,15 @@ in
cfg.instances;
systemd.services = mapAttrs'
(
name: _: {
name: instance: {
name = "btrbk-${name}";
value = {
description = "Takes BTRFS snapshots and maintains retention policies.";
unitConfig.Documentation = "man:btrbk(1)";
path = [ "/run/wrappers" ] ++ cfg.extraPackages;
path = [ "/run/wrappers" ]
++ cfg.extraPackages
++ optional (instance.settings.stream_compress != "no")
(getAttr instance.settings.stream_compress streamCompressMap);
serviceConfig = {
User = "btrbk";
Group = "btrbk";

View file

@ -1,10 +1,7 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.power-profiles-daemon;
package = pkgs.power-profiles-daemon;
in
{
@ -15,8 +12,8 @@ in
services.power-profiles-daemon = {
enable = mkOption {
type = types.bool;
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable power-profiles-daemon, a DBus daemon that allows
@ -24,6 +21,8 @@ in
'';
};
package = lib.mkPackageOption pkgs "power-profiles-daemon" { };
};
};
@ -31,7 +30,7 @@ in
###### implementation
config = mkIf cfg.enable {
config = lib.mkIf cfg.enable {
assertions = [
{ assertion = !config.services.tlp.enable;
@ -42,13 +41,13 @@ in
}
];
environment.systemPackages = [ package ];
environment.systemPackages = [ cfg.package ];
services.dbus.packages = [ package ];
services.dbus.packages = [ cfg.package ];
services.udev.packages = [ package ];
services.udev.packages = [ cfg.package ];
systemd.packages = [ package ];
systemd.packages = [ cfg.package ];
};

View file

@ -75,7 +75,7 @@ let
# Create parts of the lovelace config that reference lovelave modules as resources
customLovelaceModulesResources = {
lovelace.resources = map (card: {
url = "/local/nixos-lovelace-modules/${card.entrypoint or card.pname + ".js"}?${card.version}";
url = "/local/nixos-lovelace-modules/${card.entrypoint or (card.pname + ".js")}?${card.version}";
type = "module";
}) cfg.customLovelaceModules;
};
@ -157,7 +157,7 @@ in {
default = [];
example = literalExpression ''
with pkgs.home-assistant-custom-components; [
prometheus-sensor
prometheus_sensor
];
'';
description = lib.mdDoc ''
@ -523,7 +523,6 @@ in {
"bluetooth_tracker"
"bthome"
"default_config"
"eq3btsmart"
"eufylife_ble"
"esphome"
"fjaraskupan"

View file

@ -42,6 +42,7 @@ in
{
imports = [
(lib.mkRenamedOptionModule [ "services" "avahi" "interfaces" ] [ "services" "avahi" "allowInterfaces" ])
(lib.mkRenamedOptionModule [ "services" "avahi" "nssmdns" ] [ "services" "avahi" "nssmdns4" ])
];
options.services.avahi = {
@ -93,7 +94,7 @@ in
ipv6 = mkOption {
type = types.bool;
default = config.networking.enableIPv6;
default = false;
defaultText = literalExpression "config.networking.enableIPv6";
description = lib.mdDoc "Whether to use IPv6.";
};
@ -218,16 +219,31 @@ in
};
};
nssmdns = mkOption {
nssmdns4 = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable the mDNS NSS (Name Service Switch) plug-in.
Whether to enable the mDNS NSS (Name Service Switch) plug-in for IPv4.
Enabling it allows applications to resolve names in the `.local`
domain by transparently querying the Avahi daemon.
'';
};
nssmdns6 = mkOption {
type = types.bool;
default = false;
description = lib.mdDoc ''
Whether to enable the mDNS NSS (Name Service Switch) plug-in for IPv6.
Enabling it allows applications to resolve names in the `.local`
domain by transparently querying the Avahi daemon.
::: {.note}
Due to the fact that most mDNS responders only register local IPv4 addresses,
most user want to leave this option disabled to avoid long timeouts when applications first resolve the none existing IPv6 address.
:::
'';
};
cacheEntriesMax = mkOption {
type = types.nullOr types.int;
default = null;
@ -257,8 +273,17 @@ in
users.groups.avahi = { };
system.nssModules = optional cfg.nssmdns pkgs.nssmdns;
system.nssDatabases.hosts = optionals cfg.nssmdns (mkMerge [
(mkBefore [ "mdns_minimal [NOTFOUND=return]" ]) # before resolve
system.nssDatabases.hosts = let
mdnsMinimal = if (cfg.nssmdns4 && cfg.nssmdns6) then
"mdns_minimal"
else if (!cfg.nssmdns4 && cfg.nssmdns6) then
"mdns6_minimal"
else if (cfg.nssmdns4 && !cfg.nssmdns6) then
"mdns4_minimal"
else
"";
in optionals (cfg.nssmdns4 || cfg.nssmdns6) (mkMerge [
(mkBefore [ "${mdnsMinimal} [NOTFOUND=return]" ]) # before resolve
(mkAfter [ "mdns" ]) # after dns
]);

View file

@ -126,7 +126,7 @@ with lib;
default = "dyndns2";
type = str;
description = lib.mdDoc ''
Protocol to use with dynamic DNS provider (see https://sourceforge.net/p/ddclient/wiki/protocols).
Protocol to use with dynamic DNS provider (see https://ddclient.net/protocols.html ).
'';
};

View file

@ -27,7 +27,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
# don't do it with real ssh keys.
environment.etc."btrbk_key".text = privateKey;
services.btrbk = {
extraPackages = [ pkgs.lz4 ];
instances = {
remote = {
onCalendar = "minutely";

View file

@ -182,7 +182,7 @@ in {
hass.wait_until_succeeds("journalctl -u home-assistant.service | grep -q 'We found a custom integration prometheus_sensor which has not been tested by Home Assistant'")
with subtest("Check that lovelace modules are referenced and fetchable"):
hass.succeed("grep -q 'mini-graph-card-bundle.js' '${configDir}/ui-lovelace.yaml'")
hass.succeed("grep -q 'mini-graph-card-bundle.js' '${configDir}/configuration.yaml'")
hass.succeed("curl --fail http://localhost:8123/local/nixos-lovelace-modules/mini-graph-card-bundle.js")
with subtest("Check that optional dependencies are in the PYTHONPATH"):

View file

@ -144,6 +144,7 @@ in
restartAndCheckNebula = name: ip: ''
${name}.systemctl("restart nebula@smoke.service")
${name}.wait_for_unit("nebula@smoke.service")
${name}.succeed("ping -c5 ${ip}")
'';
@ -179,6 +180,8 @@ in
${nodeB}.succeed("iptables -I INPUT -s " + node_a + " -j DROP")
${nodeA}.systemctl("restart nebula@smoke.service")
${nodeB}.systemctl("restart nebula@smoke.service")
${nodeA}.wait_for_unit("nebula@smoke.service")
${nodeB}.wait_for_unit("nebula@smoke.service")
'';
allowTrafficBetween = nodeA: nodeB: ''
node_a = ${getPublicIp nodeA}
@ -187,6 +190,8 @@ in
${nodeB}.succeed("iptables -D INPUT -s " + node_a + " -j DROP")
${nodeA}.systemctl("restart nebula@smoke.service")
${nodeB}.systemctl("restart nebula@smoke.service")
${nodeA}.wait_for_unit("nebula@smoke.service")
${nodeB}.wait_for_unit("nebula@smoke.service")
'';
in ''
# Create the certificate and sign the lighthouse's keys.

View file

@ -18,13 +18,13 @@
buildGoModule rec {
pname = "gtkcord4";
version = "0.0.12";
version = "0.0.16-1";
src = fetchFromGitHub {
owner = "diamondburned";
repo = pname;
rev = "v${version}";
hash = "sha256-x//PST2f501QuxRdPe3cYbpL66/zLJWmscED9SbxsTk=";
hash = "sha256-GDQ11X202RIoJUZ2eJ9ukHalhXtKYn9C8lcvAzzaB+4=";
};
nativeBuildInputs = [
@ -52,17 +52,17 @@ buildGoModule rec {
];
postInstall = ''
install -D -m 444 -t $out/share/applications nix/xyz.diamondb.gtkcord4.desktop
install -D -m 444 internal/icons/svg/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
install -D -m 444 internal/icons/png/logo.png $out/share/icons/hicolor/256x256/apps/gtkcord4.png
install -D -m 444 -t $out/share/applications nix/so.libdb.gtkcord4.desktop
install -D -m 444 internal/icons/hicolor/scalable/apps/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
'';
vendorHash = "sha256-LCLZBcYiexffvCr4vdZdIwNKo0s4mqPc6KxRumRhf1Y=";
vendorHash = "sha256-ZQBYi5t6ntukoHP2FtwpZrpFd7b2opPC8tOSU9j3jUM=";
meta = with lib; {
description = "GTK4 Discord client in Go, attempt #4.";
description = "GTK4 Discord client in Go, attempt #4";
homepage = "https://github.com/diamondburned/gtkcord4";
license = licenses.gpl3Only;
mainProgram = "gtkcord4";
maintainers = with maintainers; [ hmenke urandom aleksana ];
};
}

View file

@ -17,46 +17,56 @@
, wrapGAppsHook4
, yarn
, nodejs
, blueprint-compiler
, libsecret
}:
stdenv.mkDerivation rec {
pname = "muzika";
version = "unstable-2023-06-07";
version = "unstable-2023-11-07";
src = fetchFromGitHub {
owner = "vixalien";
repo = "muzika";
rev = "d0ca7eebad67082e73513ebd7ca04edb1fdec7ce";
hash = "sha256-ycnHpyYaUJZgproTLCWCVzsvnUisXlq3fqlij1KryWA=";
rev = "69c25e066297c45f4ce42d84d5d4c200789fbedf";
hash = "sha256-Uof72o6HG4pYj1KZ8KgCwQA+0m778ezZxmt3TohNZcY=";
fetchSubmodules = true;
};
postPatch = ''
# Remove git command from version query
sed -i '2d' meson.build
'';
nativeBuildInputs = [
blueprint-compiler
desktop-file-utils
gobject-introspection
meson
ninja
nodejs
pkg-config
prefetch-yarn-deps
wrapGAppsHook4
yarn
prefetch-yarn-deps
];
buildInputs = [
gjs
glib-networking
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-rs
gtk4
libadwaita
libsecret
libsoup_3
];
yarnOfflineCache = fetchYarnDeps {
yarnLock = src + "/yarn.lock";
hash = "sha256-FvPEbYIydgfyKKsf2jnXUbPEhIboPi3wR7BWzEuo72Q=";
hash = "sha256-/NkLfBmQGvgufF9ajgs7DQsBkWUUK4Bslhy7VmCBrGg=";
};
preConfigure = ''

View file

@ -2750,7 +2750,7 @@ let
# Please update the corresponding binary (typst-lsp) when updating
# this extension.
version = "0.12.0";
sha256 = "sha256-5DwpgDstKJXo9jEWORXKr3B6Hnd/YOktiaJL2RFWCSA=";
sha256 = "sha256-9v6zJyeUBj0TOpK2otLqZ0ksjmzExKTJYRF+9akvuuo=";
};
nativeBuildInputs = [ jq moreutils ];

View file

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "kickoff";
version = "0.7.1";
version = "0.7.2";
src = fetchFromGitHub {
owner = "j0ru";
repo = pname;
rev = "v${version}";
hash = "sha256-9QupKpB3T/6gdGSeLjRknjPdgOzbfzEeJreIamWwpSw=";
hash = "sha256-WUDbb/GLABhqE93O6bm19Y+r0kSMEJrvduw68Igub44=";
};
cargoHash = "sha256-a7FZpMtgTdqpLV/OfgN4W4GpTJlkfEtPO7F//FmVA/s=";
cargoHash = "sha256-nhUC9PSKAbNEK5e4WRx3dgYI0rJP5XSWcW6M5E0Ihv4=";
libPath = lib.makeLibraryPath [
wayland

View file

@ -41,7 +41,7 @@ let
homepage = "https://www.nomadproject.io/";
description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
license = licenses.mpl20;
maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes amaxine techknowlogick ];
maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes amaxine techknowlogick cottand ];
};
} // attrs');
in
@ -75,9 +75,9 @@ rec {
nomad_1_6 = generic {
buildGoModule = buildGo121Module;
version = "1.6.3";
sha256 = "sha256-5UWGriDy15PX3+9UppcUsEwih/e9COLVBis3fn+24L0=";
vendorHash = "sha256-gXoheW6Ww9Iu4utKNHweP2blzhWid+Q9Tp0ZgCmBAVg=";
version = "1.6.4";
sha256 = "sha256-tlbuxKCm7he1Tij4BYKGvv7a6LKiyWgs2PvbcWg/7A0=";
vendorHash = "sha256-PrQit4egSq/pkILb6M7A3gsiQvLPABhyLXWgv8GFz/Y=";
passthru.tests.nomad = nixosTests.nomad;
preCheck = ''
export PATH="$PATH:$NIX_BUILD_TOP/go/bin"

View file

@ -2,11 +2,11 @@
let
pname = "rambox";
version = "2.2.2";
version = "2.2.3";
src = fetchurl {
url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
sha256 = "sha256-P6ia7IU6OQJQXANy1snIZEqarKUcRmgbkP6L+UMwi+8=";
sha256 = "sha256-V1Sxfgn3fcqW7t7oa1pfnrPYAqHdCLrWUbplE/I789A=";
};
desktopItem = (makeDesktopItem {

View file

@ -68,7 +68,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.gpl2;
platforms = with lib.platforms; linux ++ darwin;
maintainers = [ lib.maintainers.cge ];
# never built on aarch64-darwin since first introduction in nixpkgs
broken = stdenv.isDarwin && stdenv.isAarch64;
broken = true; # Build error: h5py-3.9.0 not supported for interpreter python2.7
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "isabelle-linter";
version = "1.2.1";
version = "2023-1.0.0";
src = fetchFromGitHub {
owner = "isabelle-prover";
repo = "isabelle-linter";
rev = "Isabelle2022-v${version}";
sha256 = "sha256-qlojNCsm3/49TtAVq6J31BbQipdIoDcn71pBotZyquY=";
rev = "Isabelle2023-v1.0.0";
sha256 = "sha256-q9+qN94NaTzvhbcNQj7yH/VVfs1QgCH8OU8HW+5+s9U=";
};
nativeBuildInputs = [ isabelle ];

View file

@ -46,7 +46,7 @@ let
};
in stdenv.mkDerivation (finalAttrs: rec {
pname = "isabelle";
version = "2022";
version = "2023";
dirname = "Isabelle${version}";
@ -56,18 +56,18 @@ in stdenv.mkDerivation (finalAttrs: rec {
fetchurl
{
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
sha256 = "0b84rx9b7b5y8m1sg7xdp17j6yngd2dkx6v5bkd8h7ly102lai18";
sha256 = "sha256-0VSW2SrHNI3/k4cCCZ724ruXaq7W1NCPsLrXFZ9l1/Q=";
}
else if stdenv.hostPlatform.isx86
then
fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
sha256 = "1ih4gykkp1an43qdgc5xzyvf30fhs0dah3y0a5ksbmvmjsfnxyp7";
sha256 = "sha256-Go4ZCsDz5gJ7uWG5VLrNJOddMPX18G99FAadpX53Rqg=";
}
else
fetchurl {
url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux_arm.tar.gz";
hash = "sha256-qI/BR/KZwLjnkO5q/yYeW4lN4xyUe78VOM2INC/Z/io=";
hash = "sha256-Tzxxs0gKw6vymbaXIzH8tK5VgUrpOIp9vcWQ/zxnRCc=";
};
nativeBuildInputs = [ java ];
@ -134,8 +134,7 @@ in stdenv.mkDerivation (finalAttrs: rec {
substituteInPlace src/Tools/Setup/src/Environment.java \
--replace 'cmd.add("/usr/bin/env");' "" \
--replace 'cmd.add("bash");' "cmd.add(\"$SHELL\");" \
--replace 'private static read_file(path: Path): String =' 'private static String read_file(Path path) throws IOException'
--replace 'cmd.add("bash");' "cmd.add(\"$SHELL\");"
substituteInPlace src/Pure/General/sha1.ML \
--replace '"$ML_HOME/" ^ (if ML_System.platform_is_windows then "sha1.dll" else "libsha1.so")' '"${sha1}/lib/libsha1.so"'

View file

@ -2,13 +2,13 @@
with haskellPackages; mkDerivation {
pname = "Naproche-SAD";
version = "2022-10-24";
version = "unstable-2023-07-11";
src = fetchFromGitHub {
owner = "naproche";
repo = "naproche";
rev = "c8c4ca2d5fdb92bf17e0e54c99bd2a9691255d80";
sha256 = "0xvh6kkl5k5ygp2nrbq3k0snvzczbmcp1yrwdkah3fzhf9i3yykx";
rev = "4c399d49a86987369bec6e1ac5ae3739cd6db0a8";
sha256 = "sha256-Ji6yxbDEcwuYAzIZwK5sHNltK1WBFBfpyoEtoID/U4k=";
};
isExecutable = true;

View file

@ -1,12 +1,12 @@
{ lib, fetchurl, fetchpatch, stdenv, zlib, ncurses, libiconv }:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "fnc";
version = "0.15";
version = "0.16";
src = fetchurl {
url = "https://fnc.bsdbox.org/tarball/${version}/fnc-${version}.tar.gz";
sha256 = "sha256-8up844ekIOMcPlfB2DJzR/GgJY9s/sBeYpG+YtdauvU=";
url = "https://fnc.bsdbox.org/tarball/${finalAttrs.version}/fnc-${finalAttrs.version}.tar.gz";
hash = "sha256-6I6wtSMHaKdnlUK4pYiaybJeODGu2P+smYW8lQDIWGM=";
};
buildInputs = [ libiconv ncurses zlib ];
@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
# Needed with GCC 12
"-Wno-error=maybe-uninitialized"
] ++ lib.optionals stdenv.isDarwin [
# error: 'strtonum' is only available on macOS 11.0 or newer
"-Wno-error=unguarded-availability-new"
]);
preInstall = ''
@ -35,4 +38,4 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ abbe ];
mainProgram = "fnc";
};
}
})

View file

@ -9,11 +9,11 @@
python3.pkgs.buildPythonApplication rec {
pname = "scriv";
version = "1.4.0";
version = "1.5.0";
src = fetchPypi {
inherit pname version;
hash = "sha256-vdGtdJGkaUzH2JoxuFsfM57OodlxbEHuLl81giKUn6U=";
hash = "sha256-+OTWFDnHCF2bxQU8f7DfULYG1cA9tOZCsNRPdKobns8=";
};
propagatedBuildInputs = with python3.pkgs; [
@ -21,6 +21,7 @@ python3.pkgs.buildPythonApplication rec {
click
click-log
jinja2
markdown-it-py
requests
] ++ lib.optionals (python3.pythonOlder "3.11") [
tomli

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "podman-tui";
version = "0.13.0";
version = "0.14.0";
src = fetchFromGitHub {
owner = "containers";
repo = "podman-tui";
rev = "v${version}";
hash = "sha256-d2T2A4LsZQ09w7ZsVceqCGaO8wijRGGsk3hLhMykM9U=";
hash = "sha256-RSQcpodippp4B4FM0yr+YFseoofas1M6xBqqtFD1BB0=";
};
vendorHash = null;

View file

@ -0,0 +1,65 @@
{ lib
, fetchFromGitHub
, python3Packages
, qt6
, fetchpatch
}:
python3Packages.buildPythonApplication rec {
pname = "zapzap";
version = "4.5.5.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "zapzap-linux";
repo = "zapzap";
rev = version;
hash = "sha256-8IeFGTI+5kbeFGqH5DpHCY8pqzGhE48hPCEIKIe7jAM=";
};
patches = [
# fixes that the tray icon was not installed
(fetchpatch {
url = "https://github.com/zapzap-linux/zapzap/pull/25/commits/4107b019555492e2c2692dd4c40553503047e6a8.patch";
hash = "sha256-NQPGPXYFhVwsPXopEELG1n/f8yUj/74OFE1hTyt93Ng=";
})
];
nativeBuildInputs = with python3Packages; [
setuptools
qt6.wrapQtAppsHook
];
buildInputs = [
qt6.qtwayland
qt6.qtsvg
];
preBuild = ''
export HOME=$(mktemp -d)
'';
propagatedBuildInputs = with python3Packages; [
dbus-python
pyqt6
pyqt6-webengine
pyqt6-sip
];
postInstall = ''
install -Dm555 share/applications/com.rtosta.zapzap.desktop -t $out/share/applications/
install -Dm555 share/icons/com.rtosta.zapzap.svg -t $out/share/icons/hicolor/scalable/
'';
# has no tests
doCheck = false;
meta = with lib; {
description = "WhatsApp desktop application for Linux";
homepage = "https://zapzap-linux.github.io/";
mainProgram = "zapzap";
license = licenses.gpl3Only;
changelog = "https://github.com/zapzap-linux/zapzap/releases/tag/${version}";
maintainers = [ maintainers.eymeric ];
};
}

View file

@ -0,0 +1,57 @@
{ stdenvNoCC
, lib
, fetchFromGitLab
, gitUpdater
, gtk3
, hicolor-icon-theme
, ubuntu-themes
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "suru-icon-theme";
version = "20.05.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/suru-icon-theme";
rev = finalAttrs.version;
hash = "sha256-jJ6J+SjSABZCgnCF9cIFBpeSXX2LMnV+nPLPpoXQv30=";
};
strictDeps = true;
nativeBuildInputs = [
gtk3 # gtk-update-icon-cache
hicolor-icon-theme # theme setup hook
];
propagatedBuildInputs = [
ubuntu-themes
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
cp -r suru $out/share/icons/
gtk-update-icon-cache $out/share/icons/suru
runHook postInstall
'';
dontDropIconThemeCache = true;
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Suru Icon Theme for Lomiri Operating Environment";
homepage = "https://gitlab.com/ubports/development/core/suru-icon-theme";
license = licenses.cc-by-sa-30;
maintainers = teams.lomiri.members;
platforms = platforms.all;
};
})

View file

@ -9,6 +9,7 @@ let
in {
#### Data
lomiri-schemas = callPackage ./data/lomiri-schemas { };
suru-icon-theme = callPackage ./data/suru-icon-theme { };
#### Development tools / libraries
cmake-extras = callPackage ./development/cmake-extras { };
@ -21,6 +22,7 @@ let
#### QML / QML-related
lomiri-settings-components = callPackage ./qml/lomiri-settings-components { };
lomiri-ui-toolkit = callPackage ./qml/lomiri-ui-toolkit { };
#### Services
biometryd = callPackage ./services/biometryd { };

View file

@ -0,0 +1,158 @@
From 243477a2bd6e315c77ebaf5b2ed4a9c9c4e1e22a Mon Sep 17 00:00:00 2001
From: OPNA2608 <christoph.neidahl@gmail.com>
Date: Sat, 25 Nov 2023 10:49:32 +0100
Subject: [PATCH] Mark problematic tests
- ShapeMaterial requires a Qt OpenGL context, doesn't work in our sandbox
- SignalSpy on QML shaders compilers don't see changes
- Scaling value from environment not picked up properly since Qt 5.15.11
https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/issues/34
- TypeError on some properties with Qt 5.15
https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/issues/9
---
tests/checkresults.sh | 89 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 83 insertions(+), 6 deletions(-)
diff --git a/tests/checkresults.sh b/tests/checkresults.sh
index fc498985e..730b9d406 100755
--- a/tests/checkresults.sh
+++ b/tests/checkresults.sh
@@ -22,6 +22,7 @@ ERRORS_PATTERN='<failure'
FAILURES=0
FATAL_WARNINGS=0
+EXCEPTED_FAILURES=0
EXCEPTED=0
for _XML in $*; do
_TESTNAME=$(basename $_XML | sed -r 's@(.+)\.xml@\1@' -)
@@ -31,7 +32,72 @@ for _XML in $*; do
exit 1
fi
- EXCEPTIONS='components_benchmark \
+ ERROR_EXCEPTIONS='\
+ tst_actionbar.13.qml \
+ tst_actionlist.13.qml \
+ tst_adaptivepagelayout.13.qml \
+ tst_adaptivepagelayout_configuration.13.qml \
+ tst_combobutton.11.qml \
+ tst_combobutton.13.qml \
+ tst_contextual_actions.13.qml \
+ tst_focus.13.qml \
+ tst_header.13.qml \
+ tst_hide_chrome.11.qml \
+ tst_listitem.12.qml \
+ tst_listitem.13.qml \
+ tst_listitem_actions_breaks_selectmode.12.qml \
+ tst_listitem_extras.13.qml \
+ tst_listitem_focus.13.qml \
+ tst_listitem_horizontal_navigation.13.qml \
+ tst_listitem_selectmode.12.qml \
+ tst_listitem_selectmode.13.qml \
+ tst_listitems_itemselector.11.qml \
+ tst_listitems_standard.11.qml \
+ tst_listitems_standard.13.qml \
+ tst_lomirilistview.11.qml \
+ tst_lomiritestcase.qml \
+ tst_multicolumnheader.13.qml \
+ tst_optionselector.11.qml \
+ tst_optionselector.13.qml \
+ tst_page_with_header.13.qml \
+ tst_pagehead_back_action.13.qml \
+ tst_pagehead_contents_width.13.qml \
+ tst_pagehead_sections.13.qml \
+ tst_pagehead_visible.13.qml \
+ tst_pageheader.13.qml \
+ tst_pagestack.13.qml \
+ tst_pagestack.DEPRECATED_APPHEADER_TABS.13.qml \
+ tst_picker.11.qml \
+ tst_picker.13.qml \
+ tst_popover.12.qml \
+ tst_popover.13.qml \
+ tst_popups_dialog.13.qml \
+ tst_popups_pagestack.13.qml \
+ tst_pulltorefresh_pagestack_topmargin.13.qml \
+ tst_slider.11.qml \
+ tst_slider.13.qml \
+ tst_switch_bug1510919.13.qml \
+ tst_tabs.11.qml \
+ tst_tabs.13.qml \
+ tst_tabs.DEPRECATED_TOOLBAR.11.qml \
+ tst_textarea.11.qml \
+ tst_textarea_in_flickable.11.qml \
+ tst_textfield.11.qml \
+ tst_textinput_common.12.qml \
+ tst_textinput_common.13.qml \
+ tst_toggles.13.qml \
+ inversemousearea \
+ layouts \
+ recreateview \
+ subtheming \
+ swipearea \
+ tst_icon.11.qml \
+ tst_icon.13.qml \
+ dpr1 \
+ '
+
+ EXCEPTIONS='\
+ components_benchmark \
tst_tabbar.11.qml \
tst_datepicker.bug1567840.SEGFAULT.12.qml \
tst_datepicker.bug1567840.SEGFAULT.13.qml \
@@ -49,22 +115,28 @@ for _XML in $*; do
inversemousearea \
tst_listitem_focus_bug.13.qml \
tst_shortcuts.13.qml \
+ tst_pagestack.DEPRECATED_TOOLBAR.11.qml \
'
WARNINGS=$(grep -c -P "$WARNINGS_PATTERN" $_XML)
ERRORS=$(grep -c -P "$ERRORS_PATTERN" $_XML)
if [ $ERRORS -ne 0 ]; then
- FAILURES_FILES="${FAILURES_FILES} ${_TESTNAME}\n"
- ((FAILURES+=$ERRORS))
+ if [[ $ERROR_EXCEPTIONS == *" $_TESTNAME "* ]]; then
+ EXCEPTED_FAILURES_FILES="${EXCEPTED_FAILURES_FILES} ${_TESTNAME}\n"
+ ((EXCEPTED_FAILURES+=$ERRORS))
+ else
+ FAILURES_FILES="${FAILURES_FILES} ${_TESTNAME}\n"
+ ((FAILURES+=$ERRORS))
+ fi
elif [ $WARNINGS -ne 0 ]; then
- if [[ $EXCEPTIONS == *$_TESTNAME* ]]; then
+ if [[ $EXCEPTIONS == *" $_TESTNAME "* ]]; then
EXCEPTED_FILES="${EXCEPTED_FILES} ${_TESTNAME}\n"
((EXCEPTED+=$WARNINGS))
else
FATAL_WARNINGS_FILES="${FATAL_WARNINGS_FILES} ${_TESTNAME}\n"
((FATAL_WARNINGS+=$WARNINGS))
fi
- elif [[ $EXCEPTIONS == *$_TESTNAME* ]]; then
+ elif [[ $ERROR_EXCEPTIONS == *" $_TESTNAME "* || $EXCEPTIONS == *" $_TESTNAME "* ]]; then
WOOT_FILES="${WOOT_FILES} ${_TESTNAME}\n"
fi
done
@@ -82,6 +154,11 @@ if [ -n "$FATAL_WARNINGS_FILES" ]; then
echo -e "$FATAL_WARNINGS_FILES"
fi
+if [ -n "$EXCEPTED_FAILURES_FILES" ]; then
+ echo The following tests issued $EXCEPTED_FAILURES expected failures:
+ echo -e "$EXCEPTED_FAILURES_FILES"
+fi
+
if [ -n "$EXCEPTED_FILES" ]; then
echo The following tests issued $EXCEPTED expected warnings:
echo -e "$EXCEPTED_FILES"
@@ -89,7 +166,7 @@ fi
if [ -n "$WOOT_FILES" ]; then
echo Woot! Known problematic tests passed!
- echo Consider removing these from EXCEPTIONS in ${0#$(pwd)/}!
+ echo Consider removing these from ERROR_EXCEPTIONS/EXCEPTIONS in ${0#$(pwd)/}!
echo -e "$WOOT_FILES"
fi
--
2.40.1

View file

@ -0,0 +1,254 @@
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, gitUpdater
, testers
, dbus-test-runner
, dpkg
, gdb
, glib
, lttng-ust
, perl
, pkg-config
, python3
, qmake
, qtbase
, qtdeclarative
, qtfeedback
, qtgraphicaleffects
, qtpim
, qtquickcontrols2
, qtsvg
, qtsystems
, suru-icon-theme
, wrapQtAppsHook
, xvfb-run
}:
let
listToQtVar = suffix: lib.makeSearchPathOutput "bin" suffix;
qtPluginPaths = listToQtVar qtbase.qtPluginPrefix [ qtbase qtpim qtsvg ];
qtQmlPaths = listToQtVar qtbase.qtQmlPrefix [ qtdeclarative qtfeedback qtgraphicaleffects ];
in
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-ui-toolkit";
version = "1.3.5011";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lomiri-ui-toolkit";
rev = finalAttrs.version;
hash = "sha256-z/EEmC9LjQtBx5MRDLeImxpRrzH4w6v6o+NmqX+L4dw=";
};
outputs = [ "out" "dev" ];
patches = [
# Upstreaming effort for these two patches: https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/merge_requests/44
(fetchpatch {
name = "0001-lomiri-ui-toolkit-fix-tests-on-qt-5.15.4.patch";
url = "https://salsa.debian.org/ubports-team/lomiri-ui-toolkit/-/raw/1ad650c326ba9706d549d1dbe8335c70f6b382c8/debian/patches/0001-fix-tests-on-qt-5.15.4.patch";
hash = "sha256-Y5HVvulR2760DBzlmYkImbJ/qIeqMISqPpUppbv8xJA=";
})
(fetchpatch {
name = "0002-lomiri-ui-toolkit-fix-tests-on-qt-5.15.5.patch";
url = "https://salsa.debian.org/ubports-team/lomiri-ui-toolkit/-/raw/03bcafadd3e4fda34bcb5af23454f4b202cf5517/debian/patches/0002-fix-tests-on-qt-5.15.5.patch";
hash = "sha256-x8Zk7+VBSlM16a3V1yxJqIB63796H0lsS+F4dvR/z80=";
})
# Small fixes to statesaver & tst_imageprovider.11.qml tests
# Remove when version > 1.3.5011
(fetchpatch {
name = "0003-lomiri-ui-toolkit-tests-Minor-fixes.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/commit/a8324d670b813a48ac7d48aa0bc013773047a01d.patch";
hash = "sha256-W6q3LuQqWmUVSBzORcJsTPoLfbWwytABMDR6JITHrDI=";
})
# Fix Qt 5.15.11 compatibility
# Remove when version > 1.3.5011
(fetchpatch {
name = "0004-lomiri-ui-toolkit-Fix-compilation-with-Qt-5.15.11.patch";
url = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/commit/4f999077dc6bc5591bdfede64fd21cb3acdcaac1.patch";
hash = "sha256-5VCQFOykxgspNBxH94XYuBpdHsH9a3+8FwV6xQE55Xc=";
})
./2001-Mark-problematic-tests.patch
];
postPatch = ''
patchShebangs documentation/docs.sh tests/
substituteInPlace tests/tests.pro \
--replace "\''$\''$PYTHONDIR" "$dev/${python3.sitePackages}"
for subproject in po app-launch-profiler lomiri-ui-toolkit-launcher; do
substituteInPlace $subproject/$subproject.pro \
--replace "\''$\''$[QT_INSTALL_PREFIX]" "$out" \
--replace "\''$\''$[QT_INSTALL_LIBS]" "$out/lib"
done
# Install apicheck tool into bin
substituteInPlace apicheck/apicheck.pro \
--replace "\''$\''$[QT_INSTALL_LIBS]/lomiri-ui-toolkit" "$out/bin"
# Causes redefinition error with our own fortify hardening
sed -i '/DEFINES += _FORTIFY_SOURCE/d' features/lomiri_common.prf
# Reverse dependencies (and their reverse dependencies too) access the function patched here to register their gettext catalogues,
# so hardcoding any prefix here will make only catalogues in that prefix work. APP_DIR envvar will override this, but with domains from multiple derivations being
# used in a single application (lomiri-system-settings), that's of not much use either.
# https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/blob/dcb3a523c56a400e5c3c163c2836cafca168767e/src/LomiriToolkit/i18n.cpp#L101-129
#
# This could be solved with a reference to the prefix of whoever requests the domain, but the call happens via some automatic Qt / QML callback magic,
# I'm not sure what the best way of injecting that there would be.
# https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/blob/dcb3a523c56a400e5c3c163c2836cafca168767e/src/LomiriToolkit/i18n_p.h#L34
#
# Using /run/current-system/sw/share/locale instead of /usr/share/locale isn't a great
# solution, but at least it should get us working localisations
substituteInPlace src/LomiriToolkit/i18n.cpp \
--replace "/usr" "/run/current-system/sw"
# The code here overrides the regular QML import variables so the just-built modules are found & used in the tests
# But we need their QML dependencies too, so put them back in there
substituteInPlace export_qml_dir.sh \
--replace '_IMPORT_PATH=$BUILD_DIR/qml' '_IMPORT_PATH=$BUILD_DIR/qml:${qtQmlPaths}'
# These tests try to load Suru theme icons, but override XDG_DATA_DIRS / use full paths to load them
substituteInPlace \
tests/unit/visual/tst_visual.cpp \
tests/unit/visual/tst_icon.{11,13}.qml \
tests/unit/visual/tst_imageprovider.11.qml \
--replace '/usr/share' '${suru-icon-theme}/share'
'';
# With strictDeps, QMake only picks up Qt dependencies from nativeBuildInputs
strictDeps = false;
nativeBuildInputs = [
perl
pkg-config
python3
qmake
wrapQtAppsHook
];
buildInputs = [
glib
lttng-ust
qtbase
qtdeclarative
qtpim
qtquickcontrols2
qtsystems
];
propagatedBuildInputs = [
qtfeedback
qtgraphicaleffects
qtsvg
];
nativeCheckInputs = [
dbus-test-runner
dpkg # `dpkg-architecture -qDEB_HOST_ARCH` response decides how tests are run
gdb
xvfb-run
];
qmakeFlags = [
# docs require Qt5's qdoc, which we don't have before https://github.com/NixOS/nixpkgs/pull/245379
"CONFIG+=no_docs"
# Ubuntu UITK compatibility, for older / not-yet-migrated applications
"CONFIG+=ubuntu-uitk-compat"
"QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
# Explicitly not parallel-safe, large parts are always run in series and at least qquick_image_extension fails with parallelism
enableParallelChecking = false;
checkPhase = ''
runHook preCheck
export HOME=$PWD
# XDG_RUNTIME_DIR with wrong permissions causes warnings that are interpreted as errors in the test suite
export XDG_RUNTIME_DIR=$PWD/runtime-dir
mkdir -p $XDG_RUNTIME_DIR
chmod -R 700 $XDG_RUNTIME_DIR
# Tests need some Qt plugins
# Many tests try to load Suru theme icons via XDG_DATA_DIRS
export QT_PLUGIN_PATH=${qtPluginPaths}
export XDG_DATA_DIRS=${suru-icon-theme}/share
tests/xvfb.sh make check ''${enableParallelChecking:+-j''${NIX_BUILD_CORES}}
runHook postCheck
'';
preInstall = ''
# wrapper script calls qmlplugindump, crashes due to lack of minimal platform plugin
# Could not find the Qt platform plugin "minimal" in ""
# Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
export QT_PLUGIN_PATH=${qtPluginPaths}
# Qt-generated wrapper script lacks QML paths to dependencies
for qmlModule in Components PerformanceMetrics Test; do
substituteInPlace src/imports/$qmlModule/wrapper.sh \
--replace 'QML2_IMPORT_PATH=' 'QML2_IMPORT_PATH=${qtQmlPaths}:'
done
'';
postInstall = ''
# Code loads Qt's qt_module.prf, which force-overrides all QMAKE_PKGCONFIG_* variables except PREFIX for QMake-generated pkg-config files
for pcFile in Lomiri{Gestures,Metrics,Toolkit}.pc; do
substituteInPlace $out/lib/pkgconfig/$pcFile \
--replace "${lib.getLib qtbase}/lib" "\''${prefix}/lib" \
--replace "${lib.getDev qtbase}/include" "\''${prefix}/include"
done
# These are all dev-related tools, but declaring a bin output also moves around the QML modules
moveToOutput "bin" "$dev"
'';
postFixup = ''
for qtBin in $dev/bin/{apicheck,lomiri-ui-toolkit-launcher}; do
wrapQtApp $qtBin
done
'';
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater { };
};
meta = with lib; {
description = "QML components to ease the creation of beautiful applications in QML";
longDescription = ''
This project consists of a set of QML components to ease the creation of beautiful applications in QML for Lomiri.
QML alone lacks built-in components for basic widgets like Button, Slider, Scrollbar, etc, meaning a developer has
to build them from scratch.
This toolkit aims to stop this duplication of work, supplying beautiful components ready-made and with a clear and
consistent API.
These components are fully themeable so the look and feel can be easily customized. Resolution independence
technology is built in so UIs are scaled to best suit the display.
Other features:
- localisation through gettext
'';
homepage = "https://gitlab.com/ubports/development/core/lomiri-ui-toolkit";
license = with licenses; [ gpl3Only cc-by-sa-30 ];
maintainers = teams.lomiri.members;
platforms = platforms.linux;
pkgConfigModules = [
"LomiriGestures"
"LomiriMetrics"
"LomiriToolkit"
];
};
})

View file

@ -88,7 +88,7 @@ in stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config bison flex ];
buildInputs = [
propagatedBuildInputs = [
tcl
readline
libffi

View file

@ -7,13 +7,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "zig-shell-completions";
version = "unstable-2023-08-17";
version = "unstable-2023-11-18";
src = fetchFromGitHub {
owner = "ziglang";
repo = "shell-completions";
rev = "de9f83166d792cce6a0524e63d2755952dd9872c";
hash = "sha256-92n41/AWbHYkXiBtbWw+hXZKJCE7KW9igd8cLSBQfHo=";
rev = "31d3ad12890371bf467ef7143f5c2f31cfa7b7c1";
hash = "sha256-ID/K0vdg7BTKGgozISk/X4RBxCVfhSkVD6GSZUoP9Ls=";
};
nativeBuildInputs = [ installShellFiles ];

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake }:
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
stdenv.mkDerivation rec {
pname = "bpp-core";
@ -10,6 +10,13 @@ stdenv.mkDerivation rec {
sha256 = "0ma2cl677l7s0n5sffh66cy9lxp5wycm50f121g8rx85p95vkgwv";
};
patches = [
(fetchpatch {
url = "https://github.com/BioPP/bpp-core/commit/d450e8033b06e80dff9c2236fb7ce1f3ced5dcbb.patch";
hash = "sha256-9t68mrK7KNs5BxljKMaA+XskCcKDNv8DNCVUYunoNdw=";
})
];
nativeBuildInputs = [ cmake ];
postFixup = ''

View file

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "aiocomelit";
version = "0.6.0";
version = "0.6.2";
format = "pyproject";
disabled = pythonOlder "3.10";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "chemelli74";
repo = "aiocomelit";
rev = "refs/tags/v${version}";
hash = "sha256-bs+iSe4vu0ej4SQww6mvQqboVKfQrkd9OirBLGbU3gs=";
hash = "sha256-Pqds4RwDxaUyZUIGTK0JOjsKbyB7j3uOfunbLXsKANk=";
};
postPatch = ''

View file

@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "aioesphomeapi";
version = "18.5.2";
version = "19.2.1";
pyproject = true;
disabled = pythonOlder "3.9";
@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "esphome";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-kj4FHsNsGsMxK+EI1jgqBfvldkyAoBkCTGT1yiZMmzY=";
hash = "sha256-WSWGO0kI1m6oaImUYZ6m5WKJ+xPs/rtn5wVq1bDr+bE=";
};
nativeBuildInputs = [

View file

@ -60,6 +60,17 @@ buildPythonPackage rec {
"tests/test_ip_pairing.py"
];
disabledTests = [
# AttributeError: 'MockedAsyncServiceInfo' object has no attribute '_set_properties'
"test_discover_find_one_unpaired"
"test_find_device_id_case_lower"
"test_find_device_id_case_upper"
"test_discover_missing_csharp"
"test_discover_csharp_case"
"test_discover_device_id_case_lower"
"test_discover_device_id_case_upper"
];
pythonImportsCheck = [
"aiohomekit"
];

View file

@ -0,0 +1,39 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, aiohttp
, zlib-ng
}:
buildPythonPackage rec {
pname = "aiohttp-zlib-ng";
version = "0.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "bdraco";
repo = "aiohttp-zlib-ng";
rev = "v${version}";
hash = "sha256-dTNwt4eX6ZQ8ySK2/9ziVbc3KFg2aL/EsiBWaJRC4x8=";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
zlib-ng
];
pythonImportsCheck = [ "aiohttp_zlib_ng" ];
meta = with lib; {
description = "Enable zlib_ng on aiohttp";
homepage = "https://github.com/bdraco/aiohttp-zlib-ng";
changelog = "https://github.com/bdraco/aiohttp-zlib-ng/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ ];
};
}

View file

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "aiowithings";
version = "1.0.3";
version = "2.0.0";
pyproject = true;
disabled = pythonOlder "3.11";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "joostlek";
repo = "python-withings";
rev = "refs/tags/v${version}";
hash = "sha256-n76bpFIWUfztTDEg32uopxukAtvFT3tdbtqWOLghi4I=";
hash = "sha256-wVLoM1Lq1fchyjOOmn+6wVzEAra8x2uK6qaiocVqzmw=";
};
postPatch = ''

View file

@ -3,13 +3,14 @@
, fetchFromGitHub
, poetry-core
, aiohttp
, aiohttp-retry
, pythonOlder
, pyjwt
}:
buildPythonPackage rec {
pname = "apple-weatherkit";
version = "1.0.4";
version = "1.1.2";
format = "pyproject";
disabled = pythonOlder "3.11";
@ -18,7 +19,7 @@ buildPythonPackage rec {
owner = "tjhorner";
repo = "python-weatherkit";
rev = "refs/tags/v${version}";
hash = "sha256-G/0hyK2rjdSSnVnvAUGyDvsfNMHVgAD7NHfNFmdBCNA=";
hash = "sha256-w3KinicaF01I6fIidI7XYHpB8eq52RTUw/BMLrx6Grk=";
};
nativeBuildInputs = [
@ -27,6 +28,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
aiohttp-retry
pyjwt
] ++ pyjwt.optional-dependencies.crypto;

View file

@ -12,14 +12,14 @@
buildPythonPackage rec {
pname = "bandit";
version = "1.7.5";
version = "1.7.6";
format = "setuptools";
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-vfxzm6oDuIDC0V0EMbMcZY/8NI6Qf+GX5U4Did1Z4R4=";
hash = "sha256-cs57yXQTdNlvsvHJqJYIKYhfEkP/3nQ95woZzuNT6PM=";
};
nativeBuildInputs = [

View file

@ -9,14 +9,15 @@
, pytest-timeout
, pytestCheckHook
, pythonOlder
, setuptools
, voluptuous
, zigpy
}:
buildPythonPackage rec {
pname = "bellows";
version = "0.36.8";
format = "setuptools";
version = "0.37.1";
pyproject = true;
disabled = pythonOlder "3.8";
@ -24,9 +25,19 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "bellows";
rev = "refs/tags/${version}";
hash = "sha256-+p3As+fi6mw9i5q2klFTM9QQ2JoQarwrphc6tB6C94M=";
hash = "sha256-JkaCM9XOdGZE9/C2BUV3g9QL5+k/HlVYd4WsAMS2mgk=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace '"setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
click
click-log

View file

@ -11,14 +11,15 @@
, pytestCheckHook
, python
, respx
, setuptools
, time-machine
, tzdata
}:
buildPythonPackage rec {
pname = "bimmer-connected";
version = "0.14.3";
format = "setuptools";
version = "0.14.6";
pyproject = true;
disabled = pythonOlder "3.6";
@ -26,22 +27,28 @@ buildPythonPackage rec {
owner = "bimmerconnected";
repo = "bimmer_connected";
rev = "refs/tags/${version}";
hash = "sha256-I/MKjdEu69uis5f/Xuk4H6ynC71IQmfASLr07PdEBXE=";
hash = "sha256-/FL9czp5x/BcKSXXzT19kgGiPFd61BpU7HLtgyyHlIs=";
};
nativeBuildInputs = [
pbr
setuptools
];
PBR_VERSION = version;
propagatedBuildInputs = [
httpx
pillow
pycryptodome
pyjwt
];
passthru.optional-dependencies = {
china = [
pillow
];
};
postInstall = ''
cp -R bimmer_connected/tests/responses $out/${python.sitePackages}/bimmer_connected/tests/
'';
@ -51,7 +58,7 @@ buildPythonPackage rec {
pytestCheckHook
respx
time-machine
];
] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
preCheck = ''
export TZDIR=${tzdata}/${python.sitePackages}/tzdata/zoneinfo

View file

@ -0,0 +1,153 @@
{ lib
, stdenv
, buildPythonPackage
, fetchFromGitHub
, pythonOlder
, writeText
, setuptools
, wheel
, filelock
, huggingface-hub
, importlib-metadata
, numpy
, pillow
, regex
, requests
, safetensors
# optional dependencies
, accelerate
, datasets
, flax
, jax
, jaxlib
, jinja2
, protobuf
, tensorboard
, torch
# test dependencies
, parameterized
, pytest-timeout
, pytest-xdist
, pytestCheckHook
, requests-mock
, ruff
, scipy
, sentencepiece
, torchsde
, transformers
}:
buildPythonPackage rec {
pname = "diffusers";
version = "0.24.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "huggingface";
repo = "diffusers";
rev = "refs/tags/v${version}";
hash = "sha256-ccWF8hQzPhFY/kqRum2tbanI+cQiT25MmvPZN+hGadc=";
};
nativeBuildInputs = [
setuptools
wheel
];
propagatedBuildInputs = [
filelock
huggingface-hub
importlib-metadata
numpy
pillow
regex
requests
safetensors
];
passthru.optional-dependencies = {
flax = [
flax
jax
jaxlib
];
torch = [
accelerate
torch
];
training = [
accelerate
datasets
jinja2
protobuf
tensorboard
];
};
pythonImportsCheck = [
"diffusers"
];
# tests crash due to torch segmentation fault
doCheck = !(stdenv.isLinux && stdenv.isAarch64);
nativeCheckInputs = [
parameterized
pytest-timeout
pytest-xdist
pytestCheckHook
requests-mock
ruff
scipy
sentencepiece
torchsde
transformers
] ++ passthru.optional-dependencies.torch;
preCheck = let
# This pytest hook mocks and catches attempts at accessing the network
# tests that try to access the network will raise, get caught, be marked as skipped and tagged as xfailed.
# cf. python3Packages.shap
conftestSkipNetworkErrors = writeText "conftest.py" ''
from _pytest.runner import pytest_runtest_makereport as orig_pytest_runtest_makereport
import urllib3
class NetworkAccessDeniedError(RuntimeError): pass
def deny_network_access(*a, **kw):
raise NetworkAccessDeniedError
urllib3.connection.HTTPSConnection._new_conn = deny_network_access
def pytest_runtest_makereport(item, call):
tr = orig_pytest_runtest_makereport(item, call)
if call.excinfo is not None and call.excinfo.type is NetworkAccessDeniedError:
tr.outcome = 'skipped'
tr.wasxfail = "reason: Requires network access."
return tr
'';
in ''
export HOME=$TMPDIR
cat ${conftestSkipNetworkErrors} >> tests/conftest.py
'';
pytestFlagsArray = [
"tests/"
];
disabledTests = [
# depends on current working directory
"test_deprecate_stacklevel"
# fails due to precision of floating point numbers
"test_model_cpu_offload_forward_pass"
];
meta = with lib; {
description = "State-of-the-art diffusion models for image and audio generation in PyTorch";
homepage = "https://github.com/huggingface/diffusers";
changelog = "https://github.com/huggingface/diffusers/releases/tag/${src.rev}";
license = licenses.asl20;
maintainers = with maintainers; [ natsukium ];
};
}

View file

@ -3,8 +3,9 @@
, aresponses
, buildPythonPackage
, fetchFromGitHub
, mashumaro
, orjson
, poetry-core
, pydantic
, pytest-asyncio
, pytestCheckHook
, pythonOlder
@ -13,7 +14,7 @@
buildPythonPackage rec {
pname = "elgato";
version = "5.0.0";
version = "5.1.1";
format = "pyproject";
disabled = pythonOlder "3.11";
@ -22,7 +23,7 @@ buildPythonPackage rec {
owner = "frenck";
repo = "python-elgato";
rev = "refs/tags/v${version}";
hash = "sha256-TI5wu2FYVUMvgDkbktcwPLnTSD8XUSy8qwOCdrsiopk=";
hash = "sha256-g0po3BtY2uiOmuyWVA+o08c3I86SE4zmvo1ps8HpNNw=";
};
postPatch = ''
@ -38,7 +39,8 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
pydantic
mashumaro
orjson
yarl
];

View file

@ -0,0 +1,84 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, poetry-core
# dependencies
, cryptography
, http-ece
, protobuf
, requests
# docs
, sphinx
, sphinxHook
, sphinx-autodoc-typehints
, sphinx-rtd-theme
# tests
, async-timeout
, requests-mock
, pytest-asyncio
, pytest-mock
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "firebase-messaging";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "sdb9696";
repo = "firebase-messaging";
rev = version;
hash = "sha256-e3Ny3pnAfOpNERvvtE/jqSDIsM+YwLq/hbw753QpJ6o=";
};
outputs = [
"out"
"doc"
];
nativeBuildInputs = [
poetry-core
sphinxHook
] ++ passthru.optional-dependencies.docs;
propagatedBuildInputs = [
cryptography
http-ece
protobuf
requests
];
passthru.optional-dependencies = {
docs = [
sphinx
sphinx-autodoc-typehints
sphinx-rtd-theme
];
};
pythonImportsCheck = [
"firebase_messaging"
];
nativeCheckInputs = [
async-timeout
requests-mock
pytest-asyncio
pytest-mock
pytestCheckHook
];
meta = with lib; {
description = "A library to subscribe to GCM/FCM and receive notifications within a python application";
homepage = "https://github.com/sdb9696/firebase-messaging";
changelog = "https://github.com/sdb9696/firebase-messaging/blob/${src.rev}/CHANGELOG.rst";
license = licenses.mit;
maintainers = with maintainers; [ ];
};
}

View file

@ -2,6 +2,10 @@
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
, pythonOlder
, pybind11
, setuptools
, wheel
, aiohttp
, diskcache
, gptcache
@ -9,9 +13,9 @@
, nest-asyncio
, numpy
, openai
, ordered-set
, platformdirs
, pygtrie
, pyparsing
, pyformlang
, requests
, tiktoken
, torch
@ -19,16 +23,24 @@
buildPythonPackage rec {
pname = "guidance";
version = "0.0.64";
format = "setuptools";
version = "0.1.6";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "microsoft";
owner = "guidance-ai";
repo = "guidance";
rev = "refs/tags/${version}";
hash = "sha256-tQpDJprxctKI88F+CZ9aSJbVo7tjmI4+VrI+WO4QlxE=";
hash = "sha256-Z3EuHAQPPXf/i0HnbDhGv5KBUBP0aZDHTwpff7g2E3g=";
};
nativeBuildInputs = [
pybind11
setuptools
wheel
];
propagatedBuildInputs = [
aiohttp
diskcache
@ -37,9 +49,9 @@ buildPythonPackage rec {
nest-asyncio
numpy
openai
ordered-set
platformdirs
pygtrie
pyparsing
pyformlang
requests
tiktoken
];
@ -51,17 +63,21 @@ buildPythonPackage rec {
disabledTests = [
# require network access
"test_each_parallel_with_gen_openai"
"test_select_simple"
"test_commit_point"
"test_token_healing"
"test_fstring"
"test_fstring_custom"
"test_token_count"
"test_gpt2"
"test_recursion_error"
"test_openai_class_detection"
"test_openai_chat_without_roles"
];
disabledTestPaths = [
# require network access
"tests/library/test_gen.py"
"tests/library/test_include.py"
"tests/library/test_select.py"
"tests/llms/test_openai.py"
"tests/llms/test_transformers.py"
"tests/test_program.py"
];
preCheck = ''
@ -72,8 +88,8 @@ buildPythonPackage rec {
meta = with lib; {
description = "A guidance language for controlling large language models";
homepage = "https://github.com/microsoft/guidance";
changelog = "https://github.com/microsoft/guidance/releases/tag/${src.rev}";
homepage = "https://github.com/guidance-ai/guidance";
changelog = "https://github.com/guidance-ai/guidance/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ natsukium ];
};

View file

@ -7,6 +7,7 @@
, ciso8601
, cryptography
, fetchFromGitHub
, fetchpatch
, pycognito
, pytest-aiohttp
, pytest-timeout
@ -32,12 +33,13 @@ buildPythonPackage rec {
hash = "sha256-r4Huvn9mBqnASpUd+drwORE+fApLV/l6Y3aO/UIiEC8=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "acme==" "acme>=" \
--replace "pycognito==" "pycognito>=" \
--replace "snitun==" "snitun>=" \
'';
patches = [
(fetchpatch {
# Add missing wait_for_close mock in AiohttpClientMockResponse
url = "https://github.com/NabuCasa/hass-nabucasa/commit/097607e0fe30932ca5cba0c50fda125f90f5f3de.patch";
hash = "sha256-ZSh+1kGBb6ltNnd0RaDECXiJDEGJBOw1wN2HXPgfy+o=";
})
];
nativeBuildInputs = [
setuptools

View file

@ -4,8 +4,8 @@
, pythonOlder
# propagates
, importlib-resources
, pyyaml
, unicode-rbnf
# tests
, pytestCheckHook
@ -13,21 +13,22 @@
let
pname = "hassil";
version = "1.2.5";
version = "1.5.1";
in
buildPythonPackage {
inherit pname version;
format = "setuptools";
disabled = pythonOlder "3.9";
src = fetchPypi {
inherit pname version;
hash = "sha256-udOkZILoba2+eR8oSFThsB846COaIXawwRYhn261mCA=";
hash = "sha256-GLvDT8BUBvEzgiqKaXokF912g3fOH+KsXnmeOXIwe9U=";
};
propagatedBuildInputs = [
pyyaml
] ++ lib.optionals (pythonOlder "3.9") [
importlib-resources
unicode-rbnf
];
nativeCheckInputs = [
@ -35,7 +36,7 @@ buildPythonPackage {
];
meta = with lib; {
changelog = "https://github.com/home-assistant/hassil/releases/tag/v${version}";
changelog = "https://github.com/home-assistant/hassil/blob/v${version}/CHANGELOG.md";
description = "Intent parsing for Home Assistant";
homepage = "https://github.com/home-assistant/hassil";
license = licenses.asl20;

View file

@ -3,8 +3,9 @@
, aresponses
, buildPythonPackage
, fetchFromGitHub
, mashumaro
, orjson
, poetry-core
, pydantic
, pytest-asyncio
, pytestCheckHook
, pythonOlder
@ -12,46 +13,47 @@
buildPythonPackage rec {
pname = "open-meteo";
version = "0.2.1";
version = "0.3.1";
format = "pyproject";
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "frenck";
repo = "python-open-meteo";
rev = "v${version}";
sha256 = "0i8jmhd29vvkpfxs9l5wy8525ngs79mnc7si2j9b1nc41xrv91f6";
hash = "sha256-IB+dfQ4bb4dMYYQUVH9YbP3arvfgt4SooPlOKP3AVI8=";
};
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
--replace "0.0.0" "${version}" \
--replace "--cov" ""
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
aresponses
pydantic
mashumaro
orjson
];
nativeCheckInputs = [
aresponses
pytest-asyncio
pytestCheckHook
];
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
--replace "0.0.0" "${version}" \
--replace "--cov" "" \
--replace 'aiohttp = "^3.8.1"' 'aiohttp = "^3.8.0"'
'';
pythonImportsCheck = [
"open_meteo"
];
meta = with lib; {
changelog = "https://github.com/frenck/python-open-meteo/releases/tag/v${version}";
description = "Python client for the Open-Meteo API";
homepage = "https://github.com/frenck/python-open-meteo";
license = licenses.mit;

View file

@ -4,16 +4,17 @@
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, pydantic
, mashumaro
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, syrupy
, yarl
}:
buildPythonPackage rec {
pname = "pvo";
version = "2.0.0";
version = "2.1.1";
format = "pyproject";
disabled = pythonOlder "3.11";
@ -22,7 +23,7 @@ buildPythonPackage rec {
owner = "frenck";
repo = "python-pvoutput";
rev = "refs/tags/v${version}";
hash = "sha256-SvsrvGwIAlj/8hdk90+rxigVrx6n3YInvF/4eux2H04=";
hash = "sha256-Js8oPEMxJyWK1E6GDm1xwm2BilnV3WBM6Hibf6oFOKE=";
};
postPatch = ''
@ -38,7 +39,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
pydantic
mashumaro
yarl
];
@ -46,6 +47,7 @@ buildPythonPackage rec {
aresponses
pytest-asyncio
pytestCheckHook
syrupy
];
pythonImportsCheck = [

View file

@ -1,30 +1,36 @@
{ lib
, aiohttp
, async-timeout
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, pythonOlder
}:
buildPythonPackage rec {
pname = "pycfdns";
version = "2.0.1";
format = "setuptools";
version = "3.0.0";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "ludeeus";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-f6kxYX/dg16OWYpw29dH4Z26ncLZCYyHKGc4fzoCld0=";
hash = "sha256-bLzDakxKq8fcjEKSxc6D5VN9gfAu1M3/zaAU2UYnwSs=";
};
postPatch = ''
substituteInPlace setup.py \
--replace 'version="master",' 'version="${version}",'
substituteInPlace pyproject.toml \
--replace 'version="0",' 'version="${version}",'
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
async-timeout
];
# Project has no tests

View file

@ -0,0 +1,45 @@
{ lib
, buildPythonPackage
, fetchPypi
, setuptools
, wheel
, networkx
, numpy
, pydot
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "pyformlang";
version = "1.0.4";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-ysX6c8q26bcQyq6GgKBKxTdp00j+4ypb3mgM2cqCmBs=";
};
nativeBuildInputs = [
setuptools
wheel
];
propagatedBuildInputs = [
networkx
numpy
pydot
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "pyformlang" ];
meta = with lib; {
description = "A python framework for formal grammars";
homepage = "https://pypi.org/project/pyformlang/";
license = licenses.mit;
maintainers = with maintainers; [ natsukium ];
};
}

View file

@ -5,13 +5,14 @@
, fetchFromGitHub
, prompt-toolkit
, pycryptodome
, pydantic
, pythonOlder
, setuptools
}:
buildPythonPackage rec {
pname = "pykoplenti";
version = "1.0.0";
version = "1.2.2";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -20,7 +21,7 @@ buildPythonPackage rec {
owner = "stegm";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-XBOKf3i8xywU/1Kzl+VI1Qnkp9ohpSuDX3AnotD32oo=";
hash = "sha256-2sGkHCIGo1lzLurvQBmq+16sodAaK8v+mAbIH/Gd3+E=";
};
nativeBuildInputs = [
@ -35,11 +36,17 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
click
prompt-toolkit
pycryptodome
pydantic
];
passthru.optional-dependencies = {
CLI = [
click
prompt-toolkit
];
};
# Project has no tests
doCheck = false;

View file

@ -72,6 +72,10 @@ buildPythonPackage rec {
disabledTests = [
# Tests often hang
"test_connected"
] ++ lib.optionals (lib.versionAtLeast aiohttp.version "3.9.0") [
"test_split_serial_packet"
"test_serial_poll"
"test_simulator"
];
meta = with lib; {

View file

@ -21,20 +21,23 @@ buildPythonPackage rec {
hash = "sha256-r+f2+vEXJdQGDlbs/MhraFgEmsAf32PU282blLRLjzc=";
};
postPatch = ''
substituteInPlace setup.py \
--replace "aiohttp>=3.8.0,<4.0.0" "aiohttp<=4.0.0"
'';
propagatedBuildInputs = [
aiohttp
];
# https://github.com/andrewsayre/pysmartthings/issues/80
doCheck = lib.versionOlder aiohttp.version "3.9.0";
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
postPatch = ''
substituteInPlace setup.py \
--replace "aiohttp>=3.8.0,<4.0.0" "aiohttp<=4.0.0"
'';
pythonImportsCheck = [
"pysmartthings"
];

View file

@ -55,6 +55,12 @@ buildPythonPackage rec {
pytestCheckHook
];
disabledTests = lib.optionals (lib.versionAtLeast aiohttp.version "3.9.0") [
# https://github.com/liudger/python-bsblan/issues/808
"test_http_error400"
"test_not_authorized_401_response"
];
pythonImportsCheck = [
"bsblan"
];

View file

@ -1,37 +1,42 @@
{ lib
, aiohttp
, aresponses
, awesomeversion
, async-timeout
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, protobuf
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, syrupy
}:
buildPythonPackage rec {
pname = "python-homewizard-energy";
version = "2.1.2";
version = "4.1.1";
format = "pyproject";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "DCSBL";
repo = pname;
repo = "python-homewizard-energy";
rev = "refs/tags/v${version}";
hash = "sha256-iyDRhTV5GSBTVK7ccJhUOrCpE9YuiI1vJM4XroCyIwE=";
hash = "sha256-p7uwodjC+wTGrlKf4i4ZRTPg9Qh9krsmwPpWNdF6J4U=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'version = "0.0.0"' 'version = "${version}"'
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
awesomeversion
aiohttp
async-timeout
];
__darwinAllowLocalNetworking = true;
@ -40,6 +45,7 @@ buildPythonPackage rec {
aresponses
pytest-asyncio
pytestCheckHook
syrupy
];
pythonImportsCheck = [
@ -48,8 +54,8 @@ buildPythonPackage rec {
meta = with lib; {
description = "Library to communicate with HomeWizard Energy devices";
homepage = "https://github.com/DCSBL/python-homewizard-energy";
changelog = "https://github.com/DCSBL/python-homewizard-energy/releases/tag/v${version}";
homepage = "https://github.com/homewizard/python-homewizard-energy";
changelog = "https://github.com/homewizard/python-homewizard-energy/releases/tag/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};

View file

@ -5,11 +5,11 @@
# build
, setuptools
, wheel
# propagates
, aiohttp
, aiorun
, async-timeout
, coloredlogs
, dacite
, orjson
@ -28,7 +28,7 @@
buildPythonPackage rec {
pname = "python-matter-server";
version = "4.0.2";
version = "5.0.3";
format = "pyproject";
disabled = pythonOlder "3.10";
@ -37,17 +37,22 @@ buildPythonPackage rec {
owner = "home-assistant-libs";
repo = "python-matter-server";
rev = "refs/tags/${version}";
hash = "sha256-fyVvmYznYuhDhU3kApXgXjkPdwhJFxoFq3U87ichmt8=";
hash = "sha256-bR6AVoy9f02RKZ57dnHTDAv5LTCcd/qBbzMDRKsGbfM=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'version = "0.0.0"' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
wheel
];
propagatedBuildInputs = [
aiohttp
aiorun
async-timeout
coloredlogs
dacite
orjson

View file

@ -1,54 +0,0 @@
{ lib
, aiohttp
, beautifulsoup4
, buildPythonPackage
, fetchFromGitHub
, pkce
, poetry-core
, pythonOlder
}:
buildPythonPackage rec {
pname = "python-myq";
version = "3.1.13";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "Python-MyQ";
repo = "Python-MyQ";
rev = "refs/tags/v${version}";
hash = "sha256-kW03swRXZdkh45I/up/FIxv0WGBRqTlDt1X71Ow/hrg=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace "poetry-core==1.6.1" "poetry-core"
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
beautifulsoup4
pkce
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [
"pymyq"
];
meta = with lib; {
description = "Python wrapper for MyQ API";
homepage = "https://github.com/Python-MyQ/Python-MyQ";
changelog = "https://github.com/Python-MyQ/Python-MyQ/releases/tag/v${version}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -1,7 +1,6 @@
{ lib
, stdenv
, aiohttp
, alexapy
, async-timeout
, buildPythonPackage
, click
@ -20,7 +19,7 @@
buildPythonPackage rec {
pname = "python-roborock";
version = "0.35.3";
version = "0.36.2";
format = "pyproject";
disabled = pythonOlder "3.10";
@ -29,12 +28,12 @@ buildPythonPackage rec {
owner = "humbertogontijo";
repo = "python-roborock";
rev = "refs/tags/v${version}";
hash = "sha256-3XTVHs+mLePudLnr+bAN4pHvHtUcE0D5Hw+50Vxhlzw=";
hash = "sha256-FyoYAXWdNANxZJ9EKyfRrywKPJmSyt8QRPBlrk9jRIw=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace "poetry-core==1.6.1" "poetry-core"
--replace "poetry-core==1.7.0" "poetry-core"
'';
pythonRelaxDeps = [
@ -47,7 +46,6 @@ buildPythonPackage rec {
];
propagatedBuildInputs = [
alexapy
aiohttp
async-timeout
click

View file

@ -1,10 +1,8 @@
{ lib
, aiohttp
, aresponses
, buildPythonPackage
, fetchFromGitHub
, poetry-core
, pydantic
, pytestCheckHook
, pytest-asyncio
, pythonOlder
@ -12,16 +10,16 @@
buildPythonPackage rec {
pname = "pytraccar";
version = "1.0.0";
format = "pyproject";
version = "2.0.0";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "ludeeus";
repo = pname;
rev = version;
hash = "sha256-ngyLe6sbTTQ7n4WdV06OlQnn/vqkD+JUruyMYS1Ym+Q=";
repo = "pytraccar";
rev = "refs/tags/${version}";
hash = "sha256-7QGgI+DDYbordBx4LbtCvPWyEh6ur2RrSKMuDlwRlTo=";
};
nativeBuildInputs = [
@ -30,11 +28,12 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
pydantic
];
# https://github.com/ludeeus/pytraccar/issues/31
doCheck = lib.versionOlder aiohttp.version "3.9.0";
nativeCheckInputs = [
aresponses
pytestCheckHook
pytest-asyncio
];
@ -56,6 +55,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Python library to handle device information from Traccar";
homepage = "https://github.com/ludeeus/pytraccar";
changelog = "https://github.com/ludeeus/pytraccar/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};

View file

@ -2,26 +2,29 @@
, buildPythonPackage
, fetchPypi
, aiohttp
, async-timeout
, lxml
, pythonOlder
, setuptools
}:
buildPythonPackage rec {
pname = "pytrafikverket";
version = "0.3.8";
format = "setuptools";
version = "0.3.9.1";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-3p2tKFuzgl+VFRRXV66MRgcL1XS8xxDqMOUZw+Ql/5E=";
hash = "sha256-F0BMpZVzSK0i+tdvN//KZQqgxFrfLf0SCNztKCs6BYQ=";
};
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
aiohttp
async-timeout
lxml
];

View file

@ -5,21 +5,26 @@
, pytestCheckHook
, pythonAtLeast
, pythonOlder
, setuptools
}:
buildPythonPackage rec {
pname = "restrictedpython";
version = "6.2";
format = "setuptools";
version = "7.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "RestrictedPython";
inherit version;
hash = "sha256-23Prfjs5ZQ8NIdEMyN2pwOKYbmIclLDF3jL7De46CK8=";
hash = "sha256-U3BK+7w1D9yPskVEE2e+Zxyfg4CGkgGy6EUudPzj2xQ=";
};
nativeBuildInputs = [
setuptools
];
nativeCheckInputs = [
pytestCheckHook
pytest-mock

View file

@ -2,6 +2,7 @@
, asyncclick
, buildPythonPackage
, fetchPypi
, firebase-messaging
, oauthlib
, poetry-core
, pytest-asyncio
@ -40,6 +41,12 @@ buildPythonPackage rec {
requests-oauthlib
];
passthru.optional-dependencies = {
listen = [
firebase-messaging
];
};
nativeCheckInputs = [
pytest-asyncio
pytest-mock

View file

@ -0,0 +1,43 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, setuptools
# tests
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "unicode-rbnf";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "rhasspy";
repo = "unicode-rbnf";
rev = "v${version}";
hash = "sha256-xwnfqWwQJKCJ4G+8eVaySTJAHxhwKYAqLHaCsxtBIl0=";
};
nativeBuildInputs = [
setuptools
];
pythonImportsCheck = [
"unicode_rbnf"
];
nativeCheckInputs = [
pytestCheckHook
];
meta = with lib; {
changelog = "https://github.com/rhasspy/unicode-rbnf/v${version}/master/CHANGELOG.md";
description = "A pure Python implementation of ICU's rule-based number format engine";
homepage = "https://github.com/rhasspy/unicode-rbnf";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};
}

View file

@ -6,7 +6,6 @@
# build-system
, setuptools
, setuptools-git-versioning
, wheel
# dependencies
, async-timeout
@ -27,20 +26,19 @@
buildPythonPackage rec {
pname = "universal-silabs-flasher";
version = "0.0.14";
format = "pyproject";
version = "0.0.15";
pyproject = true;
src = fetchFromGitHub {
owner = "NabuCasa";
repo = "universal-silabs-flasher";
rev = "v${version}";
hash = "sha256-0c9b571gJXFOAe5ct8O/qy7D6rDosmBHDYEv6odLQ2s=";
hash = "sha256-5hA1i2XzKzQDRrZfOaA6I3X7hU+nSd7HpcHHNIzZO7g=";
};
nativeBuildInputs = [
setuptools
setuptools-git-versioning
wheel
];
propagatedBuildInputs = [
@ -65,6 +63,7 @@ buildPythonPackage rec {
pythonImportsCheck = [ "universal_silabs_flasher" ];
meta = with lib; {
changelog = "https://github.com/NabuCasa/universal-silabs-flasher/releases/tag/v${version}";
description = "Flashes Silicon Labs radios running EmberZNet or CPC multi-pan firmware";
homepage = "https://github.com/NabuCasa/universal-silabs-flasher";
license = licenses.gpl3Only;

View file

@ -1,4 +1,5 @@
{ lib
, aiohttp
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
@ -11,7 +12,7 @@
buildPythonPackage rec {
pname = "vallox-websocket-api";
version = "3.3.0";
version = "4.0.2";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -20,7 +21,7 @@ buildPythonPackage rec {
owner = "yozik04";
repo = "vallox_websocket_api";
rev = "refs/tags/${version}";
hash = "sha256-wlkb6aa2UtqjrbNA26TUH+ZKvOM64An+lol+MCdQh3U=";
hash = "sha256-a9cYYRAKX9sY9fQhefLWgyvk0vQl7Ao3zvw0SAtFW/Q=";
};
nativeBuildInputs = [
@ -28,6 +29,7 @@ buildPythonPackage rec {
];
propagatedBuildInputs = [
aiohttp
construct
websockets
];
@ -40,6 +42,7 @@ buildPythonPackage rec {
pythonImportsCheck = [ "vallox_websocket_api" ];
meta = {
changelog = "https://github.com/yozik04/vallox_websocket_api/releases/tag/${version}";
description = "Async API for Vallox ventilation units";
homepage = "https://github.com/yozik04/vallox_websocket_api";
license = lib.licenses.lgpl3Only;

View file

@ -3,17 +3,19 @@
, aresponses
, buildPythonPackage
, fetchFromGitHub
, mashumaro
, orjson
, poetry-core
, pydantic
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, syrupy
, yarl
}:
buildPythonPackage rec {
pname = "vehicle";
version = "2.0.0";
version = "2.2.1";
format = "pyproject";
disabled = pythonOlder "3.11";
@ -22,25 +24,9 @@ buildPythonPackage rec {
owner = "frenck";
repo = "python-vehicle";
rev = "refs/tags/v${version}";
hash = "sha256-EbjrAfbqVY336RHBWq81KM+oHixen+38aUTnWZQ+nCs=";
hash = "sha256-mu30v4iZoOYfQZc1P45UZaor6hf+i+gOvGcVGcQYzTo=";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
pydantic
yarl
];
nativeCheckInputs = [
aresponses
pytest-asyncio
pytestCheckHook
];
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
@ -48,6 +34,24 @@ buildPythonPackage rec {
--replace "--cov" ""
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
mashumaro
orjson
yarl
];
nativeCheckInputs = [
aresponses
pytest-asyncio
pytestCheckHook
syrupy
];
pythonImportsCheck = [
"vehicle"
];

View file

@ -1,6 +1,12 @@
{ lib
, buildPythonPackage
, fetchPypi
, fetchFromGitHub
# build-system
, setuptools
# optional-dependencies
, zeroconf
# tests
, wyoming-faster-whisper
@ -10,12 +16,24 @@
buildPythonPackage rec {
pname = "wyoming";
version = "1.2.0";
format = "setuptools";
version = "1.4.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-mgNhc8PMRrwfvGZEcgIvQ/P2dysdDo2juvZccvb2C/g=";
src = fetchFromGitHub {
owner = "rhasspy";
repo = "wyoming";
rev = "refs/tags/${version}";
hash = "sha256-59/6tRHHAu31VFuKhj2LCEUqkdVi81fu5POuGJmw9bw=";
};
nativeBuildInputs = [
setuptools
];
passthru.optional-dependencies = {
zeroconf = [
zeroconf
];
};
pythonImportsCheck = [
@ -34,8 +52,9 @@ buildPythonPackage rec {
};
meta = with lib; {
changelog = "https://github.com/rhasspy/wyoming/releases/tag/${version}";
description = "Protocol for Rhasspy Voice Assistant";
homepage = "https://pypi.org/project/wyoming/";
homepage = "https://github.com/rhasspy/wyoming";
license = licenses.mit;
maintainers = with maintainers; [ hexa ];
};

View file

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "yolink-api";
version = "0.3.3";
version = "0.3.4";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "YoSmart-Inc";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-Kg7EvMoFMNm7+Upxo1RIyzrOFsz9dQu1YYiEuetlXBk=";
hash = "sha256-wDZlzl178SIXxo5SacbbXWHhF4wOsjBU4a9h0jBYA4c=";
};
nativeBuildInputs = [

View file

@ -1,6 +1,5 @@
{ lib
, stdenv
, cython
, cython_3
, async-timeout
, buildPythonPackage
, fetchFromGitHub
@ -15,7 +14,7 @@
buildPythonPackage rec {
pname = "zeroconf";
version = "0.119.0";
version = "0.128.0";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -24,11 +23,16 @@ buildPythonPackage rec {
owner = "jstasiak";
repo = "python-zeroconf";
rev = "refs/tags/${version}";
hash = "sha256-VaqKk2WrRLZM2tfx3+y9GngEc6rMcw0b12ExFVfDYf4=";
hash = "sha256-44Ibjbimpl+KSnQ2QMwVg79F38gdWPYTR/ZRyW7JHEU=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace "Cython>=3.0.5" "Cython"
'';
nativeBuildInputs = [
cython
cython_3
poetry-core
setuptools
];

View file

@ -2,26 +2,47 @@
, aiohttp
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, setuptools
, zigpy
}:
buildPythonPackage rec {
pname = "zha-quirks";
version = "0.0.106";
format = "setuptools";
version = "0.0.107";
pyproject = true;
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "zigpy";
repo = "zha-device-handlers";
rev = "refs/tags/${version}";
hash = "sha256-+sL3AbjDg0Kl6eqMwVAN9W85QKJqFR1ANKz1E958KeA=";
hash = "sha256-JHf6PZDK7yjyHjjUhkNpqEINCaY916wX5rXaw1Fx1ro=";
};
patches = [
(fetchpatch {
# https://github.com/zigpy/zha-device-handlers/pull/2787
name = "zigpy-0.60-compat.patch";
url = "https://github.com/zigpy/zha-device-handlers/commit/f497ccd2437ae9a24b9afdb84f11fc27a30df211.patch";
hash = "sha256-ICatiA0QRmfJ4Vf4LWyUJI5TLeWoikII49HSBir5WNI=";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
aiohttp
zigpy

View file

@ -6,13 +6,14 @@
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, setuptools
, zigpy
}:
buildPythonPackage rec {
pname = "zigpy-deconz";
version = "0.21.1";
format = "setuptools";
version = "0.22.0";
pyproject = true;
disabled = pythonOlder "3.7";
@ -20,9 +21,19 @@ buildPythonPackage rec {
owner = "zigpy";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-YRJMIpC6Zk5sQjGyzdEbQEeYgFJzIbxe4BReayceu10=";
hash = "sha256-pdWWI+yZh0uf2TzVbyJFIrxM2zfmaPG/PGZWaNNrZ6M=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
pyserial
pyserial-asyncio

View file

@ -6,26 +6,35 @@
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, setuptools
, zigpy
}:
buildPythonPackage rec {
pname = "zigpy-xbee";
version = "0.19.0";
format = "setuptools";
# https://github.com/Martiusweb/asynctest/issues/152
# broken by upstream python bug with asynctest and
# is used exclusively by home-assistant with python 3.8
version = "0.20.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "zigpy";
repo = "zigpy-xbee";
rev = "refs/tags/${version}";
hash = "sha256-KUXXOySuPFNKcW3O08FBYIfm4WwVjOuIF+GefmKnwl0=";
hash = "sha256-Ja9U/X9YblS6uUD7MX3t2tItG9AMiNF7OFgvIotdvQs=";
};
buildInputs = [
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
pyserial
pyserial-asyncio
zigpy

View file

@ -9,13 +9,14 @@
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, setuptools
, zigpy
}:
buildPythonPackage rec {
pname = "zigpy-zigate";
version = "0.11.0";
format = "setuptools";
version = "0.12.0";
pyproject = true;
disabled = pythonOlder "3.8";
@ -23,9 +24,19 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zigpy-zigate";
rev = "refs/tags/${version}";
hash = "sha256-eGN2QvPHZ8gfPPFdUbAP9cs43jzUHDBS/w1tni1shB0=";
hash = "sha256-wziXUFYSUXhzWHM870jphG12h99WVzqiYimtIbkXyM0=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
gpiozero
pyserial

View file

@ -10,14 +10,15 @@
, pytest-timeout
, pytestCheckHook
, pythonOlder
, setuptools
, voluptuous
, zigpy
}:
buildPythonPackage rec {
pname = "zigpy-znp";
version = "0.11.6";
format = "setuptools";
version = "0.12.0";
pyproject = true;
disabled = pythonOlder "3.7";
@ -25,12 +26,18 @@ buildPythonPackage rec {
owner = "zigpy";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-K85AmksP/dXKL4DQKadyvjK7y5x6yEgc6vDJAPfblTw=";
hash = "sha256-nPk//1MMvtWf2iLZZ/2vJoBdFEJBmy8RBMwSFzfnNT8=";
};
nativeBuildInputs = [
setuptools
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace "timeout = 20" "timeout = 300"
--replace "timeout = 20" "timeout = 300" \
--replace ', "setuptools-git-versioning<2"' "" \
--replace 'dynamic = ["version"]' 'version = "${version}"'
'';
propagatedBuildInputs = [

View file

@ -14,12 +14,11 @@
, pythonOlder
, setuptools
, voluptuous
, wheel
}:
buildPythonPackage rec {
pname = "zigpy";
version = "0.58.1";
version = "0.60.0";
format = "pyproject";
disabled = pythonOlder "3.8";
@ -28,7 +27,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zigpy";
rev = "refs/tags/${version}";
hash = "sha256-i2P9QyhT/UQ8Xu0IfQ2OzAxIiMF4H04Jkz3/6e2FCpY=";
hash = "sha256-1i92YyOIoWSMDHgfnXiXQuvDnmEPlSHwoSLmmsoTkDU=";
};
postPatch = ''
@ -39,7 +38,6 @@ buildPythonPackage rec {
nativeBuildInputs = [
setuptools
wheel
];
propagatedBuildInputs = [

View file

@ -0,0 +1,70 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
# build-system
, cmake
, setuptools
# native dependencies
, zlib-ng
# tests
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "zlib-ng";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "pycompression";
repo = "python-zlib-ng";
rev = "v${version}";
hash = "sha256-dZnX94SOuV1/zTYUecnRe6DDKf5nAvydHn7gESVQ6hs=";
};
nativeBuildInputs = [
cmake
setuptools
];
dontUseCmakeConfigure = true;
env.PYTHON_ZLIB_NG_LINK_DYNAMIC = true;
buildInputs = [
zlib-ng
];
pythonImportsCheck = [
"zlib_ng"
];
nativeCheckInputs = [
pytestCheckHook
];
preCheck = ''
rm -rf src
'';
disabledTests = [
# commandline tests fail to find the built module
"test_compress_fast_best_are_exclusive"
"test_compress_infile_outfile"
"test_compress_infile_outfile_default"
"test_decompress_cannot_have_flags_compression"
"test_decompress_infile_outfile"
"test_decompress_infile_outfile_error"
];
meta = with lib; {
description = "A drop-in replacement for Python's zlib and gzip modules using zlib-ng";
homepage = "https://github.com/pycompression/python-zlib-ng";
changelog = "https://github.com/pycompression/python-zlib-ng/blob/${src.rev}/CHANGELOG.rst";
license = licenses.psfl;
maintainers = with maintainers; [ hexa ];
};
}

View file

@ -1,3 +1,4 @@
{ callPackage, ... }: {
tflint-ruleset-aws = callPackage ./tflint-ruleset-aws.nix { };
tflint-ruleset-google = callPackage ./tflint-ruleset-google.nix { };
}

View file

@ -0,0 +1,38 @@
{ lib
, buildGoModule
, fetchFromGitHub
}:
buildGoModule rec {
pname = "tflint-ruleset-google";
version = "0.24.0";
src = fetchFromGitHub {
owner = "terraform-linters";
repo = pname;
rev = "v${version}";
hash = "sha256-1eF/uzOYP/gi+ooHN8OfCR2nz+/z98theO0Lr/BBhWM=";
};
vendorHash = "sha256-owpNcsxuP+sG27vv9V7ArMK1NLBNbnw11KpdpVyWAD0=";
# upstream Makefile also does a go test $(go list ./... | grep -v integration)
preCheck = ''
rm integration/integration_test.go
'';
subPackages = [ "." ];
postInstall = ''
mkdir -p $out/github.com/terraform-linters/${pname}/${version}
mv $out/bin/${pname} $out/github.com/terraform-linters/${pname}/${version}/
'';
meta = with lib; {
homepage = "https://github.com/terraform-linters/tflint-ruleset-google";
description = "TFLint ruleset plugin for Terraform Google Provider";
platforms = platforms.unix;
maintainers = with maintainers; [ john-rodewald ];
license = with licenses; [ mpl20 ];
};
}

View file

@ -3,7 +3,7 @@ GEM
specs:
cbor-canonical (0.1.2)
cbor-deterministic (0.1.3)
cbor-diag (0.8.4)
cbor-diag (0.8.7)
cbor-canonical
cbor-deterministic
cbor-packed
@ -24,4 +24,4 @@ DEPENDENCIES
cbor-diag
BUNDLED WITH
2.4.10
2.4.20

View file

@ -25,10 +25,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0k57gminnhz5fmnclrixdp1f2mg8d6zjnbbf67glaqpxf08a99j6";
sha256 = "0rwd88xngbjamgydj9rg3wvgl53pfzhal2n702s9afa1yp8mjm51";
type = "gem";
};
version = "0.8.4";
version = "0.8.7";
};
cbor-packed = {
groups = ["default"];

View file

@ -12,42 +12,47 @@
let
phpMajor = lib.versions.majorMinor php.version;
version = "1.92.0";
version = "1.92.3";
hashes = {
"x86_64-linux" = {
system = "amd64";
hash = {
"8.1" = "sha256-XXwsX4kJ/ubu8AjGj+baGM6SLJCTeefKCynpZ6UVyQo=";
"8.2" = "sha256-2pScIG8tWLrgd+dzUYWpV9Y4lcIujN4BTX6qzfmaank=";
"8.1" = "sha256-WyduRLnXWR8B5CPMfQyd9yBSTCb/SY/yH2Me8FSdKsk=";
"8.2" = "sha256-oQbsQpftQnCzrAqdgkwuz9Igg0vWzYN030ZpkPL9a6Q=";
"8.3" = "sha256-NVLVi6IRd+kJSkG0/70MFfCyv4qaFr/vI+96/taiBSQ=";
};
};
"i686-linux" = {
system = "i386";
hash = {
"8.1" = "sha256-I+LTPimETlKVx6gTOfsxHlgphhkjlMxoGorVQkRWVP0=";
"8.2" = "sha256-Or5qIBDuHVfq7BEfnUtT2PMFNlt5Us1aWqtM+4ExOAA=";
"8.1" = "sha256-5k3GAB4LoUYv/QS5EVv5xVhv7RfBYq4Tkzr7q/+As7M=";
"8.2" = "sha256-VK7USg73q8WUQoq5dZ9au8TtbiCi9FUwi8CONEMipfQ=";
"8.3" = "sha256-TT2lMVtI+Frn1EVzGUCy7MSkPhYOT6hgD4yzv3Bi4Uc=";
};
};
"aarch64-linux" = {
system = "arm64";
hash = {
"8.1" = "sha256-SID/iTmrSBfz41joG8JaVi7zwEb5OHQ3dRp8PpN+HSg=";
"8.2" = "sha256-GveRe/XdY2d6X/m7ofyr+6Ha2GfnDtNL+M/VnZqMcqo=";
"8.1" = "sha256-t1I9CQ73iK3FM5dhTV68uitwjR+lNZgpWFhQnOkzTWU=";
"8.2" = "sha256-+GtJVqpK1+CXJl4gxvttcs2fhDoNcvE1Gqd8TNy6IFU=";
"8.3" = "sha256-KTKu6Nvv5Xdk3PzKzww5ZWYtG7eRgedU2AooYZGLE+0=";
};
};
"aarch64-darwin" = {
system = "arm64";
hash = {
"8.1" = "sha256-iT2oURI7suabC16ti6TQMBigU35TIujWpXSNdXIZDD4=";
"8.2" = "sha256-cmfANcQEn7IIe7uovACBAuqyo7SPZZOhwtdlPMiKTWI=";
"8.1" = "sha256-q+2xEeHxb1jKz/5o83OuJGXQJ6EFLZ0esUzfe924vio=";
"8.2" = "sha256-Ug6Y7nqSFGUcm4YvTrYTsxifavmPrsqfomNZceaiHpA=";
"8.3" = "sha256-6BEK56Naxzk8m7UOV40pFqLTbSd7jsA8VEOPEKZjbzM=";
};
};
"x86_64-darwin" = {
system = "amd64";
hash = {
"8.1" = "sha256-zGunEfOLm7LmOoQcrkRFX8oZQQJIrXPKct5hNJyOlug=";
"8.2" = "sha256-qzt9NVKZYoJMKaX+u8CbGJR5dfUtSRYjV45mvSWl/P8=";
"8.1" = "sha256-jE5z02gFUkFCBPg/KNrtRS53TifA3MkuztXQJm2x4qw=";
"8.2" = "sha256-Ix+qb1jWHdxKAh0Vjpe9O2Yc0I6Qwb+qLK3vNLqpZVY=";
"8.3" = "sha256-PjUFoZQnk4VRRCQE1OddzxV5LRPa2uQawpYzfooQSk8=";
};
};
};

View file

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-semver-checks";
version = "0.25.0";
version = "0.26.0";
src = fetchFromGitHub {
owner = "obi1kenobi";
repo = pname;
rev = "v${version}";
hash = "sha256-cy1YgNBxVSxdoVq/2t6Uf4PBQf54degabtEYfIeIBDU=";
hash = "sha256-M7ovDD9dwxVZgbggnXhe1A/hDQ8QRmY/2J6qdWU4mys=";
};
cargoHash = "sha256-Xl6wneomb5NeqhA9pMyNkCtc6FgYtx7k2zgQ3oBHP/Q=";
cargoHash = "sha256-wPWSuvAmPCquwg44PsbExnDKp7xDVWIy+/1SnnCuJmE=";
nativeBuildInputs = [
cmake

View file

@ -2,20 +2,24 @@
stdenv.mkDerivation rec {
pname = "sauce-connect";
version = "4.5.4";
version = "4.9.1";
src = fetchurl (
if stdenv.hostPlatform.system == "x86_64-linux" then {
url = "https://saucelabs.com/downloads/sc-${version}-linux.tar.gz";
sha256 = "1w8fw47q4bzpk5jfagmc0cbp69jdd6jcv2xl1gx91cbp7xd8mcbf";
} else if stdenv.hostPlatform.system == "i686-linux" then {
url = "https://saucelabs.com/downloads/sc-${version}-linux32.tar.gz";
sha256 = "1h9n1mzmrmlrbd0921b0sgg7m8z0w71pdb5sif6h1b9f97cp353x";
} else {
url = "https://saucelabs.com/downloads/sc-${version}-osx.zip";
sha256 = "0rkyd402f1n92ad3w1460j1a4m46b29nandv4z6wvg2pasyyf2lj";
}
);
passthru = {
sources = {
x86_64-linux = fetchurl {
url = "https://saucelabs.com/downloads/sc-${version}-linux.tar.gz";
hash = "sha256-S3vzng6b0giB6Zceaxi62pQOEHysIR/vVQmswkEZ0/M=";
};
x86_64-darwin = fetchurl {
url = "https://saucelabs.com/downloads/sc-${version}-osx.zip";
hash = "sha256-6tJayqo+p7PMz8M651ikHz6tEjGjRIffOqQBchkpW5Q=";
};
aarch64-darwin = passthru.sources.x86_64-darwin;
};
};
src = passthru.sources.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
nativeBuildInputs = [ unzip ];
@ -38,7 +42,7 @@ stdenv.mkDerivation rec {
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
homepage = "https://docs.saucelabs.com/reference/sauce-connect/";
maintainers = with maintainers; [offline];
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ offline ];
platforms = builtins.attrNames passthru.sources;
};
}

View file

@ -0,0 +1,27 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts curl jq
# API documentation: https://docs.saucelabs.com/dev/api/connect/
set -Eeuo pipefail
shopt -s lastpipe
die() {
echo -e "${BASH_SOURCE[0]}:${BASH_LINENO[0]}" ERROR: "$@" >&2
exit 1
}
# shellcheck disable=2154
trap 's=$?; die "$BASH_COMMAND"; exit $s' ERR
# Versions may not be updated simultaneously across all platforms, so need to figure out the latest
# version that includes both platforms. For example, currently the latest on Linux is 4.9.2 while
# Mac is 4.9.1.
response=$(curl -fsSL 'https://api.us-west-1.saucelabs.com/rest/v1/public/tunnels/info/versions?all=true')
all_versions=$(jq --exit-status --raw-output \
'.all_downloads | to_entries[] | select(.value | has("linux") and has("osx")) | .key' \
<<< "$response")
latest_version=$(sort --version-sort <<< "$all_versions" | tail -n 1)
for platform in x86_64-linux x86_64-darwin; do
update-source-version sauce-connect 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" \
--source-key="passthru.sources.$platform"
update-source-version sauce-connect "$latest_version" \
--source-key="passthru.sources.$platform"
done

View file

@ -0,0 +1,14 @@
--- a/include/util.h
+++ b/include/util.h
@@ -449,6 +449,11 @@ struct slice_allocator
{
p->~Tp ();
}
+
+ bool operator ==(const slice_allocator &) const
+ {
+ return true;
+ }
};
// basically a memory area, but refcounted

View file

@ -35,8 +35,11 @@ stdenv.mkDerivation rec {
patches = [
./0001-abs.patch
./0002-datadir.patch
./0003-swap.patch
];
env.CXXFLAGS = "-std=c++11";
postFixup = ''
wrapProgram $out/bin/cfutil --prefix PERL5LIB : $PERL5LIB
wrapProgram $out/bin/deliantra-server --prefix PERL5LIB : $PERL5LIB

View file

@ -10,7 +10,7 @@
.Sh SYNOPSIS
.Nm
.Bro
.Cm switch | boot | test | build | dry-build | dry-activate | edit | build-vm | build-vm-with-bootloader | list-generations Op Fl -json
.Cm switch | boot | test | build | dry-build | dry-activate | edit | repl | build-vm | build-vm-with-bootloader | list-generations Op Fl -json
.Brc
.br
.Op Fl -upgrade | -upgrade-all
@ -143,6 +143,10 @@ Opens
.Pa configuration.nix
in the default editor.
.
.It Cm repl
Opens the configuration in
.Ic nix repl Ns .
.
.It Cm build-vm
Build a script that starts a NixOS virtual machine with the desired
configuration. It leaves a symlink

View file

@ -49,7 +49,7 @@ while [ "$#" -gt 0 ]; do
--help)
showSyntax
;;
switch|boot|test|build|edit|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader|list-generations)
switch|boot|test|build|edit|repl|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader|list-generations)
if [ "$i" = dry-run ]; then i=dry-build; fi
# exactly one action mandatory, bail out if multiple are given
if [ -n "$action" ]; then showSyntax; fi
@ -511,6 +511,68 @@ if [ "$action" = dry-build ]; then
extraBuildFlags+=(--dry-run)
fi
if [ "$action" = repl ]; then
# This is a very end user command, implemented using sub-optimal means.
# You should feel free to improve its behavior, as well as resolve tech
# debt in "breaking" ways. Humans adapt quite well.
if [[ -z $flake ]]; then
exec nix repl '<nixpkgs/nixos>' "${extraBuildFlags[@]}"
else
if [[ -n "${lockFlags[0]}" ]]; then
# nix repl itself does not support locking flags
log "nixos-rebuild repl does not support locking flags yet"
exit 1
fi
d='$'
q='"'
bold="$(echo -e '\033[1m')"
blue="$(echo -e '\033[34;1m')"
attention="$(echo -e '\033[35;1m')"
reset="$(echo -e '\033[0m')"
# This nix repl invocation is impure, because usually the flakeref is.
# For a solution that preserves the motd and custom scope, we need
# something like https://github.com/NixOS/nix/issues/8679.
exec nix repl --impure --expr "
let flake = builtins.getFlake ''$flake'';
configuration = flake.$flakeAttr;
motd = ''
$d{$q\n$q}
Hello and welcome to the NixOS configuration
$flakeAttr
in $flake
The following is loaded into nix repl's scope:
- ${blue}config${reset} All option values
- ${blue}options${reset} Option data and metadata
- ${blue}pkgs${reset} Nixpkgs package set
- other module arguments
- ${blue}flake${reset} Flake outputs, inputs and source info of $flake
Use tab completion to browse around ${blue}config${reset}.
Use ${bold}:r${reset} to ${bold}reload${reset} everything after making a change in the flake.
(assuming $flake is a mutable flake ref)
See ${bold}:?${reset} for more repl commands.
${attention}warning:${reset} nixos-rebuild repl does not currently enforce pure evaluation.
'';
scope =
assert configuration._type or null == ''configuration'';
assert configuration.class or ''nixos'' == ''nixos'';
configuration._module.args //
configuration._module.specialArgs //
{
inherit (configuration) config options;
inherit flake;
};
in builtins.seq scope builtins.trace motd scope
" "${extraBuildFlags[@]}"
fi
fi
if [ "$action" = list-generations ]; then
if [ ! -L "$profile" ]; then
log "No profile \`$(basename "$profile")' found"

File diff suppressed because it is too large Load diff

View file

@ -30,24 +30,16 @@ let
# Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
(self: super: {
aioairq = super.aioairq.overridePythonAttrs (oldAttrs: rec {
version = "0.2.4";
src = fetchFromGitHub {
owner = "CorantGmbH";
repo = "aioairq";
rev = "refs/tags/v${version}";
hash = "sha256-+5FyBfsB3kjyX/V9CdZ072mZ3THyvALyym+uk7/kZLo=";
};
});
# https://github.com/home-assistant/core/pull/101913
aiohttp = super.aiohttp.overridePythonAttrs (old: rec {
version = "3.8.5";
version = "3.9.1";
src = fetchPypi {
inherit (old) pname;
inherit version;
hash = "sha256-uVUuxSzBR9vxlErHrJivdgLlHqLc0HbtGUyjwNHH0Lw=";
hash = "sha256-j8Sah6wmnUUp2kWHHi/7aHTod3nD0OLM2BPAiZIhI50=";
};
patches = [];
doCheck = false;
});
aiowatttime = super.aiowatttime.overridePythonAttrs (oldAttrs: rec {
@ -60,6 +52,15 @@ let
};
});
aioresponses = super.aioresponses.overridePythonAttrs (oldAttrs: rec {
pname = "aioresponses";
version = "0.7.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-95XZ29otYXdIQOfjL1Nm9FdS0a3Bt0yTYq/QFylsfuE=";
};
});
astral = super.astral.overridePythonAttrs (oldAttrs: rec {
pname = "astral";
version = "2.2";
@ -105,10 +106,10 @@ let
rev = "refs/tags/${version}";
hash = "sha256-iqlKfpnETLqQwy5sNcK2x/TgmuN2hCfYoHEFK2WWVXI=";
};
nativeBuildInputs = with super; [
nativeBuildInputs = with self; [
setuptools
];
propagatedBuildInputs = with super; [
propagatedBuildInputs = with self; [
aenum
aiohttp
pydantic
@ -135,11 +136,6 @@ let
};
});
# moto tests are a nuissance
moto = super.moto.overridePythonAttrs (_: {
doCheck = false;
});
notifications-android-tv = super.notifications-android-tv.overridePythonAttrs (oldAttrs: rec {
version = "0.1.5";
format = "setuptools";
@ -151,11 +147,11 @@ let
hash = "sha256-adkcUuPl0jdJjkBINCTW4Kmc16C/HzL+jaRZB/Qr09A=";
};
nativeBuildInputs = with super; [
nativeBuildInputs = with self; [
setuptools
];
propagatedBuildInputs = with super; [
propagatedBuildInputs = with self; [
requests
];
@ -183,15 +179,6 @@ let
};
});
p1monitor = super.p1monitor.overridePythonAttrs (oldAttrs: rec {
version = "2.1.1";
src = fetchFromGitHub {
inherit (oldAttrs.src) owner repo;
rev = "refs/tags/v${version}";
hash = "sha256-VHY5AWxt5BZd1NQKzsgubEZBLKAlDNm8toyEazPUnDU=";
};
});
psutil = super.psutil.overridePythonAttrs (oldAttrs: rec {
version = "5.9.6";
src = fetchPypi {
@ -324,7 +311,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "2023.11.3";
hassVersion = "2023.12.1";
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
@ -337,18 +324,18 @@ in python.pkgs.buildPythonApplication rec {
# don't try and fail to strip 6600+ python files, it takes minutes!
dontStrip = true;
# Primary source is the pypi sdist, because it contains translations
src = fetchPypi {
inherit pname version;
hash = "sha256-llGHI6LVpTo9m2RMtcDSkW2wWraje2OkVFx5P7lzZ30=";
};
# Secondary source is git for tests
gitSrc = fetchFromGitHub {
# Primary source is the git, which has the tests and allows bisecting the core
src = fetchFromGitHub {
owner = "home-assistant";
repo = "core";
rev = "refs/tags/${version}";
hash = "sha256-KD53O+UlAjGfVGp4kbLgpgU7j0A+KqZZT492WmeCOnQ=";
hash = "sha256-S9o1xhhqiSRan1BXnN0AndFPfLL0KqqH42WKOi3Yl+g=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-e9OtUsluYlNBVmQ8u71dF0Q+wDdV8mvmYFdN8syl5rI=";
};
nativeBuildInputs = with python.pkgs; [
@ -378,10 +365,9 @@ in python.pkgs.buildPythonApplication rec {
"yarl"
];
# copy tests early, so patches apply as they would to the git repo
# extract translations from pypi sdist
prePatch = ''
cp --no-preserve=mode --recursive ${gitSrc}/tests ./
chmod u+x tests/auth/providers/test_command_line_cmd.sh
tar --extract --gzip --file $sdist --strip-components 1 --wildcards "**/translations"
'';
# leave this in, so users don't have to constantly update their downstream patch handling
@ -481,6 +467,8 @@ in python.pkgs.buildPythonApplication rec {
"--deselect tests/test_config.py::test_merge"
# AssertionError: assert 'WARNING' not in '2023-11-10 ...nt abc[L]>\n'"
"--deselect=tests/helpers/test_script.py::test_multiple_runs_repeat_choose"
# SystemError: PyThreadState_SetAsyncExc failed
"--deselect=tests/helpers/test_template.py::test_template_timeout"
# tests are located in tests/
"tests"
];

View file

@ -4,7 +4,7 @@ buildPythonPackage rec {
# 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
pname = "home-assistant-frontend";
version = "20231030.2";
version = "20231208.2";
format = "wheel";
src = fetchPypi {
@ -12,7 +12,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
hash = "sha256-qzodzqWpAXZjwBJkiCyBi5zzfpEqqtauJn2PKZ5UtJ0=";
hash = "sha256-JTYZPku5UdnMOllnzyI9tbYgxcewx5tklDooQKJA6p8=";
};
# there is nothing to strip in this package

View file

@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "home-assistant-intents";
version = "2023.10.16";
version = "2023.12.05";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "home-assistant";
repo = "intents-package";
rev = "refs/tags/${version}";
hash = "sha256-qW5KzABEEBw2tu5+fAoWd8nCxuvTzEU14M8iaSo2WzE=";
hash = "sha256-BVcvlmX5+w7b9uNHA4ZP6Ebj+7ROUgEaAmXAGQrby+s=";
fetchSubmodules = true;
};

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "homeassistant-stubs";
version = "2023.11.3";
version = "2023.12.1";
format = "pyproject";
disabled = python.version != home-assistant.python.version;
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "KapJI";
repo = "homeassistant-stubs";
rev = "refs/tags/${version}";
hash = "sha256-x3FcUmbUYAUKGAPb85SqJk1kTWFKxpJSX2J+rTRj1KY=";
hash = "sha256-RvMEQT/fmUI125rBGNKfngfQTJc/jWiK5t0zxsofbQU=";
};
nativeBuildInputs = [

View file

@ -192,11 +192,11 @@ class HomeAssistant:
async def update_core(self, old_version: str, new_version: str) -> None:
old_sdist_hash = str(await Nix.eval("home-assistant.src.outputHash"))
old_sdist_hash = str(await Nix.eval("home-assistant.sdist.outputHash"))
new_sdist_hash = await Nurl.prefetch("https://pypi.org/project/homeassistant/", new_version)
print(f"sdist: {old_sdist_hash} -> {new_sdist_hash}")
old_git_hash = str(await Nix.eval("home-assistant.gitSrc.outputHash"))
old_git_hash = str(await Nix.eval("home-assistant.src.outputHash"))
new_git_hash = await Nurl.prefetch("https://github.com/home-assistant/core/", new_version)
print(f"git: {old_git_hash} -> {new_git_hash}")

View file

@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://www.apollographql.com/docs/router/";
license = licenses.elastic20;
maintainers = [ maintainers.bbigras ];
knownVulnerabilities = [ "CVE-2023-45812" ];
};
}

Some files were not shown because too many files have changed in this diff Show more