Merge master into staging-next

This commit is contained in:
github-actions[bot]
2024-12-12 06:05:10 +00:00
committed by GitHub
124 changed files with 3572 additions and 456 deletions
+17
View File
@@ -5102,6 +5102,12 @@
githubId = 118536343;
name = "David Hamelin";
};
David-Kopczynski = {
name = "David Elias Chris Kopczynski";
email = "mail@davidkopczynski.com";
github = "David-Kopczynski";
githubId = 53194670;
};
david-r-cox = {
email = "david@integrated-reasoning.com";
github = "david-r-cox";
@@ -10882,6 +10888,11 @@
name = "Joonas Rautiola";
keys = [ { fingerprint = "87EC DD30 6614 E510 5299 F0D4 090E B48A 4669 AA54"; } ];
};
Jojo4GH = {
name = "Jonas Broeckmann";
github = "Jojo4GH";
githubId = 36777568;
};
jojosch = {
name = "Johannes Schleifenbaum";
email = "johannes@js-webcoding.de";
@@ -11289,6 +11300,12 @@
githubId = 31776703;
name = "Ariel Ebersberger";
};
justdeeevin = {
email = "devin.droddy@gmail.com";
github = "justdeeevin";
githubId = 90054389;
name = "Devin Droddy";
};
justinas = {
email = "justinas@justinas.org";
github = "justinas";
@@ -29,6 +29,8 @@
- [Omnom](https://github.com/asciimoo/omnom), a webpage bookmarking and snapshotting service. Available as [services.omnom](options.html#opt-services.omnom.enable).
- [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](options.html#opt-services.marytts).
- [Traccar](https://www.traccar.org/), a modern GPS Tracking Platform. Available as [services.traccar](#opt-services.traccar.enable).
- [crab-hole](https://github.com/LuckyTurtleDev/crab-hole), a cross platform Pi-hole clone written in Rust using hickory-dns/trust-dns. Available as [services.crab-hole](#opt-services.crab-hole.enable).
@@ -113,6 +115,8 @@
2.0](https://github.com/containerd/containerd/blob/main/docs/containerd-2.0.md) documentation for more
details.
- The ZFS import service now respects `fileSystems.*.options = [ "noauto" ];` and does not add that pool's import service to `zfs-import.target`, meaning it will not be automatically imported at boot.
- `nodePackages.stackdriver-statsd-backend` has been removed, as the StackDriver service has been discontinued by Google, and therefore the package no longer works.
- the notmuch vim plugin now lives in a separate output of the `notmuch`
+1
View File
@@ -395,6 +395,7 @@
./services/audio/jack.nix
./services/audio/jmusicbot.nix
./services/audio/liquidsoap.nix
./services/audio/marytts.nix
./services/audio/mopidy.nix
./services/audio/mpd.nix
./services/audio/mpdscribble.nix
+184
View File
@@ -0,0 +1,184 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.marytts;
format = pkgs.formats.javaProperties { };
in
{
options.services.marytts = {
enable = lib.mkEnableOption "MaryTTS";
settings = lib.mkOption {
type = lib.types.submodule {
freeformType = format.type;
};
default = { };
description = ''
Settings for MaryTTS.
See the [default settings](https://github.com/marytts/marytts/blob/master/marytts-runtime/conf/marybase.config)
for a list of possible keys.
'';
};
package = lib.mkPackageOption pkgs "marytts" { };
basePath = lib.mkOption {
type = lib.types.path;
default = "/var/lib/marytts";
description = ''
The base path in which MaryTTS runs.
'';
};
port = lib.mkOption {
type = lib.types.port;
default = 59125;
description = ''
Port to bind the MaryTTS server to.
'';
};
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = ''
Whether to open the port in the firewall for MaryTTS.
'';
};
voices = lib.mkOption {
type = lib.types.listOf lib.types.path;
default = [ ];
example = lib.literalExpression ''
[
(pkgs.fetchzip {
url = "https://github.com/marytts/voice-bits1-hsmm/releases/download/v5.2/voice-bits1-hsmm-5.2.zip";
hash = "sha256-1nK+qZxjumMev7z5lgKr660NCKH5FDwvZ9sw/YYYeaA=";
})
]
'';
description = ''
Paths to the JAR files that contain additional voices for MaryTTS.
Voices are automatically detected by MaryTTS, so there is no need to alter
your config to make use of new voices.
'';
};
userDictionaries = lib.mkOption {
type = lib.types.listOf lib.types.path;
default = [ ];
example = lib.literalExpression ''
[
(pkgs.writeTextFile {
name = "userdict-en_US";
destination = "/userdict-en_US.txt";
text = '''
Nixpkgs | n I k s - ' p { - k @ - dZ @ s
''';
})
]
'';
description = ''
Paths to the user dictionary files for MaryTTS.
'';
};
};
config = lib.mkIf cfg.enable {
services.marytts.settings = {
"mary.base" = lib.mkDefault cfg.basePath;
"socket.port" = lib.mkDefault cfg.port;
};
environment.systemPackages = [ cfg.package ];
systemd.services.marytts = {
description = "MaryTTS server instance";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
# FIXME: MaryTTS's config loading mechanism appears to be horrendously broken
# and it doesn't seem to actually read config files outside of precompiled JAR files.
# Using system properties directly works for now, but this is really ugly.
script = ''
${lib.getExe pkgs.marytts} -classpath "${cfg.basePath}/lib/*:${cfg.package}/lib/*" ${
lib.concatStringsSep " " (lib.mapAttrsToList (n: v: ''-D${n}="${v}"'') cfg.settings)
}
'';
restartTriggers = cfg.voices ++ cfg.userDictionaries;
serviceConfig = {
DynamicUser = true;
User = "marytts";
RuntimeDirectory = "marytts";
StateDirectory = "marytts";
Restart = "on-failure";
RestartSec = 5;
TimeoutSec = 20;
# Hardening
ProtectClock = true;
ProtectKernelLogs = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
ProtectHostname = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectHome = true;
ProcSubset = "pid";
PrivateTmp = true;
PrivateNetwork = false;
PrivateUsers = cfg.port >= 1024;
PrivateDevices = true;
RestrictRealtime = true;
RestrictNamespaces = true;
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
];
MemoryDenyWriteExecute = false; # Java does not like w^x :(
LockPersonality = true;
AmbientCapabilities = lib.optional (cfg.port < 1024) "CAP_NET_BIND_SERVICE";
CapabilityBoundingSet = "";
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"
"~@resources"
"~@privileged"
];
UMask = "0027";
};
};
systemd.tmpfiles.settings."10-marytts" = {
"${cfg.basePath}/lib"."L+".argument = "${pkgs.symlinkJoin {
name = "marytts-lib";
# Put user paths before default ones so that user ones have priority
paths = cfg.voices ++ [ "${cfg.package}/lib" ];
}}";
"${cfg.basePath}/user-dictionaries"."L+".argument = "${pkgs.symlinkJoin {
name = "marytts-user-dictionaries";
# Put user paths before default ones so that user ones have priority
paths = cfg.userDictionaries ++ [ "${cfg.package}/user-dictionaries" ];
}}";
};
networking.firewall = lib.mkIf cfg.openFirewall {
allowedTCPPorts = [ cfg.port ];
};
};
}
+1 -1
View File
@@ -120,7 +120,7 @@ in
package = lib.mkOption {
type = lib.types.package;
default = pkgs.openldap;
defaultText = lib.literalExpression "pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; }";
defaultText = lib.literalExpression "pkgs.openldap";
description = "The OpenLDAP package to use.";
};
+3 -1
View File
@@ -128,7 +128,9 @@ let
"systemd-modules-load.service"
"systemd-ask-password-console.service"
] ++ lib.optional (config.boot.initrd.clevis.useTang) "network-online.target";
requiredBy = getPoolMounts prefix pool ++ [ "zfs-import.target" ];
requiredBy = let
noauto = lib.all (fs: lib.elem "noauto" fs.options) (getPoolFilesystems pool);
in getPoolMounts prefix pool ++ lib.optional (!noauto) "zfs-import.target";
before = getPoolMounts prefix pool ++ [ "shutdown.target" "zfs-import.target" ];
conflicts = [ "shutdown.target" ];
unitConfig = {
+1
View File
@@ -579,6 +579,7 @@ in {
mailman = handleTest ./mailman.nix {};
man = handleTest ./man.nix {};
mariadb-galera = handleTest ./mysql/mariadb-galera.nix {};
marytts = handleTest ./marytts.nix {};
mastodon = pkgs.recurseIntoAttrs (handleTest ./web-apps/mastodon { inherit handleTestOn; });
pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; });
mate = handleTest ./mate.nix {};
+87
View File
@@ -0,0 +1,87 @@
import ./make-test-python.nix (
{ lib, ... }:
let
port = 59126;
in
{
name = "marytts";
meta.maintainers = with lib.maintainers; [ pluiedev ];
nodes.machine =
{ pkgs, ... }:
{
networking.firewall.enable = false;
networking.useDHCP = false;
services.marytts = {
enable = true;
inherit port;
voices = [
(pkgs.fetchzip {
url = "https://github.com/marytts/voice-bits1-hsmm/releases/download/v5.2/voice-bits1-hsmm-5.2.zip";
hash = "sha256-1nK+qZxjumMev7z5lgKr660NCKH5FDwvZ9sw/YYYeaA=";
})
];
userDictionaries = [
(pkgs.writeTextFile {
name = "userdict-en_US.txt";
destination = "/userdict-en_US.txt";
text = ''
amogus | @ - ' m @U - g @ s
Nixpkgs | n I k s - ' p { - k @ - dZ @ s
'';
})
];
};
};
testScript = ''
from xml.etree import ElementTree
from urllib.parse import urlencode
machine.wait_for_unit("marytts.service")
with subtest("Checking health of MaryTTS server"):
machine.wait_for_open_port(${toString port})
assert 'Mary TTS server' in machine.succeed("curl 'localhost:${toString port}/version'")
with subtest("Generating example MaryXML"):
query = urlencode({
'datatype': 'RAWMARYXML',
'locale': 'en_US',
})
xml = machine.succeed(f"curl 'localhost:${toString port}/exampletext?{query}'")
root = ElementTree.fromstring(xml)
text = " ".join(root.itertext()).strip()
assert text == "Welcome to the world of speech synthesis!"
with subtest("Detecting custom voice"):
assert "bits1-hsmm" in machine.succeed("curl 'localhost:${toString port}/voices'")
with subtest("Finding user dictionary"):
query = urlencode({
'INPUT_TEXT': 'amogus',
'INPUT_TYPE': 'TEXT',
'OUTPUT_TYPE': 'PHONEMES',
'LOCALE': 'en_US',
})
phonemes = machine.succeed(f"curl 'localhost:${toString port}/process?{query}'")
phonemes_tree = ElementTree.fromstring(phonemes)
print([i.get('ph') for i in phonemes_tree.iter('{http://mary.dfki.de/2002/MaryXML}t')])
assert ["@ - ' m @U - g @ s"] == [i.get('ph') for i in phonemes_tree.iter('{http://mary.dfki.de/2002/MaryXML}t')]
with subtest("Synthesizing"):
query = urlencode({
'INPUT_TEXT': 'Nixpkgs is a collection of over 100,000 software packages that can be installed with the Nix package manager.',
'INPUT_TYPE': 'TEXT',
'OUTPUT_TYPE': 'AUDIO',
'AUDIO': 'WAVE_FILE',
'LOCALE': 'en_US',
})
machine.succeed(f"curl 'localhost:${toString port}/process?{query}' -o ./audio.wav")
machine.copy_from_vm("./audio.wav")
'';
}
)
@@ -22,13 +22,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lagrange";
version = "1.18.3";
version = "1.18.4";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
rev = "v${finalAttrs.version}";
hash = "sha256-ewpSZD+pCr6gbzT+4lW2+6tssPNLq4rqgUx7p8IsjIY=";
hash = "sha256-Bty2TRL5blduhucYmI6x3RZVdgrY0/7Dtm5kgQ2N3ec=";
};
nativeBuildInputs = [
+1 -1
View File
@@ -73,5 +73,5 @@ let
) // privateAttrs // passthruAttrs // { inherit name; };
in
fetcher fetcherArgs // { meta = newMeta; inherit rev owner repo; }
fetcher fetcherArgs // { meta = newMeta; inherit rev owner repo tag; }
)
@@ -10,16 +10,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "chirpstack-concentratord";
version = "4.4.2";
version = "4.4.6";
src = fetchFromGitHub {
owner = "chirpstack";
repo = "chirpstack-concentratord";
rev = "v${version}";
hash = "sha256-UbUtNJuz8zfhHzyOiT/mRNtNRmdoNnuszrVSbLoVGK8=";
hash = "sha256-O5QevCYFZEJzZcLM3wh9b+RvbkFwLlvIcFhVbhVDOXU=";
};
cargoHash = "sha256-JXIyrbBRGJR9mjvawU46mBfGYxZPpYl9aB9k3WBA/co=";
cargoHash = "sha256-oRy8yGBRD/PGh+RtY9nk03oV6SRBGucRABwfgJbnuxM=";
buildInputs = [
libloragw-2g4
@@ -6,16 +6,16 @@
}:
buildGoModule rec {
pname = "chirpstack-rest-api";
version = "4.10.1";
version = "4.10.2";
src = fetchFromGitHub {
owner = "chirpstack";
repo = "chirpstack-rest-api";
rev = "v${version}";
hash = "sha256-Rqxayn5vcCsvdztfElhRrdxxO3l5SgtckmWQMYey9MA=";
hash = "sha256-t7JACy26BzmkC7f/KGATw8V+lqEqhkPjEg6LHQ6REWE=";
};
vendorHash = "sha256-7Qcd7AQjIdp5j7/i7wEZslMiOR5/rJ0HGbo8o7Q035U=";
vendorHash = "sha256-Y4KGcLms5TAWHcvm9OYKty3+Lciycy+31zokVAPx/pI=";
ldflags = [
"-s"
+3 -5
View File
@@ -8,7 +8,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "deltachat-cursed";
version = "0.9.0";
version = "0.10.0";
pyproject = true;
@@ -16,7 +16,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "adbenitez";
repo = "deltachat-cursed";
rev = "v${version}";
hash = "sha256-z4JKe5soR4FdIn8hugxtnxQr/9V8m8a7QRzE1liIexc=";
hash = "sha256-KCPIZf/8Acp9syFN1IHbf8hQrjk0yzniff+dVSSM/Ro=";
};
build-system = with python3.pythonOnBuildForHost.pkgs; [
@@ -27,9 +27,7 @@ python3.pkgs.buildPythonApplication rec {
dependencies = with python3.pkgs; [
appdirs
deltachat2
emoji
notify-py
setuptools # for pkg_resources
urwid
urwid-readline
];
+2 -2
View File
@@ -15,13 +15,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "doomretro";
version = "5.5.1";
version = "5.6";
src = fetchFromGitHub {
owner = "bradharding";
repo = "doomretro";
rev = "v${finalAttrs.version}";
hash = "sha256-gAMMzHUo0uPXIRqT1NOMWpFNAtE1Pth5uXFa2Dps90E=";
hash = "sha256-ykErEXKpd/79cUhubZiLC7u10yJy8oYCWOMeHLYRHts=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -14,13 +14,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "doublecmd";
version = "1.1.19";
version = "1.1.21";
src = fetchFromGitHub {
owner = "doublecmd";
repo = "doublecmd";
rev = "v${finalAttrs.version}";
hash = "sha256-3OHlC6+oHB1xW2uYFeQn3paJDvo2PZytdzv98G/qqmg=";
hash = "sha256-NsjsjCSPbo7zwejmOjFRuQpcMyGZEY67hyStjtMrIGk=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -15,16 +15,16 @@
rustPlatform.buildRustPackage rec {
pname = "eza";
version = "0.20.11";
version = "0.20.12";
src = fetchFromGitHub {
owner = "eza-community";
repo = "eza";
rev = "v${version}";
hash = "sha256-JK2JXZCtrq5iVgzJ5mIrHSEhlWGgtxhKGVgbN3IuMxg=";
hash = "sha256-x3rq0jLv8INBmaMH0t4vINK9MBwcIukCyMTM0CUTyy0=";
};
cargoHash = "sha256-5KVLxIYmWIcFcGNZUvNOrHrKTy0UD9LQvPn3IGpV6B0=";
cargoHash = "sha256-X35aksmao6pXxzARFgS2UlMxa8usfyFQAhlSug9YStQ=";
nativeBuildInputs = [
cmake
+3 -3
View File
@@ -11,18 +11,18 @@
buildGoModule rec {
pname = "go-musicfox";
version = "4.5.7";
version = "4.6.0";
src = fetchFromGitHub {
owner = "go-musicfox";
repo = "go-musicfox";
rev = "v${version}";
hash = "sha256-x3j+gfPRPkDJq9dF2NZBqvRWhnthQ8Y1TUE6xV0qFVU=";
hash = "sha256-pzB57XeDD8lfJMkP9/k1rrszYXYYzQt2UekH2Atiqjw=";
};
deleteVendor = true;
vendorHash = "sha256-ItZMt6LLOQ/ZRBKAGjD72cTzK39l/ffXpXbODm9MCh8=";
vendorHash = "sha256-IO/UlOW6pLZp6JaU5P9vUJ0qx0Srvmb5vjpX1pSdaeM=";
subPackages = [ "cmd/musicfox.go" ];
+3 -3
View File
@@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "libdeltachat";
version = "1.151.4";
version = "1.151.6";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-core-rust";
rev = "v${version}";
hash = "sha256-GySzclwnplL6GwK01Msn4REzW2eiynLKtEjonvUzMto=";
hash = "sha256-alt4RkZeKz5yqbie3ksu9fKXKapYR0hCaY7vOMicrk8=";
};
patches = [
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
cargoDeps = rustPlatform.fetchCargoVendor {
pname = "deltachat-core-rust";
inherit version src;
hash = "sha256-vTmHF7qoAWfou27v6TRPSRvLB+ge/7/aBgW6Bb7tkkI=";
hash = "sha256-++LG3MhmNVfHfMEuaSZrJYsf3NVbPWFD8KoDsiu9/Eg=";
};
nativeBuildInputs = [
+405
View File
@@ -0,0 +1,405 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"http://opennlp.sourceforge.net/models-1.5": {
"de-pos-maxent": {
"bin": "sha256-dwVfB2b3tv+MhCqZ6/qTQODO7AM2Beo/w86j4uyaNi4="
},
"en-pos-maxent": {
"bin": "sha256-ZFoJT0WoZmh6YXOFIz/SOuiw9fqLG3aZZ4GlDBe9zz0="
}
},
"https://plugins.gradle.org/m2": {
"de/dfki/mary#gradle-marytts-component-plugin/0.3.2": {
"jar": "sha256-lT4KL7XZHrCI8ByVRlhFIWTskjrjDEtD/xaBtqqMT8E=",
"module": "sha256-yNyDKL1v/dZ+vUslJ9I/XF94Of72LccH+N3N1C0xhDo=",
"pom": "sha256-nNon9HhH3koh6i5ZE1xX5LJHIMh9O3r3roXQAZchHxI="
},
"de/dfki/mary/component#de.dfki.mary.component.gradle.plugin/0.3.2": {
"pom": "sha256-Mjtu1BIXUNIUYATIlt3fdiDZXIFE1yy2X2AlZ7RdgYM="
},
"org/yaml#snakeyaml/2.2": {
"jar": "sha256-FGeTFEiggXaWrigFt7iyC/sIJlK/nE767VKJMNxJOJs=",
"pom": "sha256-6YLq3HiMac8uTeUKn2MrGCwx26UGEoMNNI/EtLqN19Y="
}
},
"https://raw.githubusercontent.com": {
"DFKI-MLT/Maven-Repository/main/de/dfki/lt/jtok#jtok-core/1.9.3": {
"jar": "sha256-v0hxmgOKwRJMzUZzsbPLOIMXTwPFcp1X4g9S688M4Vc=",
"pom": "sha256-VWnKAEhFCLP0bMiESTLx1fHuO2VbqAPIHA9L9biC1IU="
}
},
"https://repo.maven.apache.org/maven2": {
"ch/qos/reload4j#reload4j/1.2.22": {
"jar": "sha256-Ii+Q0+aVQSGO9ucFR3SdaTvUwYRoF+W9eUmz4olQ+Z8=",
"pom": "sha256-8Tj74PC/646UKudkhCloKL2a77Z6qztIceyFhzdn5Pw="
},
"com/beust#jcommander/1.78": {
"jar": "sha256-eJHeu4S1+D6b1XWT6+zjOZq74P2TjPMGs1NMV5E7lhU=",
"pom": "sha256-b+4jHAru5t4SVra1WQzp5vbPbDl5ftZoVzUgvDQS4qc="
},
"com/fasterxml#oss-parent/58": {
"pom": "sha256-VnDmrBxN3MnUE8+HmXpdou+qTSq+Q5Njr57xAqCgnkA="
},
"com/fasterxml/jackson#jackson-bom/2.17.2": {
"pom": "sha256-H0crC8IATVz0IaxIhxQX+EGJ5481wElxg4f9i0T7nzI="
},
"com/fasterxml/jackson#jackson-parent/2.17": {
"pom": "sha256-rubeSpcoOwQOQ/Ta1XXnt0eWzZhNiSdvfsdWc4DIop0="
},
"com/google/code/findbugs#jsr305/3.0.1": {
"jar": "sha256-yIXONCSWgrwCNrSn1W78wSBI5hNaW696nN6K2M2hP80=",
"pom": "sha256-QXCnYdxb/TmBqOb3qrnirNzoLTT9Wqm7EePAkNJTFM4="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/errorprone#error_prone_annotations/2.28.0": {
"jar": "sha256-8/yKOgpAIHBqNzsA5/V8JRLdJtH4PSjH04do+GgrIx4=",
"pom": "sha256-DOkJ8TpWgUhHbl7iAPOA+Yx1ugiXGq8V2ylet3WY7zo="
},
"com/google/errorprone#error_prone_parent/2.28.0": {
"pom": "sha256-rM79u1QWzvX80t3DfbTx/LNKIZPMGlXf5ZcKExs+doM="
},
"com/google/guava#failureaccess/1.0.2": {
"jar": "sha256-io+Bz5s1nj9t+mkaHndphcBh7y8iPJssgHU+G0WOgGQ=",
"pom": "sha256-GevG9L207bs9B7bumU+Ea1TvKVWCqbVjRxn/qfMdA7I="
},
"com/google/guava#guava-parent/14.0.1": {
"pom": "sha256-5aUl7Ttdf/8qjalkHgy5hcf9uEfjCB4qNz2vLnADm2M="
},
"com/google/guava#guava-parent/26.0-android": {
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
},
"com/google/guava#guava-parent/33.3.1-jre": {
"pom": "sha256-VUQdsn6Iad/v4FMFm99Hi9x+lVhWQr85HwAjNF/VYoc="
},
"com/google/guava#guava/14.0.1": {
"jar": "sha256-1p3zMxhAYF7w5f5K3WDy0o6HDjggk36in3E9IDXZq5c=",
"pom": "sha256-PdSpktU+tSShxlRqJLhTszKyZSB1XiayXTgQATFCS3s="
},
"com/google/guava#guava/33.3.1-jre": {
"jar": "sha256-S/Dixa+ORSXJbo/eF6T3MH+X+EePEcTI41oOMpiuTpA=",
"module": "sha256-QYWMhHU/2WprfFESL8zvOVWMkcwIJk4IUGvPIODmNzM=",
"pom": "sha256-MTtn/BPrOwY07acVoSKZcfXem4GIvCgHYoFbg6J18ZM="
},
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
},
"com/google/j2objc#j2objc-annotations/3.0.0": {
"jar": "sha256-iCQVc0Z93KRP/U10qgTCu/0Rv3wX4MNCyUyd56cKfGQ=",
"pom": "sha256-I7PQOeForYndEUaY5t1744P0osV3uId9gsc6ZRXnShc="
},
"com/ibm/icu#icu4j/54.1.1": {
"jar": "sha256-Sxp+zPD+afshyOqksYJwi1BygtVeQP+3tJIEY15FeVo=",
"pom": "sha256-3k1VZEDMK6MzHOYZ8ujr73Rq8JeLT54ZjIM2pW2fxPk="
},
"com/ibm/icu#icu4j/66.1": {
"jar": "sha256-Xcypk/Z/1sNXd09JjUm34Ymx2aLPzgUMtO4d2WyADxo=",
"pom": "sha256-Qv8FpFnmcPzINvtwQW0VTlvcuJo0e53stwMt7JVXt1Q="
},
"commons-collections#commons-collections/3.2.2": {
"jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=",
"pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws="
},
"commons-io#commons-io/2.17.0": {
"jar": "sha256-SqTKSPPf0wt4Igt4gdjLk+rECT7JQ2G2vvqUh5mKVQs=",
"pom": "sha256-SEqTn/9TELjLXGuQKcLc8VXT+TuLjWKF8/VrsroJ/Ek="
},
"commons-io#commons-io/2.5": {
"jar": "sha256-oQQYNI0jSWhgDMsdmI78u9CHFuHZaTbMwYgOfSJRNHQ=",
"pom": "sha256-KOuymYvH16yyUHhSaXFkCJIADzQTWG/0LWEfEEO/7DA="
},
"commons-lang#commons-lang/2.6": {
"jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=",
"pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE="
},
"de/dfki/mary#emotionml-checker-java/1.2.2": {
"jar": "sha256-WFdXs97l2EsSAUCq3ALN6P4GkvElMYBgXNrPEuYSXSw=",
"module": "sha256-MENdIpiQRc/EtMI/0zVuUN0zOshEtFd9E1Cs94OczM8=",
"pom": "sha256-G2G63569CsQUm0ILUsJRc1dZVIdYhf13BEoH79dkfrs="
},
"de/dfki/mary#marytts-common/5.2.1": {
"jar": "sha256-Adcks8gqN5QI5LwpXEVjTG/K54vZfFpWxkgiOG3/wZg=",
"pom": "sha256-kfPti+loZkjkbWXq+Y6W1nG/fssGeFZ73tNWvKIpQjQ="
},
"de/dfki/mary#marytts-lexicon-de/0.1.1": {
"jar": "sha256-K7Fz1AE7zbWPurSELxehYe4jEi+p4gHrTnJFhYkVvbs=",
"module": "sha256-GjDUJxz8dC+R/xdgKXlrIM8yGMIIdMyEvDK3YWcdB9I=",
"pom": "sha256-3ekILmQnkBzw68WOGyMN3gzcolPANO+RG7hP/b48pCA="
},
"de/dfki/mary#marytts-lexicon-en_US-cmudict/0.1.1": {
"jar": "sha256-mZUP9RiU7j29F5Yk46udNAcW6Q7ZAf2vjwi9ENBsWPg=",
"module": "sha256-QW1R9cJj8lpS5eJ62b0OCUOZWERjv8knMlxpFQsYJeY=",
"pom": "sha256-+as1Tjjn7BC385oQnbBuuB8XV6I7Ktr7kpr7weYRymI="
},
"de/dfki/mary#marytts-lexicon-fr/0.1.1": {
"jar": "sha256-59QlWCDkdvb0/go8keCs97e8uZTV7Tp6gKLREPjD2KY=",
"module": "sha256-hHSShbfXYcpjUCODKrwuOyMD2yG+wLeeIhAbiGyec1I=",
"pom": "sha256-Z2hBfo32vl4yiGCXpVRZRClt32fInzT8J1DJCxq5E/E="
},
"de/dfki/mary#marytts-lexicon-it/0.1.1": {
"jar": "sha256-Hlw0JbpX6V6LGNgXm+rzoUHFAZjUSM6djgn4ULeCvEo=",
"module": "sha256-HjeupQ5BJT/7D2rzcvW4XlVED206hXK+fDi7Ckzn9Ag=",
"pom": "sha256-jTGPtjPG4W6r4dvT6H0bSng+/AkPyk1crQvlPJR12Tw="
},
"de/dfki/mary#marytts-lexicon-lb/0.1.1": {
"jar": "sha256-UhECnjxaA5YH2SsGHldj86fjM8/sEXDxRAz+eKjw57E=",
"module": "sha256-Q5DsvV7ftRYq+7Ldnl+h0q3GfCcRbzu8rzivgXr8YHQ=",
"pom": "sha256-pzb4eeRDejpQYAU9Z80Z48/lB44TFZTO0954Ga76q0k="
},
"de/dfki/mary#marytts-lexicon-ru/0.1.1": {
"jar": "sha256-I+b2nGDudo2nLSiDslGozbukmOW+ZE53isxl1pQ8Fjs=",
"module": "sha256-6aSmHUCftntEaUX4Le2+o9RrmnHndeVW+k4xjZzi0RE=",
"pom": "sha256-8wJB3AStz0Uh0nff4PqxUGCvU+mnBByAT6bLFbi86ZU="
},
"de/dfki/mary#marytts-lexicon-tr/0.1.1": {
"jar": "sha256-96FshBqq8Uj3PeeJwara7Zk0eBGvS7Ykg5nURtcpY/g=",
"module": "sha256-y/edxl9qWkqcwDNWU1xbHfENiSB0AIJY0oLcBbcmmE0=",
"pom": "sha256-/qnTjfEyNsQnfr4UXY1TcFLV8bd5wj2SUuRF3rnLehI="
},
"de/dfki/mary#marytts-runtime/5.2.1": {
"jar": "sha256-Cp2j4x+6ZsfQne+Uxfvqs/7s4NxWz1Pp6QtGZp0r6WI=",
"pom": "sha256-pi0Qi0AY/83R3rvnlNSDcbJ4Fj+PtDXTEQyxGmMkqQ0="
},
"de/dfki/mary#marytts-signalproc/5.2.1": {
"jar": "sha256-HuiAF7vsFPkR4FkMRjidlY8OOn8LSXQmqPNGK+fTNsg=",
"pom": "sha256-q5x0k4qUwJbVREDBuUXPFlOctzKQiF8wKlFisdvp6S4="
},
"de/dfki/mary#marytts/5.2.1": {
"pom": "sha256-kyMuX+lFc1qyXn3KP+qpT8jNb8If6yPtUaYwaI3hQM4="
},
"gov/nist/math#jama/1.0.3": {
"jar": "sha256-xzJe4pvhqsEofdrGkPc2cfHNkRyp7KfGGZkOhjEFVv0=",
"pom": "sha256-vNwqtC4wAIf64KYiohROkMrXap65L3XQWEOh5rg1psM="
},
"jakarta/platform#jakarta.jakartaee-bom/9.1.0": {
"pom": "sha256-35jgJmIZ/buCVigm15o6IHdqi6Aqp4fw8HZaU4ZUyKQ="
},
"jakarta/platform#jakartaee-api-parent/9.1.0": {
"pom": "sha256-p3AsSHAmgCeEtXl7YjMKi41lkr8PRzeyXGel6sgmWcA="
},
"junit#junit/4.12": {
"jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=",
"pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
},
"net/sf/jwordnet#jwnl/1.3.3": {
"jar": "sha256-PQ2EI4cXcn7WaqM5kHwkVuCNXdAeGqJD9dkoEVgcWDA=",
"pom": "sha256-hUDWasSlaXGQJS/jqo5LluYeXZ1MAtyKfzCTQs12xq0="
},
"net/sf/trove4j#trove4j/2.0.2": {
"jar": "sha256-i1U60gEktGRMnwAb8t5CFMDevBurGKRMDDOjHbKDwRg=",
"pom": "sha256-PU5DrfR/+889XNOqlSN5KXe/XLo7okuMaOpxEY/ATfc="
},
"org/apache#apache/10": {
"pom": "sha256-gC/uznKFLa/L0KQlpgNnxyxcubbqWq5ZSBEoVpGJ2vk="
},
"org/apache#apache/16": {
"pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4="
},
"org/apache#apache/18": {
"pom": "sha256-eDEwcoX9R1u8NrIK4454gvEcMVOx1ZMPhS1E7ajzPBc="
},
"org/apache#apache/24": {
"pom": "sha256-LpO7q+NBOviaDDv7nmv3Hbyej5+xTMux14vQJ13xxSU="
},
"org/apache#apache/33": {
"pom": "sha256-14vYUkxfg4ChkKZSVoZimpXf5RLfIRETg6bYwJI6RBU="
},
"org/apache#apache/7": {
"pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU="
},
"org/apache/commons#commons-parent/17": {
"pom": "sha256-lucYuvU0h07mLOTULeJl8t2s2IORpUDgMNWdmPp8RAg="
},
"org/apache/commons#commons-parent/39": {
"pom": "sha256-h80n4aAqXD622FBZzphpa7G0TCuLZQ8FZ8ht9g+mHac="
},
"org/apache/commons#commons-parent/74": {
"pom": "sha256-gOthsMh/3YJqBpMTsotnLaPxiFgy2kR7Uebophl+fss="
},
"org/apache/groovy#groovy-bom/4.0.22": {
"module": "sha256-Ul0/SGvArfFvN+YAL9RlqygCpb2l9MZWf778copo5mY=",
"pom": "sha256-Hh9rQiKue/1jMgA+33AgGDWZDb1GEGsWzduopT4832U="
},
"org/apache/httpcomponents#httpcomponents-core/4.1": {
"pom": "sha256-T3l//Zw9FW3g2+wf0eY+n9hYSpPHBDV2VT38twb2TeQ="
},
"org/apache/httpcomponents#httpcore-nio/4.1": {
"jar": "sha256-drO+LO75XJlHzYo2WBitHIn9hZE1tQuyP90gWqGkf/c=",
"pom": "sha256-Qg90O2snSFP3IiJDtEoUxdEscKZIMPQPdDET6DCKM1Y="
},
"org/apache/httpcomponents#httpcore/4.1": {
"jar": "sha256-POON5R9OJGaMbRhAV6jQhUH56BXS0xnQ9GLwgwkrKc8=",
"pom": "sha256-T8hq+jjpyfqwmcz0XCvHQ9RT5qsiJJCr/oZxl1w8cyc="
},
"org/apache/httpcomponents#project/4.1.1": {
"pom": "sha256-IbtNRN/1TjOjfBGvaYWacUICrgCWmqtUU+unJ2aI+Ow="
},
"org/apache/logging#logging-parent/11.3.0": {
"pom": "sha256-pcmFtW/hxYQzOTtQkabznlufeFGN2PySE0aQWZtk19A="
},
"org/apache/logging#logging-parent/5": {
"pom": "sha256-3HYwz4LLMfTUdiFgVCIa/9UldG7pZUEkD0UvcyNwMCI="
},
"org/apache/logging/log4j#log4j-1.2-api/2.17.2": {
"jar": "sha256-3YxkmkbF2ArRE5TWjBM7qOmpGs+Zt7mSDdW2rT9a36g=",
"pom": "sha256-Znkw96Fy3+a+LaQpsCTdBaLFL+qKut/fD+1+Wi8KPyI="
},
"org/apache/logging/log4j#log4j-api/2.17.2": {
"jar": "sha256-CTUbWgOCjzac3P929O055qb8IPJPBGk10LKO9RUvjOQ=",
"pom": "sha256-K48/bUcd8Xlpkhp/D/2oPgYoqz3vx+W8oq7+0WZ2Ke8="
},
"org/apache/logging/log4j#log4j-api/2.24.1": {
"jar": "sha256-bne7Ip/I3K8JA4vutekDCyLp4BtRtFiwGDzmaevMku8=",
"pom": "sha256-IzAaISnUEAiZJfSvQa7LUlhKPcxFJoI+EyNOyst+c+M="
},
"org/apache/logging/log4j#log4j-bom/2.24.1": {
"pom": "sha256-vGPPsrS5bbS9cwyWLoJPtpKMuEkCwUFuR3q1y3KwsNM="
},
"org/apache/logging/log4j#log4j-core/2.17.2": {
"jar": "sha256-Wts0/0GXzRao0k9jA1hWqTPLWVYqaIjd6G6UUPz+9kY=",
"pom": "sha256-o4kYQfrJvjSxshOrlb4wtTZGUW3LS8+pzGi+xXVH2lM="
},
"org/apache/logging/log4j#log4j-core/2.24.1": {
"jar": "sha256-ALzziEcsqApocBQYF2O2bXdxd/Isu/F5/WDhsaybybA=",
"pom": "sha256-JyQstBek3xl47t/GlYtFyJgg+WzH9NFtH0gr/CN24M0="
},
"org/apache/logging/log4j#log4j/2.17.2": {
"pom": "sha256-9Kfh04fB+5s2XUyzbScO+GNLpJrSBVWMThzafUG1I/U="
},
"org/apache/logging/log4j#log4j/2.24.1": {
"pom": "sha256-+NcAm1Rl2KhT0QuEG8Bve3JnXwza71OoDprNFDMkfto="
},
"org/apache/opennlp#opennlp-maxent/3.0.3": {
"jar": "sha256-bpn6V7HzZFtJkqs8+qiySrygkhzy9XXWP8pDzYTdROY=",
"pom": "sha256-x/ai6svRgUwwxAsUTuB42E8IoKxaCRG6EacahNZrkhU="
},
"org/apache/opennlp#opennlp-tools/1.5.3": {
"jar": "sha256-Wn6uC1Rf9RfIAQRAzMQUTPz4O6rCtnohoa9mjmAi1dI=",
"pom": "sha256-PKfSTYo15l4csWmvhi1ft1YGJYNeDCjZCYGyJfVg7xY="
},
"org/apache/opennlp#opennlp-tools/1.9.2": {
"jar": "sha256-bsu7DbR7KJI2DVt392xIhC3pf0R7ohvPbc4/kSdzJFw=",
"pom": "sha256-n3Ailz1L2qp/9vwNEye8BVk+JUSawVBoCZTwGIdR3Ng="
},
"org/apache/opennlp#opennlp/1.5.3": {
"pom": "sha256-IRL2TWZGadjl1J1qcV1xBhENJSHo1QJGdcsGSjRIqUY="
},
"org/apache/opennlp#opennlp/1.9.2": {
"pom": "sha256-RZkOfPHGsy0foxwbySAgb0d1cZlx5YnsYgH4nViNNaM="
},
"org/checkerframework#checker-qual/3.43.0": {
"jar": "sha256-P7wumPBYVMPfFt+auqlVuRsVs+ysM2IyCO1kJGQO8PY=",
"module": "sha256-+BYzJyRauGJVMpSMcqkwVIzZfzTWw/6GD6auxaNNebQ=",
"pom": "sha256-kxO/U7Pv2KrKJm7qi5bjB5drZcCxZRDMbwIxn7rr7UM="
},
"org/easytesting#fest-assert/1.4": {
"jar": "sha256-ivmcsM16NXtWRAHWpc3yurvkA46wCC5amqSxmiY0JE8=",
"pom": "sha256-61ZTfeZ7zg7xCdEXPRx28kfs1HgYOCDm3oLSP2hlyG8="
},
"org/easytesting#fest-util/1.1.6": {
"jar": "sha256-34ggqSJfFYDs6do7QFtwgLS9yI1qQtJWknayyPHs3Yk=",
"pom": "sha256-A/rLiiyZC+IXonfAVvF+pUDFCSETzpbyB/MmqjdsVhw="
},
"org/easytesting#fest/1.0.8": {
"pom": "sha256-xXTKpeT5wZ9C+mW+E2N2gniRk6ZV88yChWTHgIJuMYw="
},
"org/eclipse/ee4j#project/1.0.7": {
"pom": "sha256-IFwDmkLLrjVW776wSkg+s6PPlVC9db+EJg3I8oIY8QU="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/hsqldb#hsqldb/2.0.0": {
"jar": "sha256-xzyMokOE6zykNRyPJTykObZkxJeu2KrHHLFMAzyOu3A=",
"pom": "sha256-eQ+COojM5vSYqjEnNw4oO9DGg/Z5626FYfAc+XtCtDI="
},
"org/hsqldb#hsqldb/2.7.3": {
"pom": "sha256-MIkqaFieqpQEK9nLKuD5Ud8CotwA5MRV7gLkleODJtw="
},
"org/hsqldb#hsqldb/2.7.3/jdk8": {
"jar": "sha256-EGfPoHbO0yXlSaFUfklmBxtIuzJDBVmJTH8eMpxdMVY="
},
"org/junit#junit-bom/5.10.3": {
"module": "sha256-qnlAydaDEuOdiaZShaqa9F8U2PQ02FDujZPbalbRZ7s=",
"pom": "sha256-EJN9RMQlmEy4c5Il00cS4aMUVkHKk6w/fvGG+iX2urw="
},
"org/junit#junit-bom/5.11.0": {
"module": "sha256-9+2+Z/IgQnCMQQq8VHQI5cR29An1ViNqEXkiEnSi7S0=",
"pom": "sha256-5nRZ1IgkJKxjdPQNscj0ouiJRrNAugcsgL6TKivkZE0="
},
"org/mockito#mockito-bom/4.11.0": {
"pom": "sha256-2FMadGyYj39o7V8YjN6pRQBq6pk+xd+eUk4NJ9YUkdo="
},
"org/slf4j#slf4j-api/1.6.1": {
"jar": "sha256-2EnRF/w3mIOMbNQttqfs9tmuBQw5l0F7jk4lHlkrHT4=",
"pom": "sha256-Bpujg3vfi9tIB2SPFXn9Q7wpK412pvMbFXSGfdk7ylY="
},
"org/slf4j#slf4j-api/1.7.32": {
"jar": "sha256-NiT4R0wa9G11+YvAl9eGSjI8gbOAiqQ2iabhxgHAJ74=",
"pom": "sha256-ABzeWzxrqRBwQlz+ny5pXkrri8KQotTNllMRJ6skT+U="
},
"org/slf4j#slf4j-api/2.0.16": {
"jar": "sha256-oSV43eG6AL2bgW04iguHmSjQC6s8g8JA9wE79BlsV5o=",
"pom": "sha256-saAPWxxNvmK4BdZdI5Eab3cGOInXyx6G/oOJ1hkEc/c="
},
"org/slf4j#slf4j-bom/2.0.16": {
"pom": "sha256-BWYEjsglzfKHWGIK9k2eFK44qc2HSN1vr6bfSkGUwnk="
},
"org/slf4j#slf4j-log4j12/2.0.16": {
"pom": "sha256-T3GExYF1HdXIKSP0XeIPIdpkeUPOqDdjAAKpZMZav1I="
},
"org/slf4j#slf4j-parent/1.6.1": {
"pom": "sha256-NNbnTB8WWHcbCuapekVKOtII5O26Oi1LoAVQ5vRf9wI="
},
"org/slf4j#slf4j-parent/1.7.32": {
"pom": "sha256-WrNJ0PTHvAjtDvH02ThssZQKL01vFSFQ4W277MC4PHA="
},
"org/slf4j#slf4j-parent/2.0.16": {
"pom": "sha256-CaC0zIFNcnRhbJsW1MD9mq8ezIEzNN5RMeVHJxsZguU="
},
"org/slf4j#slf4j-reload4j/2.0.16": {
"jar": "sha256-gDuJTuOmDlFsTeP3R8EwY5oFolvK8KoAuqscReDovVc=",
"pom": "sha256-FHbSw5i9vMg8K76uIDrS4Ru2lJPtdhwZ5vQkMrhQdjo="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
},
"org/springframework#spring-framework-bom/5.3.39": {
"module": "sha256-+ItA4qUDM7QLQvGB7uJyt17HXdhmbLFFvZCxW5fhg+M=",
"pom": "sha256-9tSBCT51dny6Gsfh2zj49pLL4+OHRGkzcada6yHGFIs="
},
"org/swinglabs#swing-layout/1.0.3": {
"jar": "sha256-e1Jqxfq+wenR7Gx2TmgYi99Me9lsI9kdNFBZL8SmuoU=",
"pom": "sha256-Y0y+gvGbkZWAFokJazI/xPkFM42HpcSmUgyjrTIpU34="
},
"org/testng#testng/7.5": {
"jar": "sha256-5UnbUNzEIflQHWr5M68V5PupZhdXdAnZOXJM1+GiUDM=",
"module": "sha256-WCXsJh+Oc1LSYEA6E+viOvaKcooOwnIApFDplBGX518=",
"pom": "sha256-p4skar8S970/pQc2obLXaGM3Ii5L/kEkzTWzWEsaWCE="
},
"org/testng#testng/7.5.1": {
"jar": "sha256-payS0jYsyzpQmr5o44XKgJp8lvy6+FGz7oussqyJni8=",
"module": "sha256-pOgk7jAp1HT1lymEgXw7DMaVA/MlcAwX6zHTm3+eCUk=",
"pom": "sha256-OTFZjEFunSVl2nHrFM1YNK/nVD8j+AnUXSpiTDJhthU="
},
"org/webjars#jquery/3.5.1": {
"jar": "sha256-gxaBEiIKyRKj26DuuukKTaW/HiSxuv1AHj1Pn1mLsss=",
"pom": "sha256-T7rggddIUv8pQ80GlpanmWKK5t8igotT+kVjNBBMmHg="
},
"xmlunit#xmlunit/1.6": {
"jar": "sha256-9xXOgmt9OfDj1azNfFDJHdZozh8BZIfBoW7nbPPgCnQ=",
"pom": "sha256-R7eJM5BrW1LkAVL9UYgGsUXt5jyJcDfre6GOb+N4eC4="
}
}
}
+70
View File
@@ -0,0 +1,70 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
# Gradle 8 complains about implicit task dependencies when using `installDist`.
# See https://github.com/marytts/marytts/issues/1112
gradle_7,
makeWrapper,
jdk,
nixosTests,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "marytts";
version = "5.2.1-unstable-2024-10-09";
src = fetchFromGitHub {
owner = "marytts";
repo = "marytts";
rev = "1c2aaa0751b7cef8ae83216dd78b4c61232b3840";
hash = "sha256-jGpsD6IwJ67nDLnulBn8DycXCyowssSnDCkQXBIfOH8=";
};
nativeBuildInputs = [
gradle_7
makeWrapper
];
mitmCache = gradle_7.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
# Required for the MITM cache to function
__darwinAllowLocalNetworking = true;
gradleBuildTask = "installDist";
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mv build/install/source/{lib,user-dictionaries} $out
makeWrapper ${lib.getExe jdk} $out/bin/marytts-server \
--add-flags "-cp \"$out/lib/*\"" \
--append-flags "marytts.server.Mary"
# We skip the GUI installer since frankly it is a PITA to get to work with a hardened systemd service,
# and the imperative installation paradigm is not ideal either way while using Nix.
runHook postInstall
'';
passthru.tests = lib.optionalAttrs stdenvNoCC.hostPlatform.isLinux {
nixos = nixosTests.marytts;
};
meta = {
description = "Open-source, multilingual text-to-speech synthesis system written in pure Java";
homepage = "https://marytts.github.io/";
license = lib.licenses.lgpl3Only;
inherit (jdk.meta) platforms;
maintainers = with lib.maintainers; [ pluiedev ];
mainProgram = "marytts-server";
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode # Gradle dependencies
];
};
})
+2 -2
View File
@@ -8,7 +8,7 @@
buildNimPackage (finalAttrs: {
pname = "mosdepth";
version = "0.3.9";
version = "0.3.10";
requiredNimVersion = 1;
@@ -16,7 +16,7 @@ buildNimPackage (finalAttrs: {
owner = "brentp";
repo = "mosdepth";
rev = "v${finalAttrs.version}";
hash = "sha256-vHJgIo9qO/L1lZ9DqgXVwv9Pn/6ZMOBfPsY4DEAEImI=";
hash = "sha256-RAE3k2yA2zsIr5JFYb5bPaMzdoEKms7TKaqVhPS5LzY=";
};
lockFile = ./lock.json;
+62
View File
@@ -0,0 +1,62 @@
{
stdenv,
lib,
fetchzip,
nix-update-script,
autoPatchelfHook,
libxcrypt-legacy,
}:
let
system = stdenv.hostPlatform.parsed.cpu.name;
platform = "${system}-unknown-linux-gnu";
in
stdenv.mkDerivation rec {
pname = "nav";
version = "1.2.1";
src = fetchzip {
url = "https://github.com/Jojo4GH/nav/releases/download/v${version}/nav-${platform}.tar.gz";
sha256 =
{
x86_64-linux = "sha256-ihn5wlagmujHlSfJpgojQNqa4NjLF1wk2pt8wHi60DY=";
aarch64-linux = "sha256-l3rKu3OU/TUUjmx3p06k9V5eN3ZDNcxbxObLqVQ2B7U=";
}
.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
stdenv.cc.cc.lib
libxcrypt-legacy
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp nav $out/bin
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Interactive and stylish replacement for ls & cd";
longDescription = ''
To make use of nav, add the following lines to your configuration:
`programs.bash.shellInit = "eval \"$(nav --init bash)\"";` and
`programs.zsh.shellInit = "eval \"$(nav --init zsh)\"";`
'';
homepage = "https://github.com/Jojo4GH/nav";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
David-Kopczynski
Jojo4GH
];
platforms = lib.platforms.linux;
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
mainProgram = "nav";
};
}
+2 -2
View File
@@ -13,7 +13,7 @@
}:
let
version = "23";
version = "24";
desktopItem = makeDesktopItem {
name = "netbeans";
exec = "netbeans";
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
inherit version;
src = fetchurl {
url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
hash = "sha256-UNTW0K8JlkxOKz9oO3HUBPZ4yZY7uWBkFZd2uenXtZA=";
hash = "sha256-mzmviZuyS68SZhOAzwWOdZLveOTS5UOgY1oW+oAv9Gs=";
};
buildCommand = ''
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "nhost-cli";
version = "1.28.1";
version = "1.28.2";
src = fetchFromGitHub {
owner = "nhost";
repo = "cli";
tag = "v${version}";
hash = "sha256-bktz8ummBML8y//KnAQsOzwX+OO3ntiUkw8RG3PnGXg=";
hash = "sha256-MnsF4/TCl3AwBsYkT6eMLyjKY+7WcRpXT0fl8hdP/pA=";
};
vendorHash = null;
+26 -12
View File
@@ -1,28 +1,42 @@
{ lib, stdenv, fetchFromGitea, cmake, pkg-config, ncurses, the-foundation }:
{
lib,
stdenv,
fetchFromGitea,
cmake,
pkg-config,
ncurses,
the-foundation,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation {
pname = "sealcurses";
version = "unstable-2023-02-06"; # No release yet
version = "0-unstable-2024-12-02"; # No release yet
src = fetchFromGitea {
domain = "git.skyjake.fi";
owner = "skyjake";
repo = pname;
rev = "e11026ca34b03c5ab546512f82a6f705d0c29e95";
hash = "sha256-N+Tvg2oIcfa68FC7rKuLxGgEKz1oBEEb8NGCiBuZ8y4=";
repo = "sealcurses";
rev = "310348a6b88678a47d371c7edfcc1e8c76ca1677";
hash = "sha256-SEK3w6pVrYi+h2l5RuULpORYPnm8H78lEVR01cMkku0=";
};
nativeBuildInputs = [ cmake pkg-config ];
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [ ncurses the-foundation ];
buildInputs = [
ncurses
the-foundation
];
cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];
meta = with lib; {
meta = {
description = "SDL Emulation and Adaptation Layer for Curses (ncursesw)";
homepage = "https://git.skyjake.fi/skyjake/sealcurses";
license = licenses.bsd2;
maintainers = with maintainers; [ sikmir ];
platforms = platforms.unix;
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ sikmir ];
platforms = lib.platforms.unix;
};
}
+45
View File
@@ -0,0 +1,45 @@
{
stdenv,
lib,
fetchFromGitHub,
makeWrapper,
pkg-config,
gtkmm4,
gtk4-layer-shell,
}:
stdenv.mkDerivation {
pname = "syspower";
version = "0-unstable-2024-12-10";
src = fetchFromGitHub {
owner = "System64fumo";
repo = "syspower";
rev = "323332b4d97a30360455682194ed35868fcbaf71";
hash = "sha256-obL9XUf8kONBWZoyrPvN1PWmEyQx8vMsl6KIneSjkGM=";
};
buildInputs = [
gtkmm4
gtk4-layer-shell
];
nativeBuildInputs = [
makeWrapper
pkg-config
];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
postFixup = ''
wrapProgram $out/bin/syspower --prefix LD_LIBRARY_PATH : $out/lib
'';
meta = {
description = "Simple power menu/shutdown screen for Hyprland";
homepage = "https://gihub.com/System64fumo/syspower";
license = lib.licenses.wtfpl;
maintainers = with lib.maintainers; [ justdeeevin ];
mainProgram = "syspower";
platforms = lib.platforms.linux;
};
}
+1 -1
View File
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://vtm.netxs.online/";
license = lib.licenses.mit;
mainProgram = "vtm";
maintainers = with lib.maintainers; [ ahuzik ];
maintainers = with lib.maintainers; [ ];
platforms = lib.platforms.all;
};
})
+4 -4
View File
@@ -7,16 +7,16 @@
buildGoModule {
pname = "zoekt";
version = "3.7.2-2-unstable-2024-10-24";
version = "3.7.2-2-unstable-2024-12-09";
src = fetchFromGitHub {
owner = "sourcegraph";
repo = "zoekt";
rev = "bfd8ee868c4c3fe509fa0fd4f2b8c68d84805ff9";
hash = "sha256-hoKMD/nTX0r2PEM0qRhAQFXM45UhDztwK0epL2EIMY8=";
rev = "37c4df87f75cb0de7b71181301e0f6df6aa9ade6";
hash = "sha256-pH21Kz/qMs7Cy1nKoaWOzUt6W9jBYtmgIiF6GIcdwsg=";
};
vendorHash = "sha256-QZysaEBZ1/ISPRkUPr6UIEUlWv/aHEwk8B/wxaYe7zU=";
vendorHash = "sha256-Dvs8XMOxZEE9moA8aCxuxg947+x/6C8cKtgdcByL4Eo=";
nativeCheckInputs = [
git
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "dde-application-manager";
version = "1.2.15";
version = "1.2.19";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
hash = "sha256-9WKKM3SAMgW+UL0DnzDFqA+HHi7euF/yyTyKSbrIgV4=";
hash = "sha256-KUwX7oilV562WDxkBhTQhwz2lgcQIYwkmRRglWj0zh8=";
};
nativeBuildInputs = [
@@ -13,13 +13,13 @@
stdenv.mkDerivation rec {
pname = "dde-launchpad";
version = "1.0.2";
version = "1.0.8";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
hash = "sha256-kczdSd9+ZmMZQ2fWg3SRW+CS/aWktYLz/H+Ky81TwVM=";
hash = "sha256-2arO1WSILY5TVPBvdyhttssddwhMYIBcCGq/pW/DnB0=";
};
nativeBuildInputs = [
@@ -13,26 +13,27 @@
qt6integration,
qt6platform-plugins,
dde-tray-loader,
dde-application-manager,
wayland,
wayland-protocols,
treeland-protocols,
yaml-cpp,
xorg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dde-shell";
version = "1.0.2";
version = "1.0.9";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = "dde-shell";
rev = finalAttrs.version;
hash = "sha256-I3z6HL1h3qmLfOrwhyLhtSz3og4kHcAdlHJx4+SgPRo=";
hash = "sha256-Gko1fFut5zWH/L6X5hEe5OZBjRIbKWIrrjjhh2wrsCg=";
};
patches = [
./fix-path-for-nixos.diff
./fix-dock-can-not-show-with-qt6_8.diff
];
postPatch = ''
@@ -56,6 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
dde-tray-loader
dde-application-manager
dtk6declarative
dtk6widget
dde-qt-dbus-factory
@@ -66,6 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
qt6integration
wayland
wayland-protocols
treeland-protocols
yaml-cpp
xorg.libXcursor
xorg.libXres
@@ -1,20 +0,0 @@
diff --git a/panels/dock/OverflowContainer.qml b/panels/dock/OverflowContainer.qml
index 74ca966..312f2a0 100644
--- a/panels/dock/OverflowContainer.qml
+++ b/panels/dock/OverflowContainer.qml
@@ -52,13 +52,13 @@ Item {
for (let child of listView.contentItem.visibleChildren) {
width = calculateImplicitWidth(width, child.implicitWidth)
}
- return width
+ return Math.max(width, 1)
}
implicitHeight: {
let height = 0
for (let child of listView.contentItem.visibleChildren) {
height = calculateImplicitHeight(height, child.implicitHeight)
}
- return height
+ return Math.max(height, 1)
}
}
@@ -18,13 +18,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dde-tray-loader";
version = "1.0.1";
version = "1.0.7";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = "dde-tray-loader";
rev = finalAttrs.version;
hash = "sha256-FEvoVgwzDYN23TJxu1kRSMSbS4hELYFFByxOsEO9JKE=";
hash = "sha256-LzRjOl3kHArpxwerh7XOisYIJ+t+r/zWUbvYh6k6zKw=";
};
patches = [
+1
View File
@@ -39,6 +39,7 @@ let
qt6platform-plugins = callPackage ./library/qt6platform-plugins { };
qt6integration = callPackage ./library/qt6integration { };
qt6mpris = callPackage ./library/qt6mpris { };
treeland-protocols = callPackage ./library/treeland-protocols { };
#### CORE
deepin-kwin = callPackage ./core/deepin-kwin { };
@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
doxygen,
@@ -15,23 +14,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dtk6core";
version = "6.0.19";
version = "6.0.24";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = "dtk6core";
rev = finalAttrs.version;
hash = "sha256-3MwvTnjtVVcMjQa1f4UdagEtWhJj8aDgfUlmnGo/R7s=";
hash = "sha256-51TvPQy0b/8kkBs0e3q1B53mEAKHpAYPBla4h1k616c=";
};
patches = [
./fix-pkgconfig-path.patch
./fix-pri-path.patch
(fetchpatch {
name = "fix-build-on-qt-6.8.patch";
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/dtk6core/-/raw/d2e991f96b2940e8533b7e944bab5a7dd6aa0fb7/qt-6.8.patch";
hash = "sha256-HZxUrtUmVwnNUwcBoU7ewb+McsRkALQglPBbJU8HTkk=";
})
];
postPatch = ''
@@ -11,19 +11,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dtk6declarative";
version = "6.0.19";
version = "6.0.24";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = "dtk6declarative";
rev = finalAttrs.version;
hash = "sha256-BxWPLJeuQDbNg4UoyHD/VAMV2QFWDjWZiFx5JOEmLxg=";
hash = "sha256-i6gkVWs6CQC6i6H6lfrWNYT76fFBc8ECZ1ePvXQ7j8E=";
};
patches = [
./fix-pkgconfig-path.patch
./fix-pri-path.patch
./fix-build-on-qt-6.8.patch
];
nativeBuildInputs = [
@@ -1,135 +0,0 @@
diff --git a/qt6/src/CMakeLists.txt b/qt6/src/CMakeLists.txt
index 4314b72..a7ecaf1 100644
--- a/qt6/src/CMakeLists.txt
+++ b/qt6/src/CMakeLists.txt
@@ -25,6 +25,7 @@ dtk_extend_target(${PLUGIN_NAME} EnableCov ${ENABLE_COV})
qt_add_translations(${LIB_NAME}
TS_FILES ${TS_FILES}
QM_FILES_OUTPUT_VARIABLE QM_FILES
+ IMMEDIATE_CALL
)
set_target_properties(${LIB_NAME} PROPERTIES
diff --git a/src/private/dbackdropnode.cpp b/src/private/dbackdropnode.cpp
index 91c398a..1ed0ad8 100644
--- a/src/private/dbackdropnode.cpp
+++ b/src/private/dbackdropnode.cpp
@@ -320,8 +320,8 @@ public:
renderer->setDevicePixelRatio(base->devicePixelRatio());
renderer->setDeviceRect(base->deviceRect());
renderer->setViewportRect(base->viewportRect());
- renderer->setProjectionMatrix(base->projectionMatrix());
- renderer->setProjectionMatrixWithNativeNDC(base->projectionMatrixWithNativeNDC());
+ renderer->setProjectionMatrix(base->projectionMatrix(0));
+ renderer->setProjectionMatrixWithNativeNDC(base->projectionMatrixWithNativeNDC(0));
} else {
renderer->setDevicePixelRatio(1.0);
renderer->setDeviceRect(QRect(QPoint(0, 0), pixelSize));
@@ -336,8 +336,8 @@ public:
}
if (Q_UNLIKELY(!matrix.isIdentity())) {
- renderer->setProjectionMatrix(renderer->projectionMatrix() * matrix);
- renderer->setProjectionMatrixWithNativeNDC(renderer->projectionMatrixWithNativeNDC() * matrix);
+ renderer->setProjectionMatrix(renderer->projectionMatrix(0) * matrix);
+ renderer->setProjectionMatrixWithNativeNDC(renderer->projectionMatrixWithNativeNDC(0) * matrix);
}
renderer->setRootNode(rootNode);
diff --git a/src/private/dmaskeffectnode.cpp b/src/private/dmaskeffectnode.cpp
index c4db07d..da1e4ce 100644
--- a/src/private/dmaskeffectnode.cpp
+++ b/src/private/dmaskeffectnode.cpp
@@ -35,7 +35,7 @@ protected:
class OpaqueTextureMaterialShader : public QSGOpaqueTextureMaterialRhiShader
{
public:
- OpaqueTextureMaterialShader();
+ OpaqueTextureMaterialShader(int viewCount);
bool updateUniformData(RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) override;
@@ -48,7 +48,7 @@ public:
class TextureMaterialShader : public OpaqueTextureMaterialShader
{
public:
- TextureMaterialShader();
+ TextureMaterialShader(int viewCount);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *oldEffect) override;
@@ -61,7 +61,8 @@ protected:
#endif
};
-OpaqueTextureMaterialShader::OpaqueTextureMaterialShader()
+OpaqueTextureMaterialShader::OpaqueTextureMaterialShader(int viewCount)
+ : QSGOpaqueTextureMaterialRhiShader(viewCount)
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
#if QT_CONFIG(opengl)
@@ -236,8 +237,8 @@ bool OpaqueTextureMaterialShader::updateGraphicsPipelineState(RenderState &state
}
#endif
-TextureMaterialShader::TextureMaterialShader()
- : OpaqueTextureMaterialShader()
+TextureMaterialShader::TextureMaterialShader(int viewCount)
+ : OpaqueTextureMaterialShader(viewCount)
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // TODO qt6
#if QT_CONFIG(opengl)
@@ -529,7 +530,7 @@ QSGMaterialShader *TextureMaterial::createShader() const
QSGMaterialShader *TextureMaterial::createShader(QSGRendererInterface::RenderMode renderMode) const
{
Q_UNUSED(renderMode)
- return new TextureMaterialShader;
+ return new TextureMaterialShader(viewCount());
}
#endif
@@ -553,7 +554,7 @@ QSGMaterialShader *OpaqueTextureMaterial::createShader() const
QSGMaterialShader *OpaqueTextureMaterial::createShader(QSGRendererInterface::RenderMode renderMode) const
{
Q_UNUSED(renderMode)
- return new OpaqueTextureMaterialShader;
+ return new OpaqueTextureMaterialShader(viewCount());
}
#endif
diff --git a/src/private/drectanglenode.cpp b/src/private/drectanglenode.cpp
index efeeab6..b961588 100644
--- a/src/private/drectanglenode.cpp
+++ b/src/private/drectanglenode.cpp
@@ -72,7 +72,8 @@ void CornerColorShader::initialize()
m_idQtOpacity = program->uniformLocation("qt_Opacity");
}
#else
-CornerColorShader::CornerColorShader()
+CornerColorShader::CornerColorShader(int viewCount)
+ : QSGOpaqueTextureMaterialRhiShader(viewCount)
{
setShaderFileName(QSGMaterialShader::VertexStage, QStringLiteral(":/dtk/declarative/shaders_ng/cornerscolorshader.vert.qsb"));
setShaderFileName(QSGMaterialShader::FragmentStage, QStringLiteral(":/dtk/declarative/shaders_ng/cornerscolorshader.frag.qsb"));
@@ -128,7 +129,7 @@ QSGMaterialShader *CornerColorMaterial::createShader() const
QSGMaterialShader *CornerColorMaterial::createShader(QSGRendererInterface::RenderMode renderMode) const
{
Q_UNUSED(renderMode)
- return new CornerColorShader;
+ return new CornerColorShader(viewCount());
}
#endif
diff --git a/src/private/drectanglenode_p.h b/src/private/drectanglenode_p.h
index aee5a7c..7962154 100644
--- a/src/private/drectanglenode_p.h
+++ b/src/private/drectanglenode_p.h
@@ -37,7 +37,7 @@ private:
class CornerColorShader : public QSGOpaqueTextureMaterialRhiShader
{
public:
- CornerColorShader();
+ CornerColorShader(int viewCount);
bool updateUniformData(RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial);
};
#endif
@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
doxygen,
@@ -13,23 +12,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dtk6gui";
version = "6.0.19";
version = "6.0.24";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = "dtk6gui";
rev = finalAttrs.version;
hash = "sha256-nqwkBMcCQiW4iqYhceTaSNNxoR5tvCNfjKUVVHkzN3A=";
hash = "sha256-Ybi68lTSUJpAipx92JF7wj6y+GTYDodJKRCVFhfnBvQ=";
};
patches = [
./fix-pkgconfig-path.patch
./fix-pri-path.patch
(fetchpatch {
name = "fix-build-on-qt-6.8.patch";
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/dtk6gui/-/raw/b6b8521fd69c28dbca5f6e8d1d8258c904b6caf1/qt-6.8.patch";
hash = "sha256-Fu5vwvKJGMW94JYoIPvDCeXs8WrAskQlVRX/3FYQFGY=";
})
];
postPatch = ''
@@ -47,6 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
qt6Packages.qtbase
qt6Packages.qtwayland
librsvg
];
@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
cmake,
pkg-config,
doxygen,
@@ -14,23 +13,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dtk6widget";
version = "6.0.19";
version = "6.0.24";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = "dtk6widget";
rev = finalAttrs.version;
hash = "sha256-VlFzecX76RMNSBpnMc9HwMPZ5z3zzzkcVcNlGKSShyA=";
hash = "sha256-aDuLybIEzF8ATzH6vkN2SS/yn1eAc2WooNZxeQyH2QM=";
};
patches = [
./fix-pkgconfig-path.patch
./fix-pri-path.patch
(fetchpatch {
name = "fix-build-on-qt-6.8.patch";
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/dtk6widget/-/raw/c4ac094715daa4ec319dc4d55bbca9d818845f82/qt-6.8.patch";
hash = "sha256-XEgtAV0mF1+C26wCaukjuv4WNbP4ISGgXt/eav7h9ko=";
})
];
postPatch = ''
@@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "qt6integration";
version = "6.0.19";
version = "6.0.24";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
hash = "sha256-RVhAuEthrTE1QkRIKmBK4VM86frgAqLMJL31F11H8R8=";
hash = "sha256-J0HKtxnQCizHFf2VR9srS/CxWqAkczia7kDWxvGzKsw=";
};
nativeBuildInputs = [
@@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "qt6platform-plugins";
version = "6.0.19";
version = "6.0.24";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
hash = "sha256-aHqm+WKZLoUymiMFfrF3jgWrxgq51d6yTXWiOMsFgiQ=";
hash = "sha256-Ih3VlEv2hl8y/Cc5uI8gQFgIVvcCaHUhHAudNOSqfs4=";
};
postUnpack = ''
@@ -0,0 +1,34 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "treeland-protocols";
version = "0.4.5";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
hash = "sha256-SS4jnfr/9Ec3qpnHS4EjQViekBRMix5oz7b9qhNZpfY=";
};
nativeBuildInputs = [
cmake
];
meta = {
description = "Wayland protocol extensions for treeland";
homepage = "https://github.com/linuxdeepin/treeland-protocols";
license = with lib.licenses; [
gpl3Only
lgpl3Only
asl20
];
platforms = lib.platforms.linux;
maintainers = lib.teams.deepin.members;
};
}
@@ -4,7 +4,7 @@ mkCoqDerivation rec {
pname = "coq-ext-lib";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.coq-version [
{ case = range "8.14" "8.20"; out = "0.12.2"; }
{ case = range "8.14" "8.20"; out = "0.13.0"; }
{ case = range "8.11" "8.19"; out = "0.12.0"; }
{ case = range "8.8" "8.16"; out = "0.11.6"; }
{ case = range "8.8" "8.14"; out = "0.11.4"; }
@@ -13,6 +13,7 @@ mkCoqDerivation rec {
{ case = "8.6"; out = "0.9.5"; }
{ case = "8.5"; out = "0.9.4"; }
] null;
release."0.13.0".sha256 = "sha256-vqVSu+nyGjRVXe2tnE6MPl0kcg4LHfgFwRCpTQAP/is=";
release."0.12.2".sha256 = "sha256-lSTlbpkSuAY6B9cqofXSlDk2VchtqfZpRQ0+y/BAbEY=";
release."0.12.1".sha256 = "sha256-YIHyiRUHPy/LGM2DMTRKRwP7j6OSBYKpu6wO2mZOubo=";
release."0.12.0".sha256 = "sha256-9szpnWoS83bDc+iLqElfgz0LNRo9hSRQwUFIgpTca4c=";
@@ -8,7 +8,8 @@
, ppxlib, ppx_deriving
, ppxlib_0_15, ppx_deriving_0_15
, coqPackages
, version ? if lib.versionAtLeast ocaml.version "4.08" then "1.20.0"
, version ? if lib.versionAtLeast ocaml.version "4.13" then "2.0.5"
else if lib.versionAtLeast ocaml.version "4.08" then "1.20.0"
else "1.15.2"
}:
@@ -16,6 +17,7 @@ let p5 = camlp5; in
let camlp5 = p5.override { legacy = true; }; in
let fetched = coqPackages.metaFetch ({
release."2.0.5".sha256 = "sha256-cHgERFqrfSg5WtUX3UxR6L+QkzS7+t6n4V+wweiEacc=";
release."1.20.0".sha256 = "sha256-lctZAIQgOg5d+LfILtWsBVcsemV3zTZYfJfDlCxHtcA=";
release."1.19.2".sha256 = "sha256-dBj5Ek7PWq/8Btq/dggJUqa8cUtfvbi6EWo/lJEDOU4=";
release."1.18.2".sha256 = "sha256-usOYukHQ/h4YBxlhYrAkMTVjNm97hq4IArI9bvDzy/k=";
@@ -359,7 +359,7 @@
buildPythonPackage rec {
pname = "boto3-stubs";
version = "1.35.76";
version = "1.35.78";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -367,7 +367,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "boto3_stubs";
inherit version;
hash = "sha256-MhCbagyXIL98LjiWVUecbatO4zxiLizydGyeXsUnuuM=";
hash = "sha256-XQI88fzHI9/bopZT4K2bmTOYXIE6JbwhgH4h6rgeIbQ=";
};
build-system = [ setuptools ];
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "botocore-stubs";
version = "1.35.76";
version = "1.35.78";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "botocore_stubs";
inherit version;
hash = "sha256-yXegSUgdUKFL8tsO8VAgt2c0/2KNS44Od7jRxlMYNp4=";
hash = "sha256-TLXB/KMwSKKvyiACcZqNaW9wUatPDvX17pbfeq92oFU=";
};
nativeBuildInputs = [ setuptools ];
@@ -11,15 +11,19 @@
websockets,
}:
buildPythonPackage rec {
pname = "elevenlabs";
let
version = "1.9.0";
tag = version;
in
buildPythonPackage {
pname = "elevenlabs";
inherit version;
pyproject = true;
src = fetchFromGitHub {
owner = "elevenlabs";
repo = "elevenlabs-python";
rev = "refs/tags/${version}";
inherit tag;
hash = "sha256-0fkt2Z05l95b2S+xoyyy9VGAUZDI1SM8kdcP1PCrUg8=";
};
@@ -40,7 +44,7 @@ buildPythonPackage rec {
doCheck = false;
meta = {
changelog = "https://github.com/elevenlabs/elevenlabs-python/releases/tag/v${version}";
changelog = "https://github.com/elevenlabs/elevenlabs-python/releases/tag/${tag}";
description = "Official Python API for ElevenLabs Text to Speech";
homepage = "https://github.com/elevenlabs/elevenlabs-python";
license = lib.licenses.mit;
@@ -0,0 +1,80 @@
{
lib,
aiolimiter,
azure-identity,
azure-storage-blob,
buildPythonPackage,
fetchPypi,
hatchling,
httpx,
json-repair,
openai,
pydantic,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
tenacity,
tiktoken,
}:
buildPythonPackage rec {
pname = "fnllm";
version = "0.0.11";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchPypi {
inherit pname version;
hash = "sha256-EiCP+HyipL6mpmjb3wjXUr+VRJ9ZO9qsegppNM7gVEk=";
};
build-system = [ hatchling ];
dependencies = [
aiolimiter
httpx
json-repair
pydantic
tenacity
];
optional-dependencies = {
azure = [
azure-identity
azure-storage-blob
];
openai = [
openai
tiktoken
];
};
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
] ++ lib.flatten (builtins.attrValues optional-dependencies);
pythonImportsCheck = [ "fnllm" ];
disabledTests = [
# Tests require network access
"chat"
"embeddings"
"rate_limited"
"test_default_operations"
"test_estimate_request_tokens"
"test_replace_value"
];
disabledTestPaths = [
"tests/unit/caching/test_blob.py"
];
meta = {
description = "A function-based LLM protocol and wrapper";
homepage = "https://github.com/microsoft/essex-toolkit/tree/main/python/fnllm";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -12,6 +12,7 @@
datashaper,
devtools,
environs,
fnllm,
graspologic,
json-repair,
lancedb,
@@ -39,14 +40,14 @@
buildPythonPackage rec {
pname = "graphrag";
version = "0.5.0";
version = "0.9.0";
pyproject = true;
src = fetchFromGitHub {
owner = "microsoft";
repo = "graphrag";
rev = "refs/tags/v${version}";
hash = "sha256-QK6ZdBDSSKi/WUsDQeEY5JfxgsmW/vK7yDfjMseAO/k=";
hash = "sha256-LD7cfea8uyCYVMhsHXQBHho7jiwEmlqYrrfZs/7oeyc=";
};
build-system = [
@@ -65,6 +66,7 @@ buildPythonPackage rec {
datashaper
devtools
environs
fnllm
graspologic
json-repair
lancedb
@@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "hahomematic";
version = "2024.12.0";
version = "2024.12.2";
pyproject = true;
disabled = pythonOlder "3.12";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "danielperna84";
repo = "hahomematic";
rev = "refs/tags/${version}";
hash = "sha256-RLgJiapsRM8dMA4+T2S6DkSFjo+YBmVVpo1mOVKJ7EI=";
hash = "sha256-pQiOi6uJcfeBOPmL9MksHLqnemHD9Qk6e7QTI9J3NCc=";
};
__darwinAllowLocalNetworking = true;
@@ -4,29 +4,29 @@
buildPythonPackage,
deprecated,
fetchFromGitHub,
hatchling,
pytest-mock,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "headerparser";
version = "0.5.1";
version = "0.5.2";
pyproject = true;
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "jwodder";
repo = "headerparser";
rev = "refs/tags/v${version}";
hash = "sha256-CWXha7BYVO5JFuhWP8OZ95fhUsZ3Jo0cgPAM+O5bfec=";
hash = "sha256-fn9Nlazte6r5JMmp9ynq0qmkLEoJGv8witgZlD7zJNM=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ hatchling ];
propagatedBuildInputs = [
dependencies = [
attrs
deprecated
];
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "heatzypy";
version = "2.5.5";
version = "2.5.6";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "Cyr-ius";
repo = "heatzypy";
rev = "refs/tags/${version}";
hash = "sha256-S1wIVeUTbtF5omImt38YNvZEutyCEYMGExccs0FIK44=";
hash = "sha256-+iT3lE54xt7usz9v9JZqwQa0Xf1eLlN5VuQrjzmWo6Y=";
};
build-system = [
@@ -17,14 +17,14 @@
buildPythonPackage rec {
pname = "msmart-ng";
version = "2024.9.0";
version = "2024.12.0";
pyproject = true;
src = fetchFromGitHub {
owner = "mill1000";
repo = "midea-msmart";
rev = version;
hash = "sha256-djo+sINurnrt0GO8045bgNstjh+yl+CE2GJ1vWivAqY=";
hash = "sha256-0Eh7QgR3IbTVa4kZ/7mtdmghFJLKOHpUawjMAoVuNoo=";
};
build-system = [
@@ -0,0 +1,49 @@
{
lib,
aiohttp,
buildPythonPackage,
fetchFromGitHub,
pytest-asyncio,
pytestCheckHook,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "pyituran";
version = "0.1.4";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "shmuelzon";
repo = "pyituran";
rev = "refs/tags/${version}";
hash = "sha256-rgPW+z70Z9wRzPbPtWUHb80vCccWJlEs18Y6llIeipo=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'os.environ["VERSION"]' '"${version}"'
'';
build-system = [ setuptools ];
dependencies = [ aiohttp ];
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "pyituran" ];
meta = {
description = "Module to interact with the Ituran web service";
homepage = "https://github.com/shmuelzon/pyituran";
changelog = "https://github.com/shmuelzon/pyituran/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}
@@ -21,7 +21,7 @@
buildPythonPackage rec {
pname = "wled";
version = "0.20.2";
version = "0.21.0";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "frenck";
repo = "python-wled";
rev = "refs/tags/v${version}";
hash = "sha256-7P/V83dGkfJJjZxZtiEwQXIY7CeBZ/fmvTdEjDirKj0=";
hash = "sha256-yJ7tiJWSOpkkLwKXo4lYlDrp1FEJ/cGoDaXJamY4ARg=";
};
postPatch = ''
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "xknx";
version = "3.3.0";
version = "3.4.0";
pyproject = true;
disabled = pythonOlder "3.10";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "XKNX";
repo = "xknx";
rev = "refs/tags/${version}";
hash = "sha256-FLGOY7IUdLvRbwSWUYbJl0VzOCJVwiG+2C+CjFAqI6g=";
hash = "sha256-nCFIP4ZeO4pRmyh2BdE86Dg/0zKYR3izcc2MOzVC4/g=";
};
build-system = [ setuptools ];
@@ -176,6 +176,5 @@ buildPythonApplication rec {
changelog = "https://github.com/buildbot/buildbot/releases/tag/v${version}";
maintainers = teams.buildbot.members;
license = licenses.gpl2Only;
broken = stdenv.hostPlatform.isDarwin;
};
}
@@ -56,6 +56,5 @@ buildPythonPackage ({
description = "Buildbot Worker Daemon";
maintainers = teams.buildbot.members;
license = licenses.gpl2;
broken = stdenv.hostPlatform.isDarwin; # https://hydra.nixos.org/build/243534318/nixlog/6
};
})
+2 -2
View File
@@ -18,9 +18,9 @@ callPackage ./generic.nix args {
# This is a fixed version to the 2.1.x series, move only
# if the 2.1.x series moves.
version = "2.1.15";
version = "2.1.16";
hash = "sha256-zFO8fMbirEOrn5W57rAN7IWY6EIXG8jDXqhP7BWJyiY=";
hash = "sha256-egs7paAOdbRAJH4QwIjlK3jAL/le51kDQrdW4deHfAI=";
tests = {
inherit (nixosTests.zfs) series_2_1;
+3 -3
View File
@@ -15,10 +15,10 @@ callPackage ./generic.nix args {
# this attribute is the correct one for this package.
kernelModuleAttribute = "zfs_2_2";
# check the release notes for compatible kernels
kernelCompatible = kernel: kernel.kernelOlder "6.11";
kernelCompatible = kernel: kernel.kernelOlder "6.13";
# this package should point to the latest release.
version = "2.2.6";
version = "2.2.7";
tests = {
inherit (nixosTests.zfs) installer series_2_2;
@@ -29,5 +29,5 @@ callPackage ./generic.nix args {
amarshall
];
hash = "sha256-wkgoYg6uQOHVq8a9sJXzO/QXJ6q28l7JXWkC+BFvOb0=";
hash = "sha256-nFOB0/7YK4e8ODoW9A+RQDkZHG/isp2EBOE48zTaMP4=";
}
@@ -1,19 +1,31 @@
#!/usr/bin/env python3
import argparse
import json
import os
import sys
import importlib_metadata
import importlib.metadata
from typing import Dict, List
from packaging.requirements import InvalidRequirement, Requirement
def error(msg: str, ret: bool = False) -> None:
def error(msg: str, ret: bool = False) -> bool:
print(f" - {msg}", file=sys.stderr)
return ret
def check_requirement(req: str):
def check_derivation_name(manifest: Dict) -> bool:
derivation_domain = os.environ.get("domain")
manifest_domain = manifest["domain"]
if derivation_domain != manifest_domain:
return error(
f"Derivation attribute domain ({derivation_domain}) should match manifest domain ({manifest_domain})"
)
return True
def test_requirement(req: str, ignore_version_requirement: List[str]) -> bool:
# https://packaging.pypa.io/en/stable/requirements.html
try:
requirement = Requirement(req)
@@ -21,44 +33,55 @@ def check_requirement(req: str):
return error(f"{req} could not be parsed", ret=True)
try:
version = importlib_metadata.distribution(requirement.name).version
except importlib_metadata.PackageNotFoundError:
return error(f"{requirement.name}{requirement.specifier} not present")
version = importlib.metadata.distribution(requirement.name).version
except importlib.metadata.PackageNotFoundError:
return error(f"{requirement.name}{requirement.specifier} not installed")
# https://packaging.pypa.io/en/stable/specifiers.html
if version not in requirement.specifier:
if (
requirement.name not in ignore_version_requirement
and version not in requirement.specifier
):
return error(
f"{requirement.name}{requirement.specifier} expected, but got {version}"
f"{requirement.name}{requirement.specifier} not satisfied by version {version}"
)
return True
def check_manifest(manifest_file: str):
with open(manifest_file) as fd:
manifest = json.load(fd)
def check_requirements(manifest: Dict, ignore_version_requirement: List[str]):
ok = True
derivation_domain = os.environ.get("domain")
manifest_domain = manifest["domain"]
if derivation_domain != manifest_domain:
ok = False
error(
f"Derivation attribute domain ({derivation_domain}) must match manifest domain ({manifest_domain})"
)
for requirement in manifest.get("requirements", []):
ok &= test_requirement(requirement, ignore_version_requirement)
if "requirements" in manifest:
for requirement in manifest["requirements"]:
ok &= check_requirement(requirement)
return ok
def main(args):
ok = True
manifests = []
for fd in args.manifests:
manifests.append(json.load(fd))
# At least one manifest should match the component name
ok &= any(check_derivation_name(manifest) for manifest in manifests)
# All requirements need to match, use `ignoreRequirementVersion` to ignore too strict version constraints
ok &= all(
check_requirements(manifest, args.ignore_version_requirement)
for manifest in manifests
)
if not ok:
error("Manifest check failed.")
sys.exit(1)
if __name__ == "__main__":
if len(sys.argv) < 2:
raise RuntimeError(f"Usage {sys.argv[0]} <manifest>")
manifest_file = sys.argv[1]
check_manifest(manifest_file)
parser = argparse.ArgumentParser()
parser.add_argument("manifests", type=argparse.FileType("r"), nargs="+")
parser.add_argument("--ignore-version-requirement", action="append", default=[])
args = parser.parse_args()
main(args)
@@ -1,5 +1,4 @@
{
lib,
home-assistant,
makeSetupHook,
}:
@@ -21,16 +20,27 @@ in
home-assistant.python.pkgs.buildPythonPackage (
{
pname = "${owner}/${domain}";
inherit format;
inherit version format;
buildPhase = ''
true
'';
installPhase = ''
runHook preInstall
mkdir $out
cp -r ./custom_components/ $out/
if [[ -f ./manifest.json ]]; then
mkdir $out/custom_components
cp -R $(realpath .) $out/custom_components/
else
cp -r ./custom_components/ $out/
fi
# optionally copy sentences, if they exist
cp -r ./custom_sentences/ $out/ || true
if [[ -d ./custom_sentences ]]; then
cp -r ./custom_sentences/ $out/
fi
runHook postInstall
'';
@@ -38,7 +48,6 @@ home-assistant.python.pkgs.buildPythonPackage (
nativeCheckInputs =
with home-assistant.python.pkgs;
[
importlib-metadata
manifestRequirementsCheckHook
packaging
]
@@ -4,7 +4,7 @@
}:
makeSetupHook {
name = "manifest-requirements-check-hook";
name = "manifest-check-hook";
substitutions = {
pythonCheckInterpreter = python.interpreter;
checkManifest = ./check_manifest.py;
@@ -1,17 +1,28 @@
# shellcheck shell=bash
# Setup hook to check HA manifest requirements
echo "Sourcing manifest-requirements-check-hook"
echo "Sourcing manifest-check-hook"
function manifestCheckPhase() {
echo "Executing manifestCheckPhase"
runHook preCheck
manifests=$(shopt -s nullglob; echo $out/custom_components/*/manifest.json)
args=""
# shellcheck disable=SC2154
for package in "${ignoreVersionRequirement[@]}"; do
args+=" --ignore-version-requirement ${package}"
done
if [ ! -z "$manifests" ]; then
echo Checking manifests $manifests
@pythonCheckInterpreter@ @checkManifest@ $manifests
readarray -d '' manifests < <(find . -type f -name "manifest.json" -print0)
if [ "${#manifests[@]}" -gt 0 ]; then
# shellcheck disable=SC2068
echo Checking manifests ${manifests[@]}
# shellcheck disable=SC2068,SC2086
@pythonCheckInterpreter@ @checkManifest@ ${manifests[@]} $args
else
echo "No custom component manifests found in $out" >&2
# shellcheck disable=SC2154
echo "No component manifests found in $out" >&2
exit 1
fi
@@ -8,7 +8,7 @@ It builds upon `buildPythonPackage` but uses a custom install and check
phase.
Python runtime dependencies can be directly consumed as unqualified
function arguments. Pass them into `propagatedBuildInputs`, for them to
function arguments. Pass them into `dependencies`, for them to
be available to Home Assistant.
Out-of-tree components need to use Python packages from
@@ -31,7 +31,7 @@ buildHomeAssistantComponent {
# owner, repo, rev, hash
};
propagatedBuildInputs = [
dependencies = [
# python requirements, as specified in manifest.json
];
@@ -72,3 +72,21 @@ and manifest agree about the domain name.
There shouldn't be a need to disable this hook, but you can set
`dontCheckManifest` to `true` in the derivation to achieve that.
### Too narrow version constraints
Every once in a while a dependency constraint is more narrow than it
needs to be. Instead of applying brittle substitions the version constraint
can be ignored on a per requirement basis.
```nix
dependencies = [
pyemvue
];
# don't check the version constraint of pyemvue
ignoreVersionRequirement = [
"pyemvue"
];
```
`
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-Yq8mKk2j2CHyHvwyej0GeFQhuy1MFXwt0o+lDOGwrBU=";
};
propagatedBuildInputs = [
dependencies = [
ulid-transform
];
@@ -7,20 +7,19 @@
buildHomeAssistantComponent rec {
owner = "nielsfaber";
domain = "alarmo";
version = "1.10.4";
postInstall = ''
cd $out/custom_components/alarmo/frontend
ls . | grep -v dist | xargs rm -rf
'';
version = "1.10.7";
src = fetchFromGitHub {
owner = "nielsfaber";
repo = "alarmo";
rev = "refs/tags/v${version}";
hash = "sha256-/hNzGPckLHUX0mrBF3ugAXstrOc1mWdati+nRJCwldc=";
hash = "sha256-EFR8GveMNpwhrIA0nP+Ny3YUTHAOFw+IF72hH1+wMSM=";
};
postPatch = ''
find ./custom_components/alarmo/frontend -mindepth 1 -maxdepth 1 ! -name "dist" -exec rm -rf {} \;
'';
meta = with lib; {
changelog = "https://github.com/nielsfaber/alarmo/releases/tag/v${version}";
description = "Alarm System for Home Assistant";
@@ -7,19 +7,17 @@
buildHomeAssistantComponent rec {
owner = "BeryJu";
domain = "auth_header";
version = "1.10-unstable-2024-02-26";
version = "1.11";
src = fetchFromGitHub {
inherit owner;
repo = "hass-auth-header";
rev = "5923cb33b57a9d3c23513d54cc74b02ebd243409";
hash = "sha256-ZYd1EduzoljaY3OnpjsKEAwtf03435zJmZtgqzbdjjA=";
tag = "v${version}";
hash = "sha256-N2jEFyb/OWsO48rAuQBDHtQ5yKfIrGTcwlEb2P3LyVc=";
};
# build step just runs linter
dontBuild = true;
meta = with lib; {
changelog = "https://github.com/BeryJu/hass-auth-header/releases/tag/v${version}";
description = "Home Assistant custom component which allows you to delegate authentication to a reverse proxy";
homepage = "https://github.com/BeryJu/hass-auth-header";
maintainers = with maintainers; [ mjm ];
@@ -7,16 +7,21 @@
buildHomeAssistantComponent rec {
owner = "Limych";
domain = "average";
version = "2.3.4";
version = "2.4.0";
src = fetchFromGitHub {
inherit owner;
repo = "ha-average";
rev = version;
hash = "sha256-PfN2F1/ScVScXfh5jKQDZ6rK4XlqD9+YW8k4f4i3bk0=";
tag = version;
hash = "sha256-LISGpgfoVxdOeJ9LHzxf7zt49pbIJrLiPkNg/Mf1lxM=";
};
postPatch = ''
sed -i "/pip>=/d" custom_components/average/manifest.json
'';
meta = with lib; {
changelog = "https://github.com/Limych/ha-average/releases/tag/${version}";
description = "Average Sensor for Home Assistant";
homepage = "https://github.com/Limych/ha-average";
maintainers = with maintainers; [ matthiasbeyer ];
@@ -8,16 +8,17 @@
buildHomeAssistantComponent rec {
owner = "10der";
domain = "awtrix";
version = "unstable-2024-05-26";
version = "0.3.21";
src = fetchFromGitHub {
inherit owner;
repo = "homeassistant-custom_components-awtrix";
rev = "329d8eec28478574b9f34778f96b5768f30be2ab";
hash = "sha256-ucSaQWMS6ZwXHnw5Ct/STxpl1JjBRua3edrLvBAsdyw=";
# https://github.com/10der/homeassistant-custom_components-awtrix/issues/9
rev = "8180cef7b1837e85115ef7ece553e39b0f94ff4d";
hash = "sha256-D/RXi7nX+xqFs5Dvu1pwomQWCJ8PJhc1H3wsAgBhRMQ=";
};
propagatedBuildInputs = [
dependencies = [
requests
];
@@ -18,14 +18,14 @@ buildHomeAssistantComponent rec {
hash = "sha256-6bYKqU9yucISjTrmCUx1bNn9kqvT9jW1OBrqAa4ayEQ=";
};
postPatch = ''
substituteInPlace custom_components/bodymiscale/manifest.json --replace-fail 'cachetools==5.3.0' 'cachetools>=5.3.0'
'';
propagatedBuildInputs = [
dependencies = [
cachetools
];
ignoreVersionRequirement = [
"cachetools"
];
meta = {
description = "Home Assistant custom component providing body metrics for Xiaomi Mi Scale 1 and 2";
homepage = "https://github.com/dckiller51/bodymiscale";
@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "carleeno";
domain = "elevenlabs_tts";
version = "2.3.0";
version = "2.4.0";
src = fetchFromGitHub {
owner = "carleeno";
repo = "elevenlabs_tts";
rev = "refs/tags/${version}";
hash = "sha256-7/Di3K7b0IzxatqBXqgVeMziRwalOVmIJ5IuEWJVjkE=";
hash = "sha256-/hszK5J1iGB46WfmCCK9/F0JOR405gplMwVC4niAqig=";
};
meta = with lib; {
@@ -6,24 +6,24 @@
}:
buildHomeAssistantComponent rec {
owner = "presto8";
owner = "magico13";
domain = "emporia_vue";
version = "0.8.3";
version = "0.10.0";
src = fetchFromGitHub {
owner = "magico13";
repo = "ha-emporia-vue";
rev = "v${version}";
hash = "sha256-6NrRuBjpulT66pVUfW9ujULL5HSzfgyic1pKEBRupNA=";
hash = "sha256-bUfFRcVu/i6yp9BbfM3d6J8TBT3X35HNk0tr00JIwC8=";
};
propagatedBuildInputs = [
dependencies = [
pyemvue
];
postPatch = ''
substituteInPlace custom_components/emporia_vue/manifest.json --replace-fail 'pyemvue==0.17.1' 'pyemvue>=0.17.1'
'';
ignoreVersionRequirement = [
"pyemvue"
];
dontBuild = true;
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-PY3udPgvsaXdDRh4+NQmVlqhERswcMpaJTq5azaUFf4=";
};
propagatedBuildInputs = [
dependencies = [
beautifulsoup4
];
@@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "blakeblackshear";
domain = "frigate";
version = "5.3.0";
version = "5.4.0";
src = fetchFromGitHub {
owner = "blakeblackshear";
repo = "frigate-hass-integration";
rev = "v${version}";
hash = "sha256-0eTEgRDgm4+Om2uqrt24Gj7dSdA6OJs/0oi5J5SHOyI=";
hash = "sha256-V2Y+xUAA/Lu7u82WUlUI5CFi9SGWe6ocVQtlXeVg2ZA=";
};
dependencies = [ pytz ];
@@ -9,7 +9,7 @@
buildHomeAssistantComponent {
owner = "cyberjunky";
domain = "garmin_connect";
version = "unstable-2024-08-31";
version = "0.2.22";
src = fetchFromGitHub {
owner = "cyberjunky";
@@ -18,7 +18,7 @@ buildHomeAssistantComponent {
hash = "sha256-KqbP6TpH9B0/AjtsW5TcWSNgUhND+w8rO6X8fHqtsDI=";
};
propagatedBuildInputs = [
dependencies = [
garminconnect
tzlocal
];
@@ -30,7 +30,7 @@ buildHomeAssistantComponent {
dontBuild = true;
propagatedBuildInputs = [
dependencies = [
govee-led-wez
];
@@ -18,7 +18,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-JyyJPI0lbZLJj+016WgS1KXU5rnxUmRMafel4/wKsYk=";
};
propagatedBuildInputs = [ libgpiod ];
dependencies = [ libgpiod ];
meta = with lib; {
description = "Home Assistant GPIO custom integration";
@@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "danielperna84";
domain = "homematicip_local";
version = "1.73.0";
version = "1.74.0";
src = fetchFromGitHub {
owner = "danielperna84";
repo = "custom_homematic";
rev = "refs/tags/${version}";
hash = "sha256-1ssmaX6G03i9KYgjCRMZqOG2apEZ0069fQnmVy2BVhA=";
hash = "sha256-UdM/T68VK3Dh585rm3qnZ9LtRgpumfzk4TaGGIfYdoM=";
};
dependencies = [
@@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "sander1988";
domain = "indego";
version = "5.7.4";
version = "5.7.8";
src = fetchFromGitHub {
owner = "sander1988";
repo = "Indego";
rev = "refs/tags/${version}";
hash = "sha256-SiYjducy0NP5bF3STVzhBdnJraNjHywHfD7OmAnYmr0=";
hash = "sha256-7PQUsSPS+o5Vt4Do4/TXyGXAqyHJg96w8n7UMpZ0uFo=";
};
dependencies = [ pyindego ];
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-Fl8qwsW9NdjnYdu7IGQDelXTLqNx5ioUoxkhv+p5L0I=";
};
propagatedBuildInputs = [ midea-beautiful-air ];
dependencies = [ midea-beautiful-air ];
meta = with lib; {
description = "Home Assistant custom component adding support for controlling Midea air conditioners and dehumidifiers on local network";
@@ -8,13 +8,13 @@
buildHomeAssistantComponent rec {
owner = "mill1000";
domain = "midea_ac";
version = "2024.9.2";
version = "2024.10.4";
src = fetchFromGitHub {
owner = "mill1000";
repo = "midea-ac-py";
rev = version;
hash = "sha256-PVR3yuyWMilmyOS341pS73c9ocOrFfJ9dwiKEYqCtM4=";
hash = "sha256-P/s8HMP9xQWI+bgy6JHe4pAx+jItpK6BCWIyKsfTjmg=";
};
dependencies = [ msmart-ng ];
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-LGpCT0a6mxbf0W6ucTIBhl9aNUd5/1dUk6M+CzRKuoU=";
};
propagatedBuildInputs = [
dependencies = [
moonraker-api
];
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-OGCAJsAsnUjwaLR8lCBdU+ghVOGFF0mT73t5JtcngUA=";
};
propagatedBuildInputs = [
dependencies = [
requests
];
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-O1NxT7u27xLydPqEqH72laU0tlYVrMPo0TwWIVNJ+0Q=";
};
propagatedBuildInputs = [
dependencies = [
omnikinverter
];
@@ -19,15 +19,15 @@ buildHomeAssistantComponent rec {
hash = "sha256-yoaph/R3c4j+sXEC02Hv+ixtuif70/y6Gag5NBpKFLs=";
};
postPatch = ''
substituteInPlace custom_components/philips_airpurifier_coap/manifest.json --replace-fail 'getmac==0.9.4' 'getmac>=0.9.4'
'';
dependencies = [
aioairctrl
getmac
];
ignoreVersionRequirement = [
"getmac"
];
meta = {
description = "Philips AirPurifier custom component for Home Assistant";
homepage = "https://github.com/kongo09/philips-airpurifier-coap";
@@ -7,16 +7,16 @@
buildHomeAssistantComponent rec {
owner = "iprak";
domain = "sensi";
version = "1.3.4";
version = "1.3.14";
src = fetchFromGitHub {
inherit owner;
repo = domain;
rev = "refs/tags/v${version}";
hash = "sha256-NbK9h0nvcWNSwsc04YgjqKl+InijxftPJ3SLCQF/Hns=";
hash = "sha256-kskffpfxpUjNUgsGc/sSkCbGdjt47KfPpH6KBFDLsHw=";
};
propagatedBuildInputs = [
dependencies = [
websockets
];
@@ -29,7 +29,7 @@ buildHomeAssistantComponent rec {
})
];
propagatedBuildInputs = [
dependencies = [
aiofiles
broadlink
];
@@ -19,7 +19,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-mcxXBnVGrlVxbSi+IwmGJiWqy5PlQmHQl+hgW6i7NFc=";
};
propagatedBuildInputs = [
dependencies = [
charset-normalizer
pycountry
xmltodict
@@ -10,13 +10,13 @@
buildHomeAssistantComponent rec {
owner = "frenck";
domain = "spook";
version = "3.0.1";
version = "3.1.0";
src = fetchFromGitHub {
inherit owner;
repo = domain;
rev = "refs/tags/v${version}";
hash = "sha256-ChHsevryWuim8BEFqXVkCOW9fGMrt5vol+B2SreMUws=";
hash = "sha256-IV3n++uFSOvQANPfbCeBj3GP0CCL+w9icKp/k5VO3Qg=";
};
patches = [ ./remove-sub-integration-symlink-hack.patch ];
@@ -11,13 +11,13 @@
buildHomeAssistantComponent rec {
owner = "make-all";
domain = "tuya_local";
version = "2024.8.0";
version = "2024.11.4";
src = fetchFromGitHub {
inherit owner;
repo = "tuya-local";
rev = "refs/tags/${version}";
hash = "sha256-IHTWcNxmNXJk7SNnrLNFbaXJQSg6VYkAgAVmyt3JmRw=";
hash = "sha256-Mmcq0GBWiE6IWUVL6q9lw29wKEymAQn439/pOSqWgdQ=";
};
dependencies = [
@@ -9,13 +9,13 @@
buildHomeAssistantComponent rec {
owner = "mitch-dc";
domain = "volkswagen_we-connect_id";
version = "0.2.0";
version = "0.2.3";
src = fetchFromGitHub {
inherit owner;
repo = "volkswagen_we_connect_id";
rev = "refs/tags/v${version}";
hash = "sha256-Pmx1jXWXYta/kY51Ih1YRB+QeIfklVvBKcUYU5bHbsQ=";
hash = "sha256-hok1ICAHMfvfMucBYkgWD68Tsn9E33Z/ouoRwFqHHF4=";
};
dependencies = [
@@ -13,13 +13,13 @@
buildHomeAssistantComponent rec {
owner = "mampfes";
domain = "waste_collection_schedule";
version = "2.4.0";
version = "2.5.0";
src = fetchFromGitHub {
inherit owner;
repo = "hacs_waste_collection_schedule";
rev = "refs/tags/${version}";
hash = "sha256-2WUwUifRCIhz+QmhpY8VGx/USEImpPX0K511xDJWP1I=";
hash = "sha256-8AUaVcVCZ+WCLrmEQhIEohEWmeG6g7t3EjVdF9FUyJQ=";
};
dependencies = [
@@ -18,7 +18,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-0tLyRQ5KIL3NDAKK8nr8ZrgN/uh8YdGA7iSNJwEIxis=";
};
propagatedBuildInputs = [ zigpy ];
dependencies = [ zigpy ];
dontBuild = true;
@@ -11,13 +11,13 @@
buildHomeAssistantComponent rec {
owner = "al-one";
domain = "xiaomi_miot";
version = "0.7.23";
version = "1.0.2";
src = fetchFromGitHub {
owner = "al-one";
repo = "hass-xiaomi-miot";
rev = "v${version}";
hash = "sha256-PTjkKuK+DAOmKREr0AHjFXzy4ktguD4ZOHcWuLedLH0=";
hash = "sha256-WoPzWCraTj0VNzwZT9IpK7Loc1OuoQf/2B++SwP7f0Y=";
};
dependencies = [
@@ -17,7 +17,7 @@ buildHomeAssistantComponent rec {
hash = "sha256-uhyUQebAx4g1PT/urbyx8EZNFE9vIY0bUAKmgCwY3aQ=";
};
propagatedBuildInputs = [ pysmartthings ];
dependencies = [ pysmartthings ];
meta = with lib; {
description = "HomeAssistant integration for Samsung Soundbars";

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