Merge master into staging-next
This commit is contained in:
@@ -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`
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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.";
|
||||
};
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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 {};
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
Generated
+405
@@ -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="
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
};
|
||||
})
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
]
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
}:
|
||||
|
||||
makeSetupHook {
|
||||
name = "manifest-requirements-check-hook";
|
||||
name = "manifest-check-hook";
|
||||
substitutions = {
|
||||
pythonCheckInterpreter = python.interpreter;
|
||||
checkManifest = ./check_manifest.py;
|
||||
|
||||
+17
-6
@@ -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
Reference in New Issue
Block a user