Merge master into haskell-updates

This commit is contained in:
github-actions[bot]
2024-10-12 00:15:40 +00:00
committed by GitHub
128 changed files with 3233 additions and 7306 deletions
+1 -1
View File
@@ -112,7 +112,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @NixOS/nix-team @raitobeza
/nixos/modules/virtualisation/qemu-vm.nix @raitobezarius
# ACME
/nixos/modules/security/acme @arianvp @flokli @aanderse @emilazy # no merge permission: @m1cr0man
/nixos/modules/security/acme @NixOS/acme
# Systemd
/nixos/modules/system/boot/systemd.nix @NixOS/systemd
+2 -4
View File
@@ -60,10 +60,8 @@ git -C "$tmp/nixpkgs.git" remote add fork https://github.com/"$prRepo".git
git -C "$tmp/nixpkgs.git" config remote.fork.partialclonefilter tree:0
git -C "$tmp/nixpkgs.git" config remote.fork.promisor true
# This should not conflict with any refs in Nixpkgs
headRef=refs/remotes/fork/pr
# Only fetch into a remote ref, because the local ref namespace is used by Nixpkgs, don't want any conflicts
git -C "$tmp/nixpkgs.git" fetch --no-tags fork "$prBranch":"$headRef"
git -C "$tmp/nixpkgs.git" fetch --no-tags fork "$prBranch"
headRef=$(git -C "$tmp/nixpkgs.git" rev-parse refs/remotes/fork/"$prBranch")
log "Checking correctness of the base branch"
if ! "$SCRIPT_DIR"/verify-base-branch.sh "$tmp/nixpkgs.git" "$headRef" "$baseRepo" "$baseBranch" "$prRepo" "$prBranch" | tee "$tmp/invalid-base-error" >&2; then
+1 -1
View File
@@ -28,7 +28,7 @@ It does so in a clean environment (using `env --ignore-environment`), and it che
The variables that this phase control are:
- `dontVersionCheck`: Disable adding this hook to the [`preDistPhases`](#var-stdenv-preDist). Useful if you do want to load the bash functions of the hook, but run them differently.
- `dontVersionCheck`: Disable adding this hook to the [`preInstallCheckHooks`](#ssec-installCheck-phase). Useful if you do want to load the bash functions of the hook, but run them differently.
- `versionCheckProgram`: The full path to the program that should print the `${version}` string. Defaults roughly to `${placeholder "out"}/bin/${pname}`. Using `$out` in the value of this variable won't work, as environment variables from this variable are not expanded by the hook. Hence using `placeholder` is unavoidable.
- `versionCheckProgramArg`: The argument that needs to be passed to `versionCheckProgram`. If undefined the hook tries first `--help` and then `--version`. Examples: `version`, `-V`, `-v`.
- `preVersionCheck`: A hook to run before the check is done.
+1 -1
View File
@@ -79,7 +79,7 @@ Besides tests provided by upstream, that you run in the [`checkPhase`](#ssec-che
- They access the package as consumers would, independently from the environment in which it was built
- They can be run and debugged without rebuilding the package, which is useful if that takes a long time
- They don't add overhead to each build, as opposed checks added to the [`distPhase`](#ssec-distribution-phase), such as [`versionCheckHook`](#versioncheckhook).
- They don't add overhead to each build, as opposed checks added to the [`installCheckPhase`](#ssec-installCheck-phase), such as [`versionCheckHook`](#versioncheckhook).
It is also possible to use `passthru.tests` to test the version with [`testVersion`](#tester-testVersion), but since that is pretty trivial and recommended thing to do, we recommend using [`versionCheckHook`](#versioncheckhook) for that, which has the following advantages over `passthru.tests`:
+7
View File
@@ -13736,6 +13736,13 @@
github = "mi-ael";
githubId = 12199265;
};
miampf = {
email = "miampf@proton.me";
github = "miampf";
githubId = 111570799;
name = "Mia Motte Mallon";
keys = [ { fingerprint = "7008 92AA 6F32 8CAC 8740 0070 EF03 9364 B5B6 886C"; } ];
};
miangraham = {
github = "miangraham";
githubId = 704580;
@@ -566,6 +566,11 @@
- The `rustic` package was upgrade to `0.9.0`, which contains [breaking changes to the config file format](https://github.com/rustic-rs/rustic/releases/tag/v0.9.0).
- `pkgs.formats.ini` and `pkgs.formats.iniWithGlobalSection` with
`listsAsDuplicateKeys` or `listToValue` no longer merge non-list values into
lists by default. Backwards-compatible behavior can be enabled with
`atomsCoercedToLists`.
## Other Notable Changes {#sec-release-24.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -626,6 +631,8 @@
The derivation now installs "impl" headers selectively instead of by a wildcard.
Use `imgui.src` if you just want to access the unpacked sources.
- The new `boot.loader.systemd-boot.windows` option makes setting up dual-booting with Windows on a different drive easier
- Linux 4.19 has been removed because it will reach its end of life within the lifespan of 24.11
- Unprivileged access to the kernel syslog via `dmesg` is now restricted by default. Users wanting to keep an
+1 -6
View File
@@ -9,12 +9,7 @@ with lib;
options = {
netboot.squashfsCompression = mkOption {
default = with pkgs.stdenv.hostPlatform; "xz -Xdict-size 100% "
+ lib.optionalString isx86 "-Xbcj x86"
# Untested but should also reduce size for these platforms
+ lib.optionalString isAarch "-Xbcj arm"
+ lib.optionalString (isPower && is32bit && isBigEndian) "-Xbcj powerpc"
+ lib.optionalString (isSparc) "-Xbcj sparc";
default = "zstd -Xcompression-level 19";
description = ''
Compression settings to use for the squashfs nix store.
'';
+1 -1
View File
@@ -2,7 +2,7 @@
let
cfg = config.programs.gamemode;
settingsFormat = pkgs.formats.ini { };
settingsFormat = pkgs.formats.ini { listsAsDuplicateKeys = true; };
configFile = settingsFormat.generate "gamemode.ini" cfg.settings;
in
{
@@ -82,6 +82,7 @@ in {
) {
webadmin = lib.mkDefault "file://${cfg.package.webadmin}/webadmin.zip";
};
webadmin.path = "/var/cache/stalwart-mail";
};
# This service stores a potentially large amount of data.
@@ -117,6 +118,7 @@ in {
StandardOutput = "journal";
StandardError = "journal";
CacheDirectory = "stalwart-mail";
StateDirectory = "stalwart-mail";
# Bind standard privileged ports
@@ -222,6 +222,27 @@ in
StandardOutput = "journal";
StateDirectory = "gerrit";
WorkingDirectory = "%S/gerrit";
AmbientCapabilities = "";
CapabilityBoundingSet = "";
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "noaccess";
ProtectSystem = "full";
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
UMask = 027;
};
};
};
@@ -112,6 +112,7 @@ in
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
StateDirectory = "wakapi";
StateDirectoryMode = "0700";
Restart = "always";
};
@@ -1,4 +1,9 @@
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
with lib;
@@ -10,16 +15,21 @@ let
# We check the source code in a derivation that does not depend on the
# system configuration so that most users don't have to redo the check and require
# the necessary dependencies.
checkedSource = pkgs.runCommand "systemd-boot" {
preferLocalBuild = true;
} ''
install -m755 -D ${./systemd-boot-builder.py} $out
${lib.getExe pkgs.buildPackages.mypy} \
--no-implicit-optional \
--disallow-untyped-calls \
--disallow-untyped-defs \
$out
'';
checkedSource =
pkgs.runCommand "systemd-boot"
{
preferLocalBuild = true;
}
''
install -m755 -D ${./systemd-boot-builder.py} $out
${lib.getExe pkgs.buildPackages.mypy} \
--no-implicit-optional \
--disallow-untyped-calls \
--disallow-untyped-defs \
$out
'';
edk2ShellEspPath = "efi/edk2-uefi-shell/shell.efi";
systemdBootBuilder = pkgs.substituteAll rec {
name = "systemd-boot";
@@ -44,13 +54,17 @@ let
configurationLimit = if cfg.configurationLimit == null then 0 else cfg.configurationLimit;
inherit (cfg) consoleMode graceful editor rebootForBitlocker;
inherit (cfg)
consoleMode
graceful
editor
rebootForBitlocker
;
inherit (efi) efiSysMountPoint canTouchEfiVariables;
bootMountPoint = if cfg.xbootldrMountPoint != null
then cfg.xbootldrMountPoint
else efi.efiSysMountPoint;
bootMountPoint =
if cfg.xbootldrMountPoint != null then cfg.xbootldrMountPoint else efi.efiSysMountPoint;
nixosDir = "/EFI/nixos";
@@ -60,29 +74,35 @@ let
netbootxyz = optionalString cfg.netbootxyz.enable pkgs.netbootxyz-efi;
edk2-uefi-shell = optionalString cfg.edk2-uefi-shell.enable pkgs.edk2-uefi-shell;
checkMountpoints = pkgs.writeShellScript "check-mountpoints" ''
fail() {
echo "$1 = '$2' is not a mounted partition. Is the path configured correctly?" >&2
exit 1
}
${pkgs.util-linuxMinimal}/bin/findmnt ${efiSysMountPoint} > /dev/null || fail efiSysMountPoint ${efiSysMountPoint}
${lib.optionalString
(cfg.xbootldrMountPoint != null)
"${pkgs.util-linuxMinimal}/bin/findmnt ${cfg.xbootldrMountPoint} > /dev/null || fail xbootldrMountPoint ${cfg.xbootldrMountPoint}"}
${lib.optionalString (cfg.xbootldrMountPoint != null)
"${pkgs.util-linuxMinimal}/bin/findmnt ${cfg.xbootldrMountPoint} > /dev/null || fail xbootldrMountPoint ${cfg.xbootldrMountPoint}"
}
'';
copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
empty_file=$(${pkgs.coreutils}/bin/mktemp)
${concatStrings (mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${v}" "${bootMountPoint}/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${bootMountPoint}/${nixosDir}/.extra-files/"${escapeShellArg n}
'') cfg.extraFiles)}
${concatStrings (
mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${v}" "${bootMountPoint}/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${bootMountPoint}/${nixosDir}/.extra-files/"${escapeShellArg n}
'') cfg.extraFiles
)}
${concatStrings (mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${pkgs.writeText n v}" "${bootMountPoint}/loader/entries/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${bootMountPoint}/${nixosDir}/.extra-files/loader/entries/"${escapeShellArg n}
'') cfg.extraEntries)}
${concatStrings (
mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${pkgs.writeText n v}" "${bootMountPoint}/loader/entries/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${bootMountPoint}/${nixosDir}/.extra-files/loader/entries/"${escapeShellArg n}
'') cfg.extraEntries
)}
'';
};
@@ -91,23 +111,61 @@ let
${systemdBootBuilder}/bin/systemd-boot "$@"
${cfg.extraInstallCommands}
'';
in {
in
{
meta.maintainers = with lib.maintainers; [ julienmalka ];
imports =
[ (mkRenamedOptionModule [ "boot" "loader" "gummiboot" "enable" ] [ "boot" "loader" "systemd-boot" "enable" ])
(lib.mkChangedOptionModule
[ "boot" "loader" "systemd-boot" "memtest86" "entryFilename" ]
[ "boot" "loader" "systemd-boot" "memtest86" "sortKey" ]
(config: lib.strings.removeSuffix ".conf" config.boot.loader.systemd-boot.memtest86.entryFilename)
)
(lib.mkChangedOptionModule
[ "boot" "loader" "systemd-boot" "netbootxyz" "entryFilename" ]
[ "boot" "loader" "systemd-boot" "netbootxyz" "sortKey" ]
(config: lib.strings.removeSuffix ".conf" config.boot.loader.systemd-boot.netbootxyz.entryFilename)
)
];
imports = [
(mkRenamedOptionModule
[
"boot"
"loader"
"gummiboot"
"enable"
]
[
"boot"
"loader"
"systemd-boot"
"enable"
]
)
(lib.mkChangedOptionModule
[
"boot"
"loader"
"systemd-boot"
"memtest86"
"entryFilename"
]
[
"boot"
"loader"
"systemd-boot"
"memtest86"
"sortKey"
]
(config: lib.strings.removeSuffix ".conf" config.boot.loader.systemd-boot.memtest86.entryFilename)
)
(lib.mkChangedOptionModule
[
"boot"
"loader"
"systemd-boot"
"netbootxyz"
"entryFilename"
]
[
"boot"
"loader"
"systemd-boot"
"netbootxyz"
"sortKey"
]
(config: lib.strings.removeSuffix ".conf" config.boot.loader.systemd-boot.netbootxyz.entryFilename)
)
];
options.boot.loader.systemd-boot = {
enable = mkOption {
@@ -124,7 +182,7 @@ in {
sortKey = mkOption {
default = "nixos";
type = lib.types.str;
type = types.str;
description = ''
The sort key used for the NixOS bootloader entries.
This key determines sorting relative to non-NixOS entries.
@@ -218,7 +276,15 @@ in {
consoleMode = mkOption {
default = "keep";
type = types.enum [ "0" "1" "2" "5" "auto" "max" "keep" ];
type = types.enum [
"0"
"1"
"2"
"5"
"auto"
"max"
"keep"
];
description = ''
The resolution of the console. The following values are valid:
@@ -281,9 +347,32 @@ in {
};
};
edk2-uefi-shell = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Make the EDK2 UEFI Shell available from the systemd-boot menu.
It can be used to manually boot other operating systems or for debugging.
'';
};
sortKey = mkOption {
type = types.str;
default = "o_edk2-uefi-shell";
description = ''
`systemd-boot` orders the menu entries by their sort keys,
so if you want something to appear after all the NixOS entries,
it should start with {file}`o` or onwards.
See also {option}`boot.loader.systemd-boot.sortKey`..
'';
};
};
extraEntries = mkOption {
type = types.attrsOf types.lines;
default = {};
default = { };
example = literalExpression ''
{ "memtest86.conf" = '''
title Memtest86+
@@ -306,7 +395,7 @@ in {
extraFiles = mkOption {
type = types.attrsOf types.path;
default = {};
default = { };
example = literalExpression ''
{ "efi/memtest86/memtest.efi" = "''${pkgs.memtest86plus}/memtest.efi"; }
'';
@@ -349,40 +438,126 @@ in {
Windows can unseal the encryption key.
'';
};
windows = mkOption {
default = { };
description = ''
Make Windows bootable from systemd-boot. This option is not necessary when Windows and
NixOS use the same EFI System Partition (ESP). In that case, Windows will automatically be
detected by systemd-boot.
However, if Windows is installed on a separate drive or ESP, you can use this option to add
a menu entry for each installation manually.
The attribute name is used for the title of the menu entry and internal file names.
'';
example = literalExpression ''
{
"10".efiDeviceHandle = "HD0c3";
"11-ame" = {
title = "Windows 11 Ameliorated Edition";
efiDeviceHandle = "HD0b1";
};
"11-home" = {
title = "Windows 11 Home";
efiDeviceHandle = "FS1";
sortKey = "z_windows";
};
}
'';
type = types.attrsOf (
types.submodule (
{ name, ... }:
{
options = {
efiDeviceHandle = mkOption {
type = types.str;
example = "HD1b3";
description = ''
The device handle of the EFI System Partition (ESP) where the Windows bootloader is
located. This is the device handle that the EDK2 UEFI Shell uses to load the
bootloader.
To find this handle, follow these steps:
1. Set {option}`boot.loader.systemd-boot.edk2-uefi-shell.enable` to `true`
2. Run `nixos-rebuild boot`
3. Reboot and select "EDK2 UEFI Shell" from the systemd-boot menu
4. Run `map -c` to list all consistent device handles
5. For each device handle (for example, `HD0c1`), run `ls HD0c1:\EFI`
6. If the output contains the directory `Microsoft`, you might have found the correct device handle
7. Run `HD0c1:\EFI\Microsoft\Boot\Bootmgfw.efi` to check if Windows boots correctly
8. If it does, this device handle is the one you need (in this example, `HD0c1`)
This option is required, there is no useful default.
'';
};
title = mkOption {
type = types.str;
example = "Michaelsoft Binbows";
default = "Windows ${name}";
defaultText = ''attribute name of this entry, prefixed with "Windows "'';
description = ''
The title of the boot menu entry.
'';
};
sortKey = mkOption {
type = types.str;
default = "o_windows_${name}";
defaultText = ''attribute name of this entry, prefixed with "o_windows_"'';
description = ''
`systemd-boot` orders the menu entries by their sort keys,
so if you want something to appear after all the NixOS entries,
it should start with {file}`o` or onwards.
See also {option}`boot.loader.systemd-boot.sortKey`..
'';
};
};
}
)
);
};
};
config = mkIf cfg.enable {
assertions = [
{
assertion = (hasPrefix "/" efi.efiSysMountPoint);
message = "The ESP mount point '${toString efi.efiSysMountPoint}' must be an absolute path";
}
{
assertion = cfg.xbootldrMountPoint == null || (hasPrefix "/" cfg.xbootldrMountPoint);
message = "The XBOOTLDR mount point '${toString cfg.xbootldrMountPoint}' must be an absolute path";
}
{
assertion = cfg.xbootldrMountPoint != efi.efiSysMountPoint;
message = "The XBOOTLDR mount point '${toString cfg.xbootldrMountPoint}' cannot be the same as the ESP mount point '${toString efi.efiSysMountPoint}'";
}
{
assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub;
message = "This kernel does not support the EFI boot stub";
}
{
assertion = cfg.installDeviceTree -> config.hardware.deviceTree.enable -> config.hardware.deviceTree.name != null;
message = "Cannot install devicetree without 'config.hardware.deviceTree.enable' enabled and 'config.hardware.deviceTree.name' set";
}
] ++ concatMap (filename: [
{
assertion = !(hasInfix "/" filename);
message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries within folders are not supported";
}
{
assertion = hasSuffix ".conf" filename;
message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries must have a .conf file extension";
}
]) (builtins.attrNames cfg.extraEntries)
assertions =
[
{
assertion = (hasPrefix "/" efi.efiSysMountPoint);
message = "The ESP mount point '${toString efi.efiSysMountPoint}' must be an absolute path";
}
{
assertion = cfg.xbootldrMountPoint == null || (hasPrefix "/" cfg.xbootldrMountPoint);
message = "The XBOOTLDR mount point '${toString cfg.xbootldrMountPoint}' must be an absolute path";
}
{
assertion = cfg.xbootldrMountPoint != efi.efiSysMountPoint;
message = "The XBOOTLDR mount point '${toString cfg.xbootldrMountPoint}' cannot be the same as the ESP mount point '${toString efi.efiSysMountPoint}'";
}
{
assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub;
message = "This kernel does not support the EFI boot stub";
}
{
assertion =
cfg.installDeviceTree
-> config.hardware.deviceTree.enable
-> config.hardware.deviceTree.name != null;
message = "Cannot install devicetree without 'config.hardware.deviceTree.enable' enabled and 'config.hardware.deviceTree.name' set";
}
]
++ concatMap (filename: [
{
assertion = !(hasInfix "/" filename);
message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries within folders are not supported";
}
{
assertion = hasSuffix ".conf" filename;
message = "boot.loader.systemd-boot.extraEntries.${lib.strings.escapeNixIdentifier filename} is invalid: entries must have a .conf file extension";
}
]) (builtins.attrNames cfg.extraEntries)
++ concatMap (filename: [
{
assertion = !(hasPrefix "/" filename);
@@ -396,7 +571,13 @@ in {
assertion = !(hasInfix "nixos/.extra-files" (toLower filename));
message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: files cannot be placed in the nixos/.extra-files directory";
}
]) (builtins.attrNames cfg.extraFiles);
]) (builtins.attrNames cfg.extraFiles)
++ concatMap (winVersion: [
{
assertion = lib.match "^[-_0-9A-Za-z]+$" winVersion != null;
message = "boot.loader.systemd-boot.windows.${winVersion} is invalid: key must only contain alphanumeric characters, hyphens, and underscores";
}
]) (builtins.attrNames cfg.windows);
boot.loader.grub.enable = mkDefault false;
@@ -409,24 +590,44 @@ in {
(mkIf cfg.netbootxyz.enable {
"efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}";
})
(mkIf (cfg.edk2-uefi-shell.enable || cfg.windows != { }) {
${edk2ShellEspPath} = "${pkgs.edk2-uefi-shell}/shell.efi";
})
];
boot.loader.systemd-boot.extraEntries = mkMerge [
(mkIf cfg.memtest86.enable {
"memtest86.conf" = ''
title Memtest86+
efi /efi/memtest86/memtest.efi
sort-key ${cfg.memtest86.sortKey}
boot.loader.systemd-boot.extraEntries = mkMerge (
[
(mkIf cfg.memtest86.enable {
"memtest86.conf" = ''
title Memtest86+
efi /efi/memtest86/memtest.efi
sort-key ${cfg.memtest86.sortKey}
'';
})
(mkIf cfg.netbootxyz.enable {
"netbootxyz.conf" = ''
title netboot.xyz
efi /efi/netbootxyz/netboot.xyz.efi
sort-key ${cfg.netbootxyz.sortKey}
'';
})
(mkIf cfg.edk2-uefi-shell.enable {
"edk2-uefi-shell.conf" = ''
title EDK2 UEFI Shell
efi /${edk2ShellEspPath}
sort-key ${cfg.edk2-uefi-shell.sortKey}
'';
})
]
++ (mapAttrsToList (winVersion: cfg: {
"windows_${winVersion}.conf" = ''
title ${cfg.title}
efi /${edk2ShellEspPath}
options -nointerrupt -nomap -noversion ${cfg.efiDeviceHandle}:EFI\Microsoft\Boot\Bootmgfw.efi
sort-key ${cfg.sortKey}
'';
})
(mkIf cfg.netbootxyz.enable {
"netbootxyz.conf" = ''
title netboot.xyz
efi /efi/netbootxyz/netboot.xyz.efi
sort-key ${cfg.netbootxyz.sortKey}
'';
})
];
}) cfg.windows)
);
boot.bootspec.extensions."org.nixos.systemd-boot" = {
inherit (config.boot.loader.systemd-boot) sortKey;
+4 -4
View File
@@ -3,11 +3,11 @@ let
client = { pkgs, ... }: {
environment.systemPackages = [ pkgs.croc ];
};
pass = pkgs.writeText "pass" "PassRelay";
pass = "PassRelay";
in {
name = "croc";
meta = with pkgs.lib.maintainers; {
maintainers = [ hax404 julm ];
maintainers = [ equirosa SuperSandro2000 ];
};
nodes = {
@@ -38,12 +38,12 @@ in {
sender.execute("echo Hello World > testfile01.txt")
sender.execute("echo Hello Earth > testfile02.txt")
sender.execute(
"croc --pass ${pass} --relay relay send --code topSecret testfile01.txt testfile02.txt >&2 &"
"env CROC_SECRET=topSecret croc --pass ${pass} --relay relay send testfile01.txt testfile02.txt >&2 &"
)
# receive the testfiles and check them
receiver.succeed(
"croc --pass ${pass} --yes --relay relay topSecret"
"env CROC_SECRET=topSecret croc --pass ${pass} --yes --relay relay"
)
assert "Hello World" in receiver.succeed("cat testfile01.txt")
assert "Hello Earth" in receiver.succeed("cat testfile02.txt")
+299 -181
View File
@@ -1,6 +1,7 @@
{ system ? builtins.currentSystem,
config ? {},
pkgs ? import ../.. { inherit system config; }
{
system ? builtins.currentSystem,
config ? { },
pkgs ? import ../.. { inherit system config; },
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
@@ -16,7 +17,13 @@ let
system.switch.enable = true;
};
commonXbootldr = { config, lib, pkgs, ... }:
commonXbootldr =
{
config,
lib,
pkgs,
...
}:
let
diskImage = import ../lib/make-disk-image.nix {
inherit config lib pkgs;
@@ -85,7 +92,10 @@ in
{
basic = makeTest {
name = "systemd-boot";
meta.maintainers = with pkgs.lib.maintainers; [ danielfullmer julienmalka ];
meta.maintainers = with pkgs.lib.maintainers; [
danielfullmer
julienmalka
];
nodes.machine = common;
@@ -117,22 +127,25 @@ in
virtualisation.useSecureBoot = true;
};
testScript = let
efiArch = pkgs.stdenv.hostPlatform.efiArch;
in { nodes, ... }: ''
machine.start(allow_reboot=True)
machine.wait_for_unit("multi-user.target")
testScript =
let
efiArch = pkgs.stdenv.hostPlatform.efiArch;
in
{ nodes, ... }:
''
machine.start(allow_reboot=True)
machine.wait_for_unit("multi-user.target")
machine.succeed("sbctl create-keys")
machine.succeed("sbctl enroll-keys --yes-this-might-brick-my-machine")
machine.succeed('sbctl sign /boot/EFI/systemd/systemd-boot${efiArch}.efi')
machine.succeed('sbctl sign /boot/EFI/BOOT/BOOT${toUpper efiArch}.EFI')
machine.succeed('sbctl sign /boot/EFI/nixos/*${nodes.machine.system.boot.loader.kernelFile}.efi')
machine.succeed("sbctl create-keys")
machine.succeed("sbctl enroll-keys --yes-this-might-brick-my-machine")
machine.succeed('sbctl sign /boot/EFI/systemd/systemd-boot${efiArch}.efi')
machine.succeed('sbctl sign /boot/EFI/BOOT/BOOT${toUpper efiArch}.EFI')
machine.succeed('sbctl sign /boot/EFI/nixos/*${nodes.machine.system.boot.loader.kernelFile}.efi')
machine.reboot()
machine.reboot()
assert "Secure Boot: enabled (user)" in machine.succeed("bootctl status")
'';
assert "Secure Boot: enabled (user)" in machine.succeed("bootctl status")
'';
};
basicXbootldr = makeTest {
@@ -141,80 +154,97 @@ in
nodes.machine = commonXbootldr;
testScript = { nodes, ... }: ''
${customDiskImage nodes}
testScript =
{ nodes, ... }:
''
${customDiskImage nodes}
machine.start()
machine.wait_for_unit("multi-user.target")
machine.start()
machine.wait_for_unit("multi-user.target")
machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi")
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi")
machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
# Ensure we actually booted using systemd-boot
# Magic number is the vendor UUID used by systemd-boot.
machine.succeed(
"test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f"
)
# Ensure we actually booted using systemd-boot
# Magic number is the vendor UUID used by systemd-boot.
machine.succeed(
"test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f"
)
# "bootctl install" should have created an EFI entry
machine.succeed('efibootmgr | grep "Linux Boot Manager"')
'';
# "bootctl install" should have created an EFI entry
machine.succeed('efibootmgr | grep "Linux Boot Manager"')
'';
};
# Check that specialisations create corresponding boot entries.
specialisation = makeTest {
name = "systemd-boot-specialisation";
meta.maintainers = with pkgs.lib.maintainers; [ lukegb julienmalka ];
meta.maintainers = with pkgs.lib.maintainers; [
lukegb
julienmalka
];
nodes.machine = { pkgs, lib, ... }: {
imports = [ common ];
specialisation.something.configuration = {
boot.loader.systemd-boot.sortKey = "something";
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ common ];
specialisation.something.configuration = {
boot.loader.systemd-boot.sortKey = "something";
# Since qemu will dynamically create a devicetree blob when starting
# up, it is not straight forward to create an export of that devicetree
# blob without knowing before-hand all the flags we would pass to qemu
# (we would then be able to use `dumpdtb`). Thus, the following config
# will not boot, but it does allow us to assert that the boot entry has
# the correct contents.
boot.loader.systemd-boot.installDeviceTree = pkgs.stdenv.hostPlatform.isAarch64;
hardware.deviceTree.name = "dummy.dtb";
hardware.deviceTree.package = lib.mkForce (pkgs.runCommand "dummy-devicetree-package" { } ''
mkdir -p $out
cp ${pkgs.emptyFile} $out/dummy.dtb
'');
# Since qemu will dynamically create a devicetree blob when starting
# up, it is not straight forward to create an export of that devicetree
# blob without knowing before-hand all the flags we would pass to qemu
# (we would then be able to use `dumpdtb`). Thus, the following config
# will not boot, but it does allow us to assert that the boot entry has
# the correct contents.
boot.loader.systemd-boot.installDeviceTree = pkgs.stdenv.hostPlatform.isAarch64;
hardware.deviceTree.name = "dummy.dtb";
hardware.deviceTree.package = lib.mkForce (
pkgs.runCommand "dummy-devicetree-package" { } ''
mkdir -p $out
cp ${pkgs.emptyFile} $out/dummy.dtb
''
);
};
};
};
testScript = { nodes, ... }: ''
machine.start()
machine.wait_for_unit("multi-user.target")
testScript =
{ nodes, ... }:
''
machine.start()
machine.wait_for_unit("multi-user.target")
machine.succeed(
"test -e /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
machine.succeed(
"grep -q 'title NixOS (something)' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
machine.succeed(
"grep 'sort-key something' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
'' + pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isAarch64 ''
machine.succeed(
r"grep 'devicetree /EFI/nixos/[a-z0-9]\{32\}.*dummy' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
'';
machine.succeed(
"test -e /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
machine.succeed(
"grep -q 'title NixOS (something)' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
machine.succeed(
"grep 'sort-key something' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
''
+ pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isAarch64 ''
machine.succeed(
r"grep 'devicetree /EFI/nixos/[a-z0-9]\{32\}.*dummy' /boot/loader/entries/nixos-generation-1-specialisation-something.conf"
)
'';
};
# Boot without having created an EFI entry--instead using default "/EFI/BOOT/BOOTX64.EFI"
fallback = makeTest {
name = "systemd-boot-fallback";
meta.maintainers = with pkgs.lib.maintainers; [ danielfullmer julienmalka ];
meta.maintainers = with pkgs.lib.maintainers; [
danielfullmer
julienmalka
];
nodes.machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.efi.canTouchEfiVariables = mkForce false;
};
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ common ];
boot.loader.efi.canTouchEfiVariables = mkForce false;
};
testScript = ''
machine.start()
@@ -235,7 +265,10 @@ in
update = makeTest {
name = "systemd-boot-update";
meta.maintainers = with pkgs.lib.maintainers; [ danielfullmer julienmalka ];
meta.maintainers = with pkgs.lib.maintainers; [
danielfullmer
julienmalka
];
nodes.machine = common;
@@ -270,29 +303,35 @@ in
'';
};
memtest86 = with pkgs.lib; optionalAttrs (meta.availableOn { inherit system; } pkgs.memtest86plus) (makeTest {
name = "systemd-boot-memtest86";
meta.maintainers = with maintainers; [ julienmalka ];
memtest86 =
with pkgs.lib;
optionalAttrs (meta.availableOn { inherit system; } pkgs.memtest86plus) (makeTest {
name = "systemd-boot-memtest86";
meta.maintainers = with maintainers; [ julienmalka ];
nodes.machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
};
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/efi/memtest86/memtest.efi")
'';
});
testScript = ''
machine.succeed("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/efi/memtest86/memtest.efi")
'';
});
netbootxyz = makeTest {
name = "systemd-boot-netbootxyz";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes.machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/netbootxyz.conf")
@@ -300,15 +339,77 @@ in
'';
};
edk2-uefi-shell = makeTest {
name = "systemd-boot-edk2-uefi-shell";
meta.maintainers = with pkgs.lib.maintainers; [ iFreilicht ];
nodes.machine = { ... }: {
imports = [ common ];
boot.loader.systemd-boot.edk2-uefi-shell.enable = true;
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/edk2-uefi-shell.conf")
machine.succeed("test -e /boot/efi/edk2-uefi-shell/shell.efi")
'';
};
windows = makeTest {
name = "systemd-boot-windows";
meta.maintainers = with pkgs.lib.maintainers; [ iFreilicht ];
nodes.machine = { ... }: {
imports = [ common ];
boot.loader.systemd-boot.windows = {
"7" = {
efiDeviceHandle = "HD0c1";
sortKey = "before_all_others";
};
"Ten".efiDeviceHandle = "FS0";
"11" = {
title = "Title with-_-punctuation ...?!";
efiDeviceHandle = "HD0d4";
sortKey = "zzz";
};
};
};
testScript = ''
machine.succeed("test -e /boot/efi/edk2-uefi-shell/shell.efi")
machine.succeed("test -e /boot/loader/entries/windows_7.conf")
machine.succeed("test -e /boot/loader/entries/windows_Ten.conf")
machine.succeed("test -e /boot/loader/entries/windows_11.conf")
machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_7.conf")
machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_Ten.conf")
machine.succeed("grep 'efi /efi/edk2-uefi-shell/shell.efi' /boot/loader/entries/windows_11.conf")
machine.succeed("grep 'HD0c1:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_7.conf")
machine.succeed("grep 'FS0:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_Ten.conf")
machine.succeed("grep 'HD0d4:EFI\\\\Microsoft\\\\Boot\\\\Bootmgfw.efi' /boot/loader/entries/windows_11.conf")
machine.succeed("grep 'sort-key before_all_others' /boot/loader/entries/windows_7.conf")
machine.succeed("grep 'sort-key o_windows_Ten' /boot/loader/entries/windows_Ten.conf")
machine.succeed("grep 'sort-key zzz' /boot/loader/entries/windows_11.conf")
machine.succeed("grep 'title Windows 7' /boot/loader/entries/windows_7.conf")
machine.succeed("grep 'title Windows Ten' /boot/loader/entries/windows_Ten.conf")
machine.succeed('grep "title Title with-_-punctuation ...?!" /boot/loader/entries/windows_11.conf')
'';
};
memtestSortKey = makeTest {
name = "systemd-boot-memtest-sortkey";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes.machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
boot.loader.systemd-boot.memtest86.sortKey = "apple";
};
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
boot.loader.systemd-boot.memtest86.sortKey = "apple";
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/memtest86.conf")
@@ -321,35 +422,41 @@ in
name = "systemd-boot-entry-filename-xbootldr";
meta.maintainers = with pkgs.lib.maintainers; [ sdht0 ];
nodes.machine = { pkgs, lib, ... }: {
imports = [ commonXbootldr ];
boot.loader.systemd-boot.memtest86.enable = true;
};
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ commonXbootldr ];
boot.loader.systemd-boot.memtest86.enable = true;
};
testScript = { nodes, ... }: ''
${customDiskImage nodes}
testScript =
{ nodes, ... }:
''
${customDiskImage nodes}
machine.start()
machine.wait_for_unit("multi-user.target")
machine.start()
machine.wait_for_unit("multi-user.target")
machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi")
machine.succeed("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/EFI/memtest86/memtest.efi")
'';
machine.succeed("test -e /efi/EFI/systemd/systemd-bootx64.efi")
machine.succeed("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/EFI/memtest86/memtest.efi")
'';
};
extraEntries = makeTest {
name = "systemd-boot-extra-entries";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes.machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraEntries = {
"banana.conf" = ''
title banana
'';
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ common ];
boot.loader.systemd-boot.extraEntries = {
"banana.conf" = ''
title banana
'';
};
};
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/banana.conf")
@@ -361,12 +468,14 @@ in
name = "systemd-boot-extra-files";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes.machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraFiles = {
"efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
nodes.machine =
{ pkgs, lib, ... }:
{
imports = [ common ];
boot.loader.systemd-boot.extraFiles = {
"efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
};
};
};
testScript = ''
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
@@ -381,55 +490,62 @@ in
nodes = {
inherit common;
machine = { pkgs, nodes, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraFiles = {
"efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
machine =
{ pkgs, nodes, ... }:
{
imports = [ common ];
boot.loader.systemd-boot.extraFiles = {
"efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
};
# These are configs for different nodes, but we'll use them here in `machine`
system.extraDependencies = [
nodes.common.system.build.toplevel
nodes.with_netbootxyz.system.build.toplevel
];
};
# These are configs for different nodes, but we'll use them here in `machine`
system.extraDependencies = [
nodes.common.system.build.toplevel
nodes.with_netbootxyz.system.build.toplevel
];
};
with_netbootxyz = { pkgs, ... }: {
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
with_netbootxyz =
{ pkgs, ... }:
{
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
};
testScript = { nodes, ... }: let
originalSystem = nodes.machine.system.build.toplevel;
baseSystem = nodes.common.system.build.toplevel;
finalSystem = nodes.with_netbootxyz.system.build.toplevel;
in ''
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
testScript =
{ nodes, ... }:
let
originalSystem = nodes.machine.system.build.toplevel;
baseSystem = nodes.common.system.build.toplevel;
finalSystem = nodes.with_netbootxyz.system.build.toplevel;
in
''
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
with subtest("remove files when no longer needed"):
machine.succeed("${baseSystem}/bin/switch-to-configuration boot")
machine.fail("test -e /boot/efi/fruits/tomato.efi")
machine.fail("test -d /boot/efi/fruits")
machine.succeed("test -d /boot/efi/nixos/.extra-files")
machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
machine.fail("test -d /boot/efi/nixos/.extra-files/efi/fruits")
with subtest("remove files when no longer needed"):
machine.succeed("${baseSystem}/bin/switch-to-configuration boot")
machine.fail("test -e /boot/efi/fruits/tomato.efi")
machine.fail("test -d /boot/efi/fruits")
machine.succeed("test -d /boot/efi/nixos/.extra-files")
machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
machine.fail("test -d /boot/efi/nixos/.extra-files/efi/fruits")
with subtest("files are added back when needed again"):
machine.succeed("${originalSystem}/bin/switch-to-configuration boot")
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
with subtest("files are added back when needed again"):
machine.succeed("${originalSystem}/bin/switch-to-configuration boot")
machine.succeed("test -e /boot/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
with subtest("simultaneously removing and adding files works"):
machine.succeed("${finalSystem}/bin/switch-to-configuration boot")
machine.fail("test -e /boot/efi/fruits/tomato.efi")
machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/loader/entries/netbootxyz.conf")
machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/netbootxyz.conf")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi")
'';
with subtest("simultaneously removing and adding files works"):
machine.succeed("${finalSystem}/bin/switch-to-configuration boot")
machine.fail("test -e /boot/efi/fruits/tomato.efi")
machine.fail("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
machine.succeed("test -e /boot/loader/entries/netbootxyz.conf")
machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/netbootxyz.conf")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi")
'';
};
garbage-collect-entry = makeTest {
@@ -438,17 +554,20 @@ in
nodes = {
inherit common;
machine = { pkgs, nodes, ... }: {
imports = [ common ];
machine =
{ pkgs, nodes, ... }:
{
imports = [ common ];
# These are configs for different nodes, but we'll use them here in `machine`
system.extraDependencies = [
nodes.common.system.build.toplevel
];
};
# These are configs for different nodes, but we'll use them here in `machine`
system.extraDependencies = [
nodes.common.system.build.toplevel
];
};
};
testScript = { nodes, ... }:
testScript =
{ nodes, ... }:
let
baseSystem = nodes.common.system.build.toplevel;
in
@@ -461,19 +580,18 @@ in
'';
};
no-bootspec = makeTest
{
name = "systemd-boot-no-bootspec";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
no-bootspec = makeTest {
name = "systemd-boot-no-bootspec";
meta.maintainers = with pkgs.lib.maintainers; [ julienmalka ];
nodes.machine = {
imports = [ common ];
boot.bootspec.enable = false;
};
testScript = ''
machine.start()
machine.wait_for_unit("multi-user.target")
'';
nodes.machine = {
imports = [ common ];
boot.bootspec.enable = false;
};
testScript = ''
machine.start()
machine.wait_for_unit("multi-user.target")
'';
};
}
@@ -34,24 +34,16 @@ let
in
stdenv.mkDerivation rec {
pname = if withGui then "bitcoin" else "bitcoind";
version = "27.1";
version = "28.0";
src = fetchurl {
urls = [
"https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
];
# hash retrieved from signed SHA256SUMS
sha256 = "0c1051fd921b8fae912f5c2dfd86b085ab45baa05cd7be4585b10b4d1818f3da";
sha256 = "700ae2d1e204602eb07f2779a6e6669893bc96c0dca290593f80ff8e102ff37f";
};
patches = [
# upnp: fix build with miniupnpc 2.2.8
(fetchpatch2 {
url = "https://github.com/bitcoin/bitcoin/commit/8acdf66540834b9f9cf28f16d389e8b6a48516d5.patch?full_index=1";
hash = "sha256-oDvHUvwAEp0LJCf6QBESn38Bu359TcPpLhvuLX3sm6M=";
})
];
nativeBuildInputs =
[ autoreconfHook pkg-config installShellFiles ]
++ lib.optionals stdenv.hostPlatform.isLinux [ util-linux ]
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "ergo";
version = "5.0.22";
version = "5.0.23";
src = fetchurl {
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
sha256 = "sha256-fuea76l6kIjk9n/LlktZmJ1B8wiwSfEeHUkTr+I1a2c=";
sha256 = "sha256-bVvqsgfsIlAUwbTbFAYbI+Dtgbxv71cMlDpaReTE56Q=";
};
nativeBuildInputs = [ makeWrapper ];
@@ -11715,6 +11715,18 @@ final: prev:
meta.homepage = "https://github.com/nvim-telescope/telescope-fzy-native.nvim/";
};
telescope-git-conflicts-nvim = buildVimPlugin {
pname = "telescope-git-conflicts.nvim";
version = "2024-01-14";
src = fetchFromGitHub {
owner = "Snikimonkd";
repo = "telescope-git-conflicts.nvim";
rev = "1ac7040f601d16ab3800bdda6f5912a0e385cb29";
sha256 = "0n5jwc7pv14fipavqfvam5691qp9fvs2nksdaihjgqrgl5sd12jv";
};
meta.homepage = "https://github.com/Snikimonkd/telescope-git-conflicts.nvim/";
};
telescope-github-nvim = buildVimPlugin {
pname = "telescope-github.nvim";
version = "2022-04-22";
@@ -2134,6 +2134,10 @@ in
meta.platforms = lib.platforms.all;
});
telescope-git-conflicts-nvim = super.telescope-git-conflicts-nvim.overrideAttrs {
dependencies = with self; [ telescope-nvim ];
};
telescope-media-files-nvim = super.telescope-media-files-nvim.overrideAttrs {
dependencies = with self; [
telescope-nvim
@@ -982,6 +982,7 @@ https://github.com/nvim-telescope/telescope-frecency.nvim/,,
https://github.com/nvim-telescope/telescope-fzf-native.nvim/,,
https://github.com/nvim-telescope/telescope-fzf-writer.nvim/,,
https://github.com/nvim-telescope/telescope-fzy-native.nvim/,,
https://github.com/Snikimonkd/telescope-git-conflicts.nvim/,HEAD,
https://github.com/nvim-telescope/telescope-github.nvim/,,
https://github.com/nvim-telescope/telescope-live-grep-args.nvim/,HEAD,
https://github.com/gbrlsnchs/telescope-lsp-handlers.nvim/,,
+8 -8
View File
@@ -30,21 +30,21 @@ let
archive_fmt = if stdenv.hostPlatform.isDarwin then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "11d9qqfb5kh5zsc7xd6h5xsywacir5z08l2snj0cz2cb0nji9xhj";
x86_64-darwin = "0rbwvvakh1b5iqca49hcmqlfq4g0j067rrphrh0yx7wdyr6kmwg2";
aarch64-linux = "0vrvcy1p5lrdy2lww42w32vr79075vpkwj4q8wfqzd7x72vmhfci";
aarch64-darwin = "03wccm854v9va50x91kp00a16r483zpndayhlwy1fm4n0wdy6iw8";
armv7l-linux = "0b9r78mz5djvv6n82isn2jqb4bwa41hqyxxc9arhrpvpj5w65rla";
x86_64-linux = "0w452wnzyb4wmr2qqq55dhfb1jd0zqmwf65fbmxdz7jn1jimjjrn";
x86_64-darwin = "1b333snvrw8khryhi5scfhhkg43m3b6ds3nvs24nbvx8k7h69hmm";
aarch64-linux = "12p5cdva14s9sfgyrzg3nylpmgdnmfavwx3xxxmblzq1gcal2g6i";
aarch64-darwin = "1l59fcdvynkl5kyz9bn31mld6pi89nynk1zw645rczjm940pac7p";
armv7l-linux = "07ylija6chg6jc2zcavdr9yw1laniigw57f2gilyjynv1cgjm76r";
}.${system} or throwSystem;
in
callPackage ./generic.nix rec {
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.94.1";
version = "1.94.2";
pname = "vscode" + lib.optionalString isInsiders "-insiders";
# This is used for VS Code - Remote SSH test
rev = "e10f2369d0d9614a452462f2e01cdc4aa9486296";
rev = "384ff7382de624fb94dbaf6da11977bba1ecd427";
executableName = "code" + lib.optionalString isInsiders "-insiders";
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
@@ -68,7 +68,7 @@ in
src = fetchurl {
name = "vscode-server-${rev}.tar.gz";
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
sha256 = "094klvp32475f6rsapxkhgsm8cmjmpq4qp3lx2b1vgf3xzl7j9nw";
sha256 = "1mj9fg76b9x9r6ql21hbckpni179vfa9j8fiah9rd6ih7sb72048";
};
};
@@ -15,11 +15,11 @@ let
archive_fmt = if stdenv.hostPlatform.isDarwin then "zip" else "tar.gz";
sha256 = {
x86_64-linux = "0hq2w9rc54qy6234njx6xfh3m1p3d206lr22sdxxa3snnrh4vrs8";
x86_64-darwin = "0knkn4i6vvszxqzsv9564bbassqgszr8bfa4l7hsqy25ki37k5ln";
aarch64-linux = "1k9qvymc7yfq8ihlbx8676gsjyfhg41acc5p4lrw9ci0a3sqanz9";
aarch64-darwin = "029sdf0h9fcviv6qdphzlgb1qhy24vj79h465mf559gdih21xlp4";
armv7l-linux = "16lwgagg2i6mwqm3p2z97di571wgl2hj255pnxqhcz6x9vq26l8p";
x86_64-linux = "0xbnyi6g5a12bip1vh2b5ap5108gwxa9g9g3ncllllz3ak2jim5r";
x86_64-darwin = "0linvibppgjr4dwsrjpqd126m8izq757cnwkr0w4bv81k30j1jv6";
aarch64-linux = "1324p9av9vx8ywz55vdls53b34jp6csnqbm0y94v5azxjvwcr3kj";
aarch64-darwin = "160mwlz17fb0xq935ih35h8bd7dn7gmvy5szra0jdr754xcgn5z5";
armv7l-linux = "07dln5mgrhn0569m77rj30443hgk1z7z8xi442lh5y8ib729q10y";
}.${system} or throwSystem;
sourceRoot = lib.optionalString (!stdenv.hostPlatform.isDarwin) ".";
@@ -29,7 +29,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
version = "1.94.1.24283";
version = "1.94.2.24284";
pname = "vscodium";
executableName = "codium";
+2 -2
View File
@@ -19,13 +19,13 @@ let
in
stdenv.mkDerivation rec {
pname = "p2pool";
version = "4.1";
version = "4.1.1";
src = fetchFromGitHub {
owner = "SChernykh";
repo = "p2pool";
rev = "v${version}";
hash = "sha256-eMg8DXFtVfYhl6vpg/KRUZUgMU/XsCS29Af1CSIbUsY=";
hash = "sha256-rxsKbrgDdVtGEv63SHi3FbFpqU2j6ESksq0SDm78j+0=";
fetchSubmodules = true;
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -20,7 +20,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "palemoon-bin";
version = "33.3.1";
version = "33.4.0.1";
src = finalAttrs.passthru.sources."gtk${if withGTK3 then "3" else "2"}";
@@ -158,11 +158,11 @@ stdenv.mkDerivation (finalAttrs: {
in {
gtk3 = fetchzip {
urls = urlRegionVariants "gtk3";
hash = "sha256-auo45tzMY6bKahSEmUrkcYnz7v+GFbsrG+ePAKRC00U=";
hash = "sha256-34x9L0L42KO7mUDaW41I71ln5xyHGAKBoAJ6HcDC//g=";
};
gtk2 = fetchzip {
urls = urlRegionVariants "gtk2";
hash = "sha256-7qrT5fSfwcEAkbq8g/HRoUiDv5+qrzpiysjHTdZVgLc=";
hash = "sha256-TRIgfqKsJxueZ/Oazw7kTLjVyxdh+IUiR+XDaemow9A=";
};
};
@@ -62,8 +62,8 @@ rec {
};
kops_1_29 = mkKops rec {
version = "1.30.1";
sha256 = "sha256-aj2OnjkXlBEH830RoJiAlhiFfS1zjVoX38PrsgAaB7A=";
version = "1.29.2";
sha256 = "sha256-SRj0x9N+yfTG/UL/hu1ds46Zt6d5SUYU0PA9lPHO6jQ=";
rev = "v${version}";
};
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "temporal";
version = "1.25.0";
version = "1.25.1";
src = fetchFromGitHub {
owner = "temporalio";
repo = "temporal";
rev = "v${version}";
hash = "sha256-H/kHPS43h+MQgOpKIHoM6hJQxCYq8Yo1GzOQeLFRoNw=";
hash = "sha256-/y03XyJM9OaG8Pceh6RuB5eIU0ue3O0cPnax4ASTt4k=";
};
vendorHash = "sha256-RhWeIT1i86wxAALNhhpWZjWo1v+82vTrGBWCaryE3Ws=";
vendorHash = "sha256-7t/hMTCraDLLYsyoGar8j7Q84temMGY+ZxVmJBGBw0c=";
excludedPackages = [ "./build" ];
@@ -43,7 +43,7 @@ buildFHSEnv {
targetPkgs = pkgs: with pkgs; with xorg; [
libICE libSM libX11 libXcomposite libXdamage libXext libXfixes libXrender
libXxf86vm libxcb xkeyboardconfig
libXxf86vm libGL libxcb xkeyboardconfig
curl dbus firefox-bin fontconfig freetype gcc glib gnutar libxml2 libxslt
procps zlib mesa libxshmfence libpthreadstubs libappindicator
];
@@ -17,6 +17,8 @@
, CoreServices
, desktopToDarwinBundle
, useKeytar ? true
# command line arguments which are always set
, commandLineArgs ? ""
}:
let
@@ -106,7 +108,8 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
--set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher.so \
--add-flags "$out/share/element/electron" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
runHook postInstall
'';
@@ -45,14 +45,14 @@ let
pname = "slack";
x86_64-darwin-version = "4.39.95";
x86_64-darwin-sha256 = "1bvafqnh60ps5dba473l6zpm6hw7qcmpj55mxm6amakvkp63d92s";
x86_64-darwin-version = "4.40.128";
x86_64-darwin-sha256 = "0hfgl2pfarnd9gh921rfz9s9kkvyf8fmmhgb6j87jgbwf8rjrjmm";
x86_64-linux-version = "4.39.95";
x86_64-linux-sha256 = "06d4mnvk3fj57laygf08nlh970wb4jvq1kycv27h1bq6bq365b6n";
x86_64-linux-version = "4.40.128";
x86_64-linux-sha256 = "1p7ybwrsfy5iq5ggpz1p4mx58ilwzsvn7k149i5ifi0zifahwwdg";
aarch64-darwin-version = "4.39.95";
aarch64-darwin-sha256 = "0kmbf9nd6ccng8a9qb02i2n2mcrjk45cqphx0k7drwd4nyn6zzmy";
aarch64-darwin-version = "4.40.128";
aarch64-darwin-sha256 = "0h6659lny80kxrqaf9qidirkw702wi7hjwwdhk9y0gcy87s9rqwd";
version = {
x86_64-darwin = x86_64-darwin-version;
@@ -1,665 +1,665 @@
{
version = "128.2.3esr";
version = "128.3.1esr";
sources = [
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/af/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/af/thunderbird-128.3.1esr.tar.bz2";
locale = "af";
arch = "linux-x86_64";
sha256 = "11450c70fbb9952707384ef5900ffce76c0ddc079cd02993a37393da3b6f35e1";
sha256 = "daec0c206763600ea16dc09db4c11ed82132bf6ed4275307f5635677891f3d43";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ar/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ar/thunderbird-128.3.1esr.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
sha256 = "99b09985161dda620e53c5afe9387357b7e8ef0f46c3af332c15167c9bfa32fc";
sha256 = "04801b87ddc17b059a61cf4d16e2d7eda45ca96c0de497e93e02b24be8590176";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ast/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ast/thunderbird-128.3.1esr.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
sha256 = "5cca2e4b9ce3e52625fb9442c15aa5166a836a3625c0bcc9fad0a6a888d564b8";
sha256 = "046a8218164d1dc3f7e1b7d1f134c9fb94f9fe30702e7f0ce8474145725590c3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/be/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/be/thunderbird-128.3.1esr.tar.bz2";
locale = "be";
arch = "linux-x86_64";
sha256 = "c2cbc174ef0bf8616a09cfe863dcd850722c8f0fb8bb3d071fa7af6da7088fd2";
sha256 = "2c1bec26b01f2ac25df9537f34582c18677fc93203e94c378323f0ff161ab6bb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/bg/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/bg/thunderbird-128.3.1esr.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
sha256 = "92ac1d843307d3a13da2bd7eaacda090aa3ca9b26e3da33a2d8e4780ccb7affe";
sha256 = "64a6c820bc35b416aff30822417486104bbde4842efec785db6b2e1f35b66b70";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/br/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/br/thunderbird-128.3.1esr.tar.bz2";
locale = "br";
arch = "linux-x86_64";
sha256 = "c15561c692845ab1d750dfe2fbfa0031d4b713afe5b1359644ececef0def1e3e";
sha256 = "9074dd4e49c2a73f62cf0454d29e8bdd417dbf129489baca9848912cc60c8fe8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ca/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ca/thunderbird-128.3.1esr.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
sha256 = "efdfcf6d564b5e82f0b0e8d2bd93ba32258cbc403cefda46036e07bc813630cb";
sha256 = "ded677ad4962afc9372067f8c87f0d1623275a03cc98b125fd721ef3c3df6028";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/cak/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/cak/thunderbird-128.3.1esr.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
sha256 = "fdbea8ea3eca0ba502c3340f02462ce4f03064498de8c37b86559a5c491a2829";
sha256 = "7ca0781d25f77cc72dcfc1b8ad88fa222a90c8af2fad1535c30f6e0df04cc2bd";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/cs/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/cs/thunderbird-128.3.1esr.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
sha256 = "34233723a02da1021520ea9630d8397d29ff135ad0f80e499d6bca3a0b8c34c2";
sha256 = "e8f6bd963a49342d176c4b45ceb7038c3a18a6002060237cd06c807f27338c29";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/cy/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/cy/thunderbird-128.3.1esr.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
sha256 = "0fa356291b99737024a5aae863c18456ddcbb7300369367ad083aab9a48b2dfa";
sha256 = "97486ec291bbec41a3813a1e289bd044ea3ccea71a66c9182cf13481bb17765a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/da/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/da/thunderbird-128.3.1esr.tar.bz2";
locale = "da";
arch = "linux-x86_64";
sha256 = "c7f51211239bcc5265e2ab81d257b8a6ff0811aa5294b7bce68c08f2fa8e3524";
sha256 = "2f83197baae9097bf2a13f3d781416e32e711de14f2e9e6f3be4ef909975b5c5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/de/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/de/thunderbird-128.3.1esr.tar.bz2";
locale = "de";
arch = "linux-x86_64";
sha256 = "a128e567f8701ae72fd82e329d660603c2c30963b80a88e646e00254312d5141";
sha256 = "d5164afcd92be1e64887d056b0a97a2c8b8a8e0f8b52d0d71380ab44deb54c16";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/dsb/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/dsb/thunderbird-128.3.1esr.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
sha256 = "869b352a024d9ceec41ba4d4c6d70085e8e9986dc9733da691abdd41e5d57389";
sha256 = "74552c085365a7a381b634dd2db32620acd3cdb4e3dd8d93d24344c45149d027";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/el/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/el/thunderbird-128.3.1esr.tar.bz2";
locale = "el";
arch = "linux-x86_64";
sha256 = "623d36518dbc976b50e8a6fc7e14240eff158dde50fafe1ecaead4d6ad5554af";
sha256 = "abb4db492bf0599dc08a0af742a863729abd45b67134a450faf9bb4dc9fbd048";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/en-CA/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/en-CA/thunderbird-128.3.1esr.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
sha256 = "321b39bc363f058e04742a4bf64e66a3d36abdbf5876ccec21657b69f1abc6a4";
sha256 = "149e106c120954f9d6c8021a426d487e482deba81aa2916cef9bbfebe100f6a4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/en-GB/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/en-GB/thunderbird-128.3.1esr.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
sha256 = "c40566dd51219c4373af3b476b8ec4189c8ca6de34befd84d76dcd9af1badc52";
sha256 = "553f881b15952c5cc4ee31f7fe6d5425a8aecb2e292968972c6a920f2fea89e4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/en-US/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/en-US/thunderbird-128.3.1esr.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
sha256 = "e1886acd969d75f1030f9dc68d3f360548b15e7ff6260182ebeaffcde53d11d2";
sha256 = "6a4738c5b07b2c6e8668cccf2c3c24f78e2d8ae7a04a1963638e8404d96f12d4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/es-AR/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/es-AR/thunderbird-128.3.1esr.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
sha256 = "04f3275d8aa8cf68618e84bbf12df8974e63acd50e799d06032c96931a1f3c8c";
sha256 = "9b886923b198af374e589666abe029d6cf905f5a0e77acccb35817815a3bf42e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/es-ES/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/es-ES/thunderbird-128.3.1esr.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
sha256 = "a879e7d4a0791ca53bb1904b7a162119ce2271d9d7d33a1fcacf4b92338ec58e";
sha256 = "6fad8af3dfba46a88889a147931f202bbaecbf44db174e33237974b0e1d461aa";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/es-MX/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/es-MX/thunderbird-128.3.1esr.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
sha256 = "2367511c520bc2a10e9ca986e56f0fa79d77af710a97367c30a8a963a932d060";
sha256 = "76dbaa277644f72c11b2826973253daea1cd263265aac3d393303f3d4eca736a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/et/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/et/thunderbird-128.3.1esr.tar.bz2";
locale = "et";
arch = "linux-x86_64";
sha256 = "256167062672846e90962e3a7a3c60c04c34c18c35c8b3b47b98663922b2421e";
sha256 = "89a9ce893dd7002dfb6e249309f25f45bc93ee84a7895c7911d41d7934643686";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/eu/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/eu/thunderbird-128.3.1esr.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
sha256 = "4b5928bd99c088366b08c09de01b7d5dc5f1f11deb5ad48db29f0e266f3790e0";
sha256 = "8743449758bd59afbb83e82bd62ea0f53c2a6c4c61ad095604d5b50a4b7323a4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/fi/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/fi/thunderbird-128.3.1esr.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
sha256 = "878cc0b6831e75f80408ab25629b6dc97d993be97f0144b87dee331019119124";
sha256 = "5a59846d72690a074f4bddafe97d7f088341e8de0c43e958a6d2df7021b016da";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/fr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/fr/thunderbird-128.3.1esr.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
sha256 = "ebf090c97372ace2ab04ce43545b05328ae50b7e7ccfe4f1bae0abc6bf7bf18f";
sha256 = "6de6c9b793215ab2b1c1ccb93bcb535a99a165085842064dadd0a5b42a57b71a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/fy-NL/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/fy-NL/thunderbird-128.3.1esr.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
sha256 = "945f072fc92cd3db1e2ce9de0fc5c8fc08e13a8764db54f9494a896fd4add7c7";
sha256 = "ae85b76c1b512ba5d062ea4f157a587056afa859c238b511f8eeb412ae583682";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ga-IE/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ga-IE/thunderbird-128.3.1esr.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
sha256 = "556a3a879c173038f829c5a94f659b3fe86848465498b6cd287aace380409a7f";
sha256 = "59168b9e0dec31685222fd9bd8b83d0f230d3308484a4a2ea5416dacd7f49728";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/gd/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/gd/thunderbird-128.3.1esr.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
sha256 = "614ef8d8f5229e7c153fb239e056002bfde8a1920cffc3e317dbafd0b486b8f7";
sha256 = "4c35f2ea2fb781301d87649111c6d770e94f8487fbe8925f6156cd7227e50961";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/gl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/gl/thunderbird-128.3.1esr.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
sha256 = "b81c0470717d21cc95412e938c651aceef010bd771a90b6b1b2166c56a064bee";
sha256 = "da4c2677e61e8759c5f4ff5f51f737201f047b5166636000bf73377a0b39c0eb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/he/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/he/thunderbird-128.3.1esr.tar.bz2";
locale = "he";
arch = "linux-x86_64";
sha256 = "22885a85a65c0be0d292ac9c7275ef07c6c04c79a9d8b383d17e2d23d5f78e8b";
sha256 = "94085a1d0106c7ce6bad8383fa85e530a79f8a38157ad94e5352f45847c7ba31";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/hr/thunderbird-128.3.1esr.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
sha256 = "a8f2235ac630a23d1e00d670caaa9ccb0f939d97171449554fe59be6c9051510";
sha256 = "49a4dd6bc68b28a96fc59235fa16db4903561eea11a836e62e55f284a1526a23";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hsb/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/hsb/thunderbird-128.3.1esr.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
sha256 = "341f8c2753ff38c0e9d61a634ef448a1f2c91cdba9a7d7c494748ec6918da6d2";
sha256 = "e9e4ca0683a0eeecdacc7d92d8a59fea75459f7cfbdfe2f4406fed041429f041";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hu/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/hu/thunderbird-128.3.1esr.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
sha256 = "b3ae6f2fc7cce5cb2bb2634e261c0b73f218bb50ca0b81d8afe588b83a0e601d";
sha256 = "379bfeb3e5554643b009d7f62074ccf6e95a6c46807f938e73054625b752f77c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hy-AM/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/hy-AM/thunderbird-128.3.1esr.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
sha256 = "23c25370fa8c9822fd4f34bced4df5f889375d487709698e7a81154152b54583";
sha256 = "37ada95839dacc8907a2dc89bdc424d7dc73aa18f9ecf6c69afd8807e4470d4e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/id/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/id/thunderbird-128.3.1esr.tar.bz2";
locale = "id";
arch = "linux-x86_64";
sha256 = "989719255963ca2d3550022c43c724368a7c48e484b4557c300311237902eea2";
sha256 = "204f8b79def7de4a490487588c2e9558259d88ae92a96754579b183639c64e8d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/is/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/is/thunderbird-128.3.1esr.tar.bz2";
locale = "is";
arch = "linux-x86_64";
sha256 = "afae9e8d124da04903874a35879b20bb45e9f03c0aeba78108e3765bb0803b63";
sha256 = "17ee110e6e07d69f63b64d38ead0691a6ca521428c3716230f8a0aca6e23c800";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/it/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/it/thunderbird-128.3.1esr.tar.bz2";
locale = "it";
arch = "linux-x86_64";
sha256 = "f55d86350731c4b89eafde39d7badd228c22ae7d250d51f1f922632b27d9c66c";
sha256 = "d17a2eb22847628217e7a918c33de0ab20db2576a28ebe177f37fbd9d84bbb9b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ja/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ja/thunderbird-128.3.1esr.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
sha256 = "54315aaeb33ff3b1b795545e5c7cdabb32a3fb6b36a0b0175cf7e770fece96a6";
sha256 = "07f36b8b7458d725c8df846f1fce58e7ed2569b4324e4b7cfa1750fbd21b0088";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ka/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ka/thunderbird-128.3.1esr.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
sha256 = "881373f2c3903b72b3f626a7ae245921f235e00b23943b9379e589e6c01b178c";
sha256 = "d6675e3d23156b74f38b3805d3fca6fad8df6a1ec6adb311c1c783d928772531";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/kab/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/kab/thunderbird-128.3.1esr.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
sha256 = "2f01762ab42c86c65d0a88034c6f931fa599411a3cc705772a9bedef139191f4";
sha256 = "a4cc73ef677a343d49b61009de05bffacad1c8cbf368d8ac79e87fe12a24f1c8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/kk/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/kk/thunderbird-128.3.1esr.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
sha256 = "60202a6ae70d4c83b65c46803d0cd7cb2fe1b4524be63544c18a83f980cf470a";
sha256 = "4d3d0010e55a9665a6f330e73acc8a9d924587d216c3ec2558e24ba83789194d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ko/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ko/thunderbird-128.3.1esr.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
sha256 = "69e259e3737e4f759be6cc069acaa58c5a36e20eefb6712c4c75936e7b6aa509";
sha256 = "55ed9d48ec45a9cd04705a8be89701262c7cf2aa16f545f08b361d89d30bd160";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/lt/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/lt/thunderbird-128.3.1esr.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
sha256 = "74e750b692f59232f96094af91bf9053df8a680774e20dad34c6436dee10f9e9";
sha256 = "4f84a793e672bdfca124eaf1f64c2753a2a424d2c689403ea8f06ab18d2c0922";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/lv/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/lv/thunderbird-128.3.1esr.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
sha256 = "3e2fbc8693718ce8c4cab0bb1b8ec973d84a95342a6a7783cf5518a5fb3cf459";
sha256 = "28e40e746c71f4d391a3fa4c640e0c248698fba1bcc4f3fa245d98774da0b393";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ms/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ms/thunderbird-128.3.1esr.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
sha256 = "b98245ec7b41493883fd06af08f94d350b22e61e36ad3f289af2239cba5e84d8";
sha256 = "fb3c86acd2353143535397dd0dc0c478ab1a77ca13a7b44f2d726bfdbacbafae";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/nb-NO/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/nb-NO/thunderbird-128.3.1esr.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
sha256 = "e40f4b73190e85cd2c60c9a87336669e3a36d599642ab4415097fd4485287ede";
sha256 = "9ed19c21dcc40642559eed238d40d39b19f6582060f92814279e111e481f72d5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/nl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/nl/thunderbird-128.3.1esr.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
sha256 = "c76ae2e8e46d062964c913d57742a1195768af6eb273e01b5488f692dc40a7a8";
sha256 = "6ced73e12b0c29295e00f32c72d86389c586c0442cda1592a74285b2509a0a55";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/nn-NO/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/nn-NO/thunderbird-128.3.1esr.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
sha256 = "b1c25025a407d698a45e6e0077a74aba3fb80389ec9fc7cefb2f847adcec7c40";
sha256 = "1b2601fd6f4ba3c5442a9108d3647be6ddfa63afb582ea12a949fc082e7ab925";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pa-IN/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/pa-IN/thunderbird-128.3.1esr.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
sha256 = "4c8ddacd077e71f005e02c2c4c1553c6d83a96b4df1b15705dd75a302d7f6cee";
sha256 = "6489cbfa303b20bd0cf44592ef4ad2594447c440694077c8987d48049aee7235";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/pl/thunderbird-128.3.1esr.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
sha256 = "4f8acd938e09f5fbe1a61d22ea93935e44a94ce00b416da48e8e74cbfcd8b2e6";
sha256 = "db7dc4b36b5a76e9e7fbd703d02e3d6cb3fb48d2263144bb75418e59c9038f91";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pt-BR/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/pt-BR/thunderbird-128.3.1esr.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
sha256 = "1cb2d1eb626c9784555f3dce178b4b4e119213af1c9181b829442b9fb935f0ef";
sha256 = "378bcb5617eccb26bc86d6357b35edb343b2f339ee4e35d114aafb788bf35261";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pt-PT/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/pt-PT/thunderbird-128.3.1esr.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
sha256 = "d44ed828ddf0b6ea644470dd90e332be92893d6a37abd5cdba0bec4bdafcfef9";
sha256 = "f33c33c70d8271061bbbafbccc325206c9b37f56637907a87e4d11aefc4675bc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/rm/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/rm/thunderbird-128.3.1esr.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
sha256 = "77d56c77323ed0cf994f79bd9a81aa516b183542794a3ca5e4fb15f11595fa37";
sha256 = "40e60095cc4f7e10b052b15a80b1e58228c94b6c77cf5f90b5fcc8cadf094472";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ro/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ro/thunderbird-128.3.1esr.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
sha256 = "8080b95078f732104df47d426cd353468fa743dc98682dfd83d72091a6701d12";
sha256 = "4b3d0eb8cfe07e345c2effe075b391ce82d75db4ed3c5015e25762a1919abe0d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ru/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/ru/thunderbird-128.3.1esr.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
sha256 = "2ddd6a04de6b15e439c43435772c09823e7814561d9228db63b17fcd6c00a6c1";
sha256 = "76ab341bfb48acadd8ba0211be37e37912f002e5f814e60cb0c92182c6ffe5c7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sk/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/sk/thunderbird-128.3.1esr.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
sha256 = "ed9f68ac0accc5ae9a4e86fc723a2d4128255ffd48264e0290a63792b5171c8a";
sha256 = "9af224be897872875d06abefb82f7d0b6230b3d10bb4ce7c33accab3a1303b7e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/sl/thunderbird-128.3.1esr.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
sha256 = "d85ef11dc6f123696a0d9b021ebc1b78b606e9cc372b92ecdbf227d3fd275c3b";
sha256 = "c66eb160c777449c032212972200997cf3303d916f50019db88a4ab21d737126";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sq/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/sq/thunderbird-128.3.1esr.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
sha256 = "59bb9dcb795ce15413c836ec671ba0760eba831741ecd94d181199171d26d3b3";
sha256 = "dfb18940364e6686a2ae369fb6f5b410e978c42efc7e506288603d0c76ce22c1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/sr/thunderbird-128.3.1esr.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
sha256 = "257e912ea0396a95681fc72a4f8db2248250defbb0a146c8618a067e582f14c6";
sha256 = "0b1c98eb37db5c6ff1d216a598e352d1a77ec3a94bab7fa49790ba275714c188";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sv-SE/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/sv-SE/thunderbird-128.3.1esr.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
sha256 = "4d1fb17a41af616be0e357e4accb2757adfc6d81ca586136f93dc44144b30c4b";
sha256 = "a2916749179de24c63b8f393d19a3ba4ec5f6e77584f44ac5ebc24a4b0c94ca1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/th/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/th/thunderbird-128.3.1esr.tar.bz2";
locale = "th";
arch = "linux-x86_64";
sha256 = "e52c7d23fa7c8ab9e1868eda178ae82ab0d9c86f3a8bb1b112817692e05fcc24";
sha256 = "bb25041295fac38b2888e95c40835ca289f10be95d71ab32fedb7d0dcaee1c04";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/tr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/tr/thunderbird-128.3.1esr.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
sha256 = "ffa0651c001df67568e7e87b5755943894a9f55f4a8f67d7e10d08dd49a635a6";
sha256 = "4a512e2bdf3ccadade3166a8acf62935244fc63b760db6e7c35a74299e49144b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/uk/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/uk/thunderbird-128.3.1esr.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
sha256 = "b208ef12f677ad325d460b9a67d68e9b78a0ba4b7cd9c4eff6b2a25ba0e1f051";
sha256 = "9094442afcaabeab3424972cfede908526c7d3ddd600adcae6c345450fb42be9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/uz/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/uz/thunderbird-128.3.1esr.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
sha256 = "7a11f1ae369d4dc1805d9221184718011533b8a657ebbc7205a60526ce1d7b97";
sha256 = "d4969535da853732d20475bfca72d871c76f39131cdac0d00607e0bc5ccabf5c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/vi/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/vi/thunderbird-128.3.1esr.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
sha256 = "057b2458a6b6759833c86f5e7019b3495a70e2656ad7089f1491c0dfda28e689";
sha256 = "95bc29e5c14fadafaf5598687f4242ec80cccbd5724988fe471282ea65473e18";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/zh-CN/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/zh-CN/thunderbird-128.3.1esr.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
sha256 = "74d44042e2ac9e95336f1d13930424dc420f5bcef9f0308e2f19a6fc34c97dda";
sha256 = "bc578ed3316fa130328219d7ae34c40250b57ad47394c4e2113d2d53031c3879";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/zh-TW/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-x86_64/zh-TW/thunderbird-128.3.1esr.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
sha256 = "5ccf633ad828fffc3c9e352c78d245df61f2c56eea49e8bda021645d1425e85a";
sha256 = "2ec4a508e96715026c4c4541d83e5f14b67c88c9e31e22bfb4ff6280eacbc1c7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/af/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/af/thunderbird-128.3.1esr.tar.bz2";
locale = "af";
arch = "linux-i686";
sha256 = "997ac3091e641305cf282723590d48204fd542376d0227ce98cd9a7bf24230c0";
sha256 = "75b27678d06857225ad241c90101d39b1e3e42c8a1f1e17f817bc13287bf185c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ar/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ar/thunderbird-128.3.1esr.tar.bz2";
locale = "ar";
arch = "linux-i686";
sha256 = "f5f0564d607ff19d51508dd17f908e38d8d4f53bb4241b4e828a5bba2c1b8eee";
sha256 = "e2bf282b127efea3c1deeb9a375b42b4425ba30bcd730eb911dda3cd93034a77";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ast/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ast/thunderbird-128.3.1esr.tar.bz2";
locale = "ast";
arch = "linux-i686";
sha256 = "2e585288ae394f9f32038ae75ae47398857c21c88af68cac8d3c7801f2b6b55b";
sha256 = "035213d412786ec052430d4860278fc5c0ffe4b999a5924f3bf1a13683e73d3d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/be/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/be/thunderbird-128.3.1esr.tar.bz2";
locale = "be";
arch = "linux-i686";
sha256 = "0379fbb7416bb4c92ba77403f5769cc810387c3b5f9518b1061ed2f2e3f179a1";
sha256 = "8d0aab6ed5c1cb36cc70939545ec0eee2566483bbe89a1b319c63718201ea01f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/bg/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/bg/thunderbird-128.3.1esr.tar.bz2";
locale = "bg";
arch = "linux-i686";
sha256 = "1a07ca44cd3071c4adc640a53ff2f0e9b66b8b4a2855b8ba1a491e98d14ec3e0";
sha256 = "f22334ee6b9f47bb6de1623d457aa3a50932dc1f0e047037b07a86793134eca8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/br/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/br/thunderbird-128.3.1esr.tar.bz2";
locale = "br";
arch = "linux-i686";
sha256 = "cd47f44426a82afd286064963782403eaaccabf40fc43335761770c7595c6776";
sha256 = "0c2e506a17eb9d3d23fc366212644b3e3f78be621adbe2410a1ef8ab0803d86e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ca/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ca/thunderbird-128.3.1esr.tar.bz2";
locale = "ca";
arch = "linux-i686";
sha256 = "51009f72230f084d005fe9424d5e4f161a1428e650e7b9cd396132a64352ecfd";
sha256 = "0fc351e87d10b1f33391990716581b4417f1f9759351732ca765e29e9c077c74";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/cak/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/cak/thunderbird-128.3.1esr.tar.bz2";
locale = "cak";
arch = "linux-i686";
sha256 = "27d392a801b4727cc002685248f2b9abdd6a7987fedb88e1f6dd5a237f3a2f0b";
sha256 = "653eedb42f9327be63d4ccde4e9a15e431235130d70c5e1e4b90ad1766fabd65";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/cs/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/cs/thunderbird-128.3.1esr.tar.bz2";
locale = "cs";
arch = "linux-i686";
sha256 = "1de78102a09e564cae08bcf4228aa06ee191abe89975e0e5936cdd98b82d6919";
sha256 = "afab7db6f33f730ad5dcbad73c68aa679eeac995a8f87cd3dd69ffeb9cc05507";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/cy/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/cy/thunderbird-128.3.1esr.tar.bz2";
locale = "cy";
arch = "linux-i686";
sha256 = "fdc84d26c11acbd6d92d3ac2104e15317eb82fdec3c3d0fa8a5c31ce023ad039";
sha256 = "d4efd6a9bde2a8177c2322ed797c73a347913c7c34eefad3c8059efa3b291e87";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/da/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/da/thunderbird-128.3.1esr.tar.bz2";
locale = "da";
arch = "linux-i686";
sha256 = "eb0a2cd1d6113d8e0bfa2233adf3b00dfa950ebf2fc3319fe1b6afa75a616c98";
sha256 = "ed872e714c0ee80a9ae40ca91ef2675aeac20125ae53245b41003614c8ba2a9e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/de/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/de/thunderbird-128.3.1esr.tar.bz2";
locale = "de";
arch = "linux-i686";
sha256 = "4953cae2c051b63f360964c8efbe7ab4f682e06e4058382b959b6ce843418c96";
sha256 = "3feabd14c409d43f07973ae4054ce5a3c13ce1b1023bfe9c9614bad39a36f432";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/dsb/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/dsb/thunderbird-128.3.1esr.tar.bz2";
locale = "dsb";
arch = "linux-i686";
sha256 = "88381b5b23427bce3b53893aef9d334b54101cd30b2af501cc87fcb319f43c3b";
sha256 = "0f9f5e55650af7cb264b300286f426d730a9f6594a1e6a5d9f1305dfa067c767";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/el/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/el/thunderbird-128.3.1esr.tar.bz2";
locale = "el";
arch = "linux-i686";
sha256 = "8b5d6484cc05473b039dd74edbc30184e9ab83e40f2ed3193638dde0da7f2eca";
sha256 = "7f399e76ed236a3067f0e179c1d902561770234a20cfbb78345b4156549a1eab";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/en-CA/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/en-CA/thunderbird-128.3.1esr.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
sha256 = "b5c9adc111b62a9ba3d4b06c9d79953edd00a25df424ebc6ee8f9263923e6333";
sha256 = "0bc5ef5a3e472463ebf823b16efb36cff728c432829ec73fea7f9bed1c6fcd81";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/en-GB/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/en-GB/thunderbird-128.3.1esr.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
sha256 = "4cc02fc3f7417620256357927e9fb199ffd081996b2d08a149ebe57f4156d932";
sha256 = "22d878733613360bae796d07249fa6be2ecfb12680c7102dc7d6d3a2fb947a89";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/en-US/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/en-US/thunderbird-128.3.1esr.tar.bz2";
locale = "en-US";
arch = "linux-i686";
sha256 = "ade6909367c4311c478d50a16fffdf2aadab51dbe59a5a7df0203adbc93d4846";
sha256 = "0c0a466b278372a784b551922c4c47ca1af8161ee024d17588524d92e4364dbe";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/es-AR/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/es-AR/thunderbird-128.3.1esr.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
sha256 = "461c5f11d7ae6145bb7e9779cd44c8c7107d779d30d3a20621d046b2ba092fd9";
sha256 = "c60187c27a612747e8cd05ec3d6ad704da2c9fbf48ea4d9bf1a70be778047b43";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/es-ES/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/es-ES/thunderbird-128.3.1esr.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
sha256 = "09bc297bcb61f8fb4216147fc360ee3071349f213f642edd5ccbab3d86ff2cb1";
sha256 = "a06dd9c977dbef9679b02a9a36ad75b0929791d7dcbd5a5c05912d338201e8df";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/es-MX/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/es-MX/thunderbird-128.3.1esr.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
sha256 = "bb4332ab92aefd60e3ccad37049e1a908449c7d9809cc67343149634fa451a66";
sha256 = "a776bfe85b70468620ad977659908d61e79925fb8bfd36a4ace30dc06ebffcdf";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/et/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/et/thunderbird-128.3.1esr.tar.bz2";
locale = "et";
arch = "linux-i686";
sha256 = "b567ac1b9703db4c4b56b4c05d587a5c7d298f8b76858f26b2ca528a375d805b";
sha256 = "c1e860a0361fdaac8811f25eb2aeaba7973ebbbdcbf769fc42791c7638aa4fae";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/eu/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/eu/thunderbird-128.3.1esr.tar.bz2";
locale = "eu";
arch = "linux-i686";
sha256 = "2d8f103540ca51ea231de0f6885b8b717eb4055016cd54d7b10849f52db3723c";
sha256 = "88383b1d46ae04586637692c6dcd3a59795519a64db0feb830bdef66b55f8f76";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/fi/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/fi/thunderbird-128.3.1esr.tar.bz2";
locale = "fi";
arch = "linux-i686";
sha256 = "7b170156acbf6a4fb315e78ad08c173d7ddcf00714ce7b40e64f9198297ed715";
sha256 = "fa11ef201144fd9f51fa36c8d7cdf3106f445bfdeed203db7f2fe50ad315527a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/fr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/fr/thunderbird-128.3.1esr.tar.bz2";
locale = "fr";
arch = "linux-i686";
sha256 = "43972b7689800f1c2e69edca8a907d179c99ac8778931be912daefeb331a36bb";
sha256 = "5427eb293b84db327fd6002dc84f39531c5a34aff7fe3b01e591a4ff5e243b07";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/fy-NL/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/fy-NL/thunderbird-128.3.1esr.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
sha256 = "5f2296663581feee2c24906bd479681fe4380c725bbdff9f299c4217b2f744ae";
sha256 = "6a6a3e6d7f2a26f1cc70e6d26741e882e12344836b83735fe0cc15c560b3f554";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ga-IE/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ga-IE/thunderbird-128.3.1esr.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
sha256 = "c478695ffca7d13bbdd415259304f3e2c4adc52cdc16d27fb3130c6332f9360b";
sha256 = "ff9f0296f2694213d58c330e68b56aa657392bfcccd765ac0bf2847155ed014d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/gd/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/gd/thunderbird-128.3.1esr.tar.bz2";
locale = "gd";
arch = "linux-i686";
sha256 = "eac3e5806ef6c62a45a0fe6e7fd3ef2d6bafc7665d70501536fa4cd0c1b745b7";
sha256 = "79a080ab46a998ae7584ba26afae53418764b206e44993bb56bed846a6317be2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/gl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/gl/thunderbird-128.3.1esr.tar.bz2";
locale = "gl";
arch = "linux-i686";
sha256 = "204f8cf41b39d991634bb79bcb0260b2f403ea93522a1fa907ad3311a5bb96c1";
sha256 = "19187ae587048da83c6a0a99e8f72fddf0cdc92c4481d40c534a0664a65d920a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/he/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/he/thunderbird-128.3.1esr.tar.bz2";
locale = "he";
arch = "linux-i686";
sha256 = "f2df6508f6e9caa6647cd4b6eaadde869ee4001afa438d596932c2bd49d927d8";
sha256 = "e37fd7a629ba735e5916f61a6d46ca71e5698a6d16b73442ed74534f87703ecf";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/hr/thunderbird-128.3.1esr.tar.bz2";
locale = "hr";
arch = "linux-i686";
sha256 = "1c632e191f37f8e63692d4f4b8dbdf831148f8ef29ba44fde7b2cfd52e6d9cf0";
sha256 = "86c8c6f34e76873060b34b33a235b5696191f3d58042be62f5de59cbb82261e9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hsb/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/hsb/thunderbird-128.3.1esr.tar.bz2";
locale = "hsb";
arch = "linux-i686";
sha256 = "c3f3acb8c5e45a2ccf97d25eee4c3c0e9af00785e55d8d8a5ada3edb2761cefa";
sha256 = "80489dfdf52594c34798629d7fef66e67a8b5aaac3c6275e25c092ed0de015bc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hu/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/hu/thunderbird-128.3.1esr.tar.bz2";
locale = "hu";
arch = "linux-i686";
sha256 = "10bcb2f4d27a065d72d6d6a4b88dfc826f974faf5b2b1bcffb8e723c0d0d29ac";
sha256 = "2277897b93514a1995886d637b668a469ffed943c05e91f7e209fab23ee1232a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hy-AM/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/hy-AM/thunderbird-128.3.1esr.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
sha256 = "267a887612e3fa82ed92ca98b97976fe3baf0ede1fc47ad30d8c4939c4d54a33";
sha256 = "b321af1421b2649d5ddc42a23e31ea76068062cf8a956495969835dd0e0fe7a7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/id/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/id/thunderbird-128.3.1esr.tar.bz2";
locale = "id";
arch = "linux-i686";
sha256 = "a7ecdfcd9bfcfc17c2a32c697ec0afb0370e8f5ca066e2224ebc540d8bc61f0f";
sha256 = "4c38b3f5afb7b65a8a8089c2d258016dc4c8e60154499bb4ea2c110a29a7f7bc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/is/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/is/thunderbird-128.3.1esr.tar.bz2";
locale = "is";
arch = "linux-i686";
sha256 = "64d6dbbec1d876b614ca601a58faa4baca7680a4045a9c54b4331b5bd104b86a";
sha256 = "d7c2925526dac179bf7c857b9044058818c5a49aeacca405fe120e01a0fdc28d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/it/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/it/thunderbird-128.3.1esr.tar.bz2";
locale = "it";
arch = "linux-i686";
sha256 = "106a92c15da3e96903b511ee7759e764b3378713b54f13437713b9c02982798a";
sha256 = "4c637d4998c5d8db04a7356401eb64cd362476f91ff037979b94487548e9f0d4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ja/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ja/thunderbird-128.3.1esr.tar.bz2";
locale = "ja";
arch = "linux-i686";
sha256 = "a65e9f47fd722de2281d151c95ede105cb912c8b62d3348fab904a4fdcb6579a";
sha256 = "4591a2d3b55f402fe47b2f7342f34fcc0e5ad6f5147f72929bef8fd59598cef1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ka/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ka/thunderbird-128.3.1esr.tar.bz2";
locale = "ka";
arch = "linux-i686";
sha256 = "af553455b4ab549cba61e23baab72524716bd166baf8de9a0e6bb01697acceba";
sha256 = "032fbf3360e7facac683e28a205b53e9a1db756c8bd41330a15f7120ed645b1a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/kab/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/kab/thunderbird-128.3.1esr.tar.bz2";
locale = "kab";
arch = "linux-i686";
sha256 = "4efed1d221fcedb3151f686d4b19cb5cb18e5d90e0ff23506bcb98144724c185";
sha256 = "5fec42cf09826f24ffeb20a3c7f0c200a1b257e4af4a8d223c4b7f98fb35eec2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/kk/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/kk/thunderbird-128.3.1esr.tar.bz2";
locale = "kk";
arch = "linux-i686";
sha256 = "b02d3630206093a381dc252b8839c6d5e0e11ba36e0beb34f0e764f41d51faca";
sha256 = "200e305315c566f34d2242fd37bee6f2726d8b6bacb37c74b0e5597e9296df60";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ko/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ko/thunderbird-128.3.1esr.tar.bz2";
locale = "ko";
arch = "linux-i686";
sha256 = "c87297bec4f3865ef06aa313bfc8fe2f7d12d7a44bc4d83f47769f65b629b2f7";
sha256 = "06f60ced2c75f13ffae69cf2355089c2b343e72b9e61cd97edf01f401c11fb77";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/lt/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/lt/thunderbird-128.3.1esr.tar.bz2";
locale = "lt";
arch = "linux-i686";
sha256 = "a7c131b03b732030a2c887bcd9931b92aacc8e620d46bae6d4e30a54f76523ec";
sha256 = "5d3074b599a9c61357b872f041dbedba6f8667f92a833e6889e16bf2a0ba31fb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/lv/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/lv/thunderbird-128.3.1esr.tar.bz2";
locale = "lv";
arch = "linux-i686";
sha256 = "7641f0b0168b66a18ebda4598d6b039cff57cbea38fe25e467b35cdc28040476";
sha256 = "dbffd3f40caa2b2a7f2201f645e27ee5060a124c304079f99055a0ba6bad513c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ms/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ms/thunderbird-128.3.1esr.tar.bz2";
locale = "ms";
arch = "linux-i686";
sha256 = "ffd61330b4945c626093ae1a20b3a7ace51e4d93e32346da53cd27b0df9d1da5";
sha256 = "2fe336e4ab817e8100ba448a4888cd0bf66728e2779f8179ecfea55bc255e20c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/nb-NO/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/nb-NO/thunderbird-128.3.1esr.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
sha256 = "4927bd51e18922d4f6b3ec2d6134d33943f5daa61ae0a80529a3aea3345bade6";
sha256 = "c3096875a2400685f1c4333531eeb3594f598b774f138e746c909976b16b895e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/nl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/nl/thunderbird-128.3.1esr.tar.bz2";
locale = "nl";
arch = "linux-i686";
sha256 = "b3010b541469aae57a0909d6f72c0f76482782d85cceef4e1dc970d36e53ae3a";
sha256 = "3302794bdc4ba877d01b0ba80fca2661098e707f2abb0304bd2c29fc6cb3cc4b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/nn-NO/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/nn-NO/thunderbird-128.3.1esr.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
sha256 = "60c0c4cdd0f0b7a2f892206c1e7adcaa4e32e8cf2b29d55a2dfce0881e66096f";
sha256 = "770457094739c924397e643ed303f57a57b9491229abab8d98699a0507d9db1d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pa-IN/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/pa-IN/thunderbird-128.3.1esr.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
sha256 = "a59494d8eb43583d5e70a2c0c92aa9373edab5903435e337383c93aae848ff60";
sha256 = "8be61392ae2faeba72ae3eaf698339357a1e5112be77fafc5f104bfde3a5155b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/pl/thunderbird-128.3.1esr.tar.bz2";
locale = "pl";
arch = "linux-i686";
sha256 = "73fc938c2eb420aef5fbc023dd8d1834cf08325a18d23515155cb311198239ff";
sha256 = "0e0c57066ef2851b6729ba1c6aa192b2b7693cc5e367e4016b458cb45871030a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pt-BR/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/pt-BR/thunderbird-128.3.1esr.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
sha256 = "fa203684e790a9529f34398763fe2410a6bf8d56b887fb9c1dca91fdca624c7d";
sha256 = "89db9f5388ab006923def3d3818e61c0d0417e26f3c3a7049da453ae82e215b2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pt-PT/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/pt-PT/thunderbird-128.3.1esr.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
sha256 = "63b53d16d3a1ddd88455a2eae7fe185d7abde743f284ac634d3e63bdb38d88b8";
sha256 = "678301cd525223c99b5b6f129fddba153bd9766478a8733ebe69ae0eaae40880";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/rm/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/rm/thunderbird-128.3.1esr.tar.bz2";
locale = "rm";
arch = "linux-i686";
sha256 = "5cd0a65ea1e41e6d1a9c833edf75c5a67ce77ec9bb85107d1ba282f2abe91fde";
sha256 = "3e6f814093d3dcd8df427574bb10c56ea6bd917c1dc532d8334b8880b7e91b90";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ro/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ro/thunderbird-128.3.1esr.tar.bz2";
locale = "ro";
arch = "linux-i686";
sha256 = "a000256b2ae3a67ccf6f805fbb6c122fd624448021312a7311773a59f412c5ae";
sha256 = "39c23d82b6dacff632753ba2ba9f0a194c2891cfcc1e67efbbde1f8421085ac0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ru/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/ru/thunderbird-128.3.1esr.tar.bz2";
locale = "ru";
arch = "linux-i686";
sha256 = "531a05a5e7b5e4c1de4968a5b3e29aa28e7cb36358d8ffb2dd39f0e1a47738ab";
sha256 = "c9d051f3faec44babcd36e6fb6c9619142dee3d775185ea86305392f88d45aeb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sk/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/sk/thunderbird-128.3.1esr.tar.bz2";
locale = "sk";
arch = "linux-i686";
sha256 = "178ff0a5f05544cf8b2275bc96328055dab6250fb6b4292a51a8295981340d05";
sha256 = "509b5a60e239d4a8cf9a6f91ef4267de44ccc21f9314b232170093fa450af44b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sl/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/sl/thunderbird-128.3.1esr.tar.bz2";
locale = "sl";
arch = "linux-i686";
sha256 = "5750677fa4c9fa04d9c91a93962eb5ee701deab20889adb3bf7c913832358d87";
sha256 = "aa5b49aaa7fa64f9e9ea9a01d75da4f5c89c65449d56861b48083ca00a0822cd";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sq/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/sq/thunderbird-128.3.1esr.tar.bz2";
locale = "sq";
arch = "linux-i686";
sha256 = "1d64734c7b31fd002978dfb08cb058310638bddbe55bab225bd9e2015e7b7f86";
sha256 = "3ffca31bd4bf981110a55eef165d789e253eec7c206b08c880fc3a0b92da58fc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/sr/thunderbird-128.3.1esr.tar.bz2";
locale = "sr";
arch = "linux-i686";
sha256 = "ce5dae0a9ba5be012eb5e44ce06a7b4c18f4b137caca1b19dbc4bdad32d777a9";
sha256 = "0e25ba5b8ba286e81bfeb481f354b69bd56fc727340ce6fde36124a7ce9d330c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sv-SE/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/sv-SE/thunderbird-128.3.1esr.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
sha256 = "418e5fbbd04816de06031f56fe73033dbc72df70de688f80604fc5a16275c304";
sha256 = "ab8be644fc47332387f67b3bbe7ad5920bd908e99bf029b85c896a44d3fe8a80";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/th/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/th/thunderbird-128.3.1esr.tar.bz2";
locale = "th";
arch = "linux-i686";
sha256 = "4ca1e251bb36653242a8061491304f345f016c2582a68726869453ce2047df8c";
sha256 = "6965ca5780abcd2e8e69244e883d171ce541a4d2075a99ae6c0682f4b76c081a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/tr/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/tr/thunderbird-128.3.1esr.tar.bz2";
locale = "tr";
arch = "linux-i686";
sha256 = "2934a095eddd73b84a3fe2fba2d8273e36c1b853cf8f00951fb58ab96ef142f5";
sha256 = "e3fcb1b58165e4a7f3553ecf5e9c2759fb831fe25c504365ff0bcd2f0756a186";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/uk/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/uk/thunderbird-128.3.1esr.tar.bz2";
locale = "uk";
arch = "linux-i686";
sha256 = "ff82f18e9ba352df0d395534f306fc78b696341f193619c5e3de03dba8dde09a";
sha256 = "89e8999739ac1c9979c702e946130d7bd2f0d9ad209a926ee205425d54bfcf40";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/uz/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/uz/thunderbird-128.3.1esr.tar.bz2";
locale = "uz";
arch = "linux-i686";
sha256 = "679ecaa3f670e49cc741ce113280db9d55d9bbf3798337f9959e1e2e0f6ccf06";
sha256 = "71e9b2d9ca7dcfc1b71524e1dc0fbd17f078e690838eee5e711b753bbccc4b45";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/vi/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/vi/thunderbird-128.3.1esr.tar.bz2";
locale = "vi";
arch = "linux-i686";
sha256 = "753006173e67f07c87066915be9312826547fb7ee500a1aafffc1d56ba56c34c";
sha256 = "13d3365e9643664cbf5006fbf0de101950ca1874283c49792d1ccff437a45158";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/zh-CN/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/zh-CN/thunderbird-128.3.1esr.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
sha256 = "0eb18aba4976e0b17de9584773e4bb66883c1624423fec104e8b893132f24bac";
sha256 = "a283f7503a4b0af6349dd87c6be3aa9f4e8227ae98754515b635d602c756569c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/zh-TW/thunderbird-128.2.3esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.3.1esr/linux-i686/zh-TW/thunderbird-128.3.1esr.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
sha256 = "e28e778c121abc8259445bbee5e5bd0b787f21faac556b7c77452096d60fb219";
sha256 = "ba88abbc91d4e55687eed8fe41aa0e52622b688752341430f7b32d134a750d09";
}
];
}
@@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl, jre, makeWrapper }:
stdenv.mkDerivation rec {
version = "6.9.8";
version = "6.13.3";
pname = "frostwire";
src = fetchurl {
url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
sha256 = "sha256-gslNdvxA4rGKg0bjf2KWw7w9NMp3zqrii144AfKsV4s=";
url = "https://github.com/frostwire/frostwire/releases/download/frostwire-desktop-${version}-build-322/frostwire-${version}.amd64.tar.gz";
hash = "sha256-wRT8Oo+niOFBpEnq3pgjO9jpagZMgSE44V9RBYnGwig=";
};
nativeBuildInputs = [ makeWrapper ];
@@ -93,5 +93,8 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ Anton-Latukha kashw2 ];
mainProgram =
"qbittorrent"
+ lib.optionalString (!guiSupport) "-nox";
};
}
@@ -1,81 +0,0 @@
{
lib,
buildPythonApplication,
fetchFromGitHub,
setuptools,
wrapGAppsHook3,
gdk-pixbuf,
glib-networking,
gobject-introspection,
imagemagick,
librsvg,
pango,
python3,
webkitgtk,
# Python libs
protonvpn-nm-lib,
psutil,
# Optionals
withIndicator ? true,
libappindicator-gtk3,
}:
buildPythonApplication rec {
pname = "protonvpn-gui";
version = "1.12.0";
pyproject = true;
src = fetchFromGitHub {
owner = "ProtonVPN";
repo = "linux-app";
rev = "refs/tags/${version}";
sha256 = "sha256-MPS4d/yNkccsc/j85h7/4k4xL8uSCvhj/9JWPa7ezLY=";
};
nativeBuildInputs = [
gdk-pixbuf
gobject-introspection
imagemagick
setuptools
wrapGAppsHook3
];
propagatedBuildInputs = [
glib-networking # needed for the login captcha
protonvpn-nm-lib
psutil
];
buildInputs = [
librsvg
pango
webkitgtk
] ++ lib.optionals withIndicator [ libappindicator-gtk3 ];
postInstall = ''
# Setting icons
for size in 16 32 48 64 72 96 128 192 512 1024; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
convert -resize $size'x'$size \
protonvpn_gui/assets/icons/protonvpn-logo.png \
$out/share/icons/hicolor/$size'x'$size/apps/protonvpn.png
done
install -Dm644 protonvpn.desktop -t $out/share/applications/
chmod 644 $out/${python3.sitePackages}/protonvpn_gui/assets/icons/plus-server.png
substituteInPlace $out/share/applications/protonvpn.desktop \
--replace 'protonvpn-logo' protonvpn
'';
# Project has a dummy test
doCheck = false;
meta = with lib; {
description = "Official ProtonVPN Linux app";
homepage = "https://github.com/ProtonVPN/linux-app";
maintainers = [ ];
license = licenses.gpl3Plus;
mainProgram = "protonvpn";
platforms = platforms.linux;
};
}
@@ -77,11 +77,6 @@ mkDerivation rec {
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/bin $out/Applications
mv "$out/Jellyfin Media Player.app" $out/Applications
# move web-client resources
mv $out/Resources/* "$out/Applications/Jellyfin Media Player.app/Contents/Resources/"
rmdir $out/Resources
ln -s "$out/Applications/Jellyfin Media Player.app/Contents/MacOS/Jellyfin Media Player" $out/bin/jellyfinmediaplayer
'';
@@ -89,7 +84,7 @@ mkDerivation rec {
homepage = "https://github.com/jellyfin/jellyfin-media-player";
description = "Jellyfin Desktop Client based on Plex Media Player";
license = with licenses; [ gpl2Only mit ];
platforms = [ "aarch64-linux" "x86_64-linux" "x86_64-darwin" ];
platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
maintainers = with maintainers; [ jojosch kranzes ];
mainProgram = "jellyfinmediaplayer";
};
@@ -7,13 +7,13 @@
}:
mkHyprlandPlugin hyprland rec {
pluginName = "hy3";
version = "0.43.0";
version = "0.44.0";
src = fetchFromGitHub {
owner = "outfoxxed";
repo = "hy3";
rev = "refs/tags/hl${version}";
hash = "sha256-hBvwaMlgBuR2cB1Kx6cA1z7x38HXUujNcHtBsKhaEZs=";
hash = "sha256-6TVaB+nWVanqZWqievg+m7tVNrSpQ9CQcwXJQeyU/Q0=";
};
nativeBuildInputs = [ cmake ];
@@ -8,13 +8,13 @@
mkHyprlandPlugin hyprland {
pluginName = "hypr-dynamic-cursors";
version = "0-unstable-2024-08-01";
version = "0-unstable-2024-10-10";
src = fetchFromGitHub {
owner = "VirtCode";
repo = "hypr-dynamic-cursors";
rev = "ed2ff68862ae02e04dd06488eb7228e4412f5c33";
hash = "sha256-02G/SPd/X7zSIFF3V6dkh8mGGWoO0/m6/Yld7HyPmJs=";
rev = "3ff4c2a053f7673b3b8cd45ada0886cbda13ebcc";
hash = "sha256-XMR9wDNXmY3pPp3imT5vA4Gc6yC3R2Fatp4B53uLHzI=";
};
dontUseCmakeConfigure = true;
@@ -13,13 +13,13 @@
mkHyprlandPlugin hyprland rec {
pluginName = "hyprgrass";
version = "0.8.1";
version = "0.8.2";
src = fetchFromGitHub {
owner = "horriblename";
repo = "hyprgrass";
rev = "v${version}";
hash = "sha256-3CN9ZioI5XBtp6WF61hH2EyASHUIPJQCTXiW1rt9n5w=";
hash = "sha256-0dYMlNYuevQvsd6+imOkic3c6RSssM8WSx1hAepJ/wU=";
};
nativeBuildInputs = [
@@ -14,13 +14,13 @@ let
mkHyprlandPlugin,
}:
let
version = "0.43.0";
version = "0.44.0";
hyprland-plugins-src = fetchFromGitHub {
owner = "hyprwm";
repo = "hyprland-plugins";
rev = "refs/tags/v${version}";
hash = "sha256-dPcWAeRJoG5CyWC32X3XX+Og0v/k1/S1N0T5dQWT32k=";
hash = "sha256-/SeOrMuPEOjngI+MBlzqxQ/sJxkJFIYoef+wJ/PmX2w=";
};
in
mkHyprlandPlugin hyprland {
@@ -9,13 +9,13 @@
mkHyprlandPlugin hyprland {
pluginName = "hyprscroller";
version = "0-unstable-2024-09-06";
version = "0-unstable-2024-10-10";
src = fetchFromGitHub {
owner = "dawsers";
repo = "hyprscroller";
rev = "07671d7d42b92a85fc7e62cd8f02b0d9c52a8dea";
hash = "sha256-RLI202fBXz+mDXX5Em70FU+16ChbA/YtpORYiOSX8uc=";
rev = "1a907fd38594ec58a8fe5d68be0dcf2f9e76b0f8";
hash = "sha256-cgwHl2YtqrnS0ThUyycFGYoYozpq7zT9POARrQAoahY=";
};
nativeBuildInputs = [ cmake ];
@@ -8,13 +8,13 @@
mkHyprlandPlugin hyprland {
pluginName = "hyprspace";
version = "0-unstable-2024-08-21";
version = "0-unstable-2024-09-16";
src = fetchFromGitHub {
owner = "KZDKM";
repo = "hyprspace";
rev = "743ec37d02bb2b7261f28de16bf404cebfd96105";
hash = "sha256-w0j/3OeSrpx+S8if1M2ONBsZvJQ1hBQkdTQEiMCHy7o=";
rev = "8f14fa2e10d24742d713f04c278bc7651037b74b";
hash = "sha256-lMIFDORuyMYHtUPrRWU5WjGcS+ZMrR4/wBSO+sgUVSY=";
};
dontUseCmakeConfigure = true;
@@ -8,13 +8,13 @@
}:
mkHyprlandPlugin hyprland rec {
pluginName = "hyprsplit";
version = "0.43.0";
version = "0.44.1";
src = fetchFromGitHub {
owner = "shezdy";
repo = "hyprsplit";
rev = "refs/tags/v${version}";
hash = "sha256-r533kNIyfgPi/q8ddIYyDK1Pmupt/F3ncHuFo3zjDkU=";
hash = "sha256-l+DQHWPMyUCXbKhbIFVooTKKnCRQ97Ic5smw4VzUcTc=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -8,11 +8,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "alt-tab-macos";
version = "6.71.0";
version = "6.73.0";
src = fetchurl {
url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip";
hash = "sha256-46K9ePNqZyaV5Da6VRCT6PvG+Ad0vsuvs7sfNRUbKB4=";
hash = "sha256-l/Nuyr5jYBR6LtScgM2LP0mq1NEMkRNVGWZDhiZkAa8=";
};
sourceRoot = ".";
@@ -8,6 +8,9 @@
mkAzExtension,
mycli,
python3Packages,
autoPatchelfHook,
python3,
openssl_1_1,
}:
{
@@ -58,6 +61,26 @@
meta.maintainers = with lib.maintainers; [ mikut ];
};
confcom = mkAzExtension rec {
pname = "confcom";
version = "1.0.0";
url = "https://azcliprod.blob.core.windows.net/cli-extensions/confcom-${version}-py3-none-any.whl";
sha256 = "73823e10958a114b4aca84c330b4debcc650c4635e74c568679b6c32c356411d";
description = "Microsoft Azure Command-Line Tools Confidential Container Security Policy Generator Extension";
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ openssl_1_1 ];
propagatedBuildInputs = with python3Packages; [
pyyaml
deepdiff
docker
tqdm
];
postInstall = ''
chmod +x $out/${python3.sitePackages}/azext_confcom/bin/genpolicy-linux
'';
meta.maintainers = with lib.maintainers; [ miampf ];
};
containerapp = mkAzExtension rec {
pname = "containerapp";
version = "1.0.0b1";
+64
View File
@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "baddns";
version = "1.1.869";
pyproject = true;
src = fetchFromGitHub {
owner = "blacklanternsecurity";
repo = "baddns";
rev = "refs/tags/v${version}";
hash = "sha256-BoRR7duvkXjI8vVP59IOACuIV7NmQe1loMEUgPfsdNw=";
};
pythonRelaxDeps = true;
build-system = with python3.pkgs; [
poetry-core
poetry-dynamic-versioning
];
dependencies = with python3.pkgs; [
colorama
dnspython
httpx
python-dateutil
python-whois
pyyaml
setuptools
tldextract
];
nativeCheckInputs = with python3.pkgs; [
mock
pyfakefs
pytest-asyncio
pytest-httpx
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [ "baddns" ];
disabledTests = [
# Tests require network access
"test_cli_validation_customnameservers_valid"
"test_modules_customnameservers"
"test_references_cname_css"
"test_references_cname_js"
];
meta = {
description = "Tool to check subdomains for subdomain takeovers and other DNS issues";
homepage = "https://github.com/blacklanternsecurity/baddns/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "baddns";
};
}
@@ -1,14 +1,18 @@
{ lib, stdenv, fetchFromGitHub }:
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "bakelite";
version = "unstable-2022-02-12";
version = "unstable-2023-03-30";
src = fetchFromGitHub {
owner = "richfelker";
repo = pname;
rev = "373901734d114e42aa385e6a7843745674e4ca08";
hash = "sha256-HBnYlUyTkvPTbdsZD02yCq5C7yXOHYK4l4mDRUkcN5I=";
rev = "65d69e88e0972d1493ebbd9bf9d1bfde36272636";
hash = "sha256-OjBw9aYD2h7BWYgQzZp03hGCyQcRgmm2AjrcT/QrQAo=";
};
hardeningEnable = [ "pie" ];
+3 -3
View File
@@ -28,13 +28,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bcachefs-tools";
version = "1.11.0";
version = "1.13.0";
src = fetchFromGitHub {
owner = "koverstreet";
repo = "bcachefs-tools";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-L2eIYdQnnmKNI8QWSy8nk4GzJ8jv+qt98gqdzcJH31Q=";
hash = "sha256-w55Fs1RZ4c55vTvb3jArPcmBLij1nuLi2MUHMMXPhng=";
};
nativeBuildInputs = [
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
cargoDeps = rustPlatform.fetchCargoTarball {
src = finalAttrs.src;
hash = "sha256-Ol3wKdxKYJWDC/JREOfVSQRNnWVano7qilMRvqrLsgA==";
hash = "sha256-rO4AjCnxmHQPk0hxgXK4yxUK5eag/+Q+fRG/BsRi0i0=";
};
makeFlags = [
+47
View File
@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitLab,
ninja,
pkg-config,
meson,
libevent,
curl,
spdlog,
}:
stdenv.mkDerivation rec {
pname = "coeurl";
version = "0.3.1";
src = fetchFromGitLab {
domain = "nheko.im";
owner = "nheko-reborn";
repo = pname;
rev = "v${version}";
hash = "sha256-NGplM5c/dMGSQbhKeuPOTWL8KsqvMd/76YuwCxnqNNE=";
};
postPatch = ''
substituteInPlace subprojects/curl.wrap --replace '[provides]' '[provide]'
'';
nativeBuildInputs = [
ninja
pkg-config
meson
];
buildInputs = [
libevent
curl
spdlog
];
meta = with lib; {
description = "Simple async wrapper around CURL for C++";
homepage = "https://nheko.im/nheko-reborn/coeurl";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ rnhmjoj ];
};
}
+47
View File
@@ -0,0 +1,47 @@
{
lib,
python3Packages,
fetchFromGitHub,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "cpplint";
version = "2.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "cpplint";
repo = "cpplint";
rev = "refs/tags/${version}";
hash = "sha256-076363ZwcriPb+Fn9S5jay8oL+LlBTNh+IqQRCAndRo=";
};
postPatch = ''
substituteInPlace setup.cfg \
--replace-fail "pytest-cov" "" \
--replace-fail "--cov-fail-under=90 --cov=cpplint" ""
'';
build-system = with python3Packages; [
setuptools
];
nativeCheckInputs = with python3Packages; [
parameterized
pytestCheckHook
pytest-timeout
testfixtures
versionCheckHook
];
versionCheckProgramArg = [ "--version" ];
meta = {
homepage = "https://github.com/cpplint/cpplint";
description = "Static code checker for C++";
changelog = "https://github.com/cpplint/cpplint/releases/tag/${version}";
mainProgram = "cpplint";
maintainers = [ lib.maintainers.bhipple ];
license = [ lib.licenses.bsd3 ];
};
}
+2 -2
View File
@@ -10,11 +10,11 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "figma-linux";
version = "0.11.4";
version = "0.11.5";
src = fetchurl {
url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${finalAttrs.version}/figma-linux_${finalAttrs.version}_linux_amd64.deb";
hash = "sha256-ukUsNgWOtIRe54vsmRdI62syjIPwSsgNV7kITCw0YUQ=";
hash = "sha256-6lFeiecliyuTdnUCCbLpoQWiu5k3OPHxb+VF17GtERo=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "gerrit";
version = "3.10.1";
version = "3.10.2";
src = fetchurl {
url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
hash = "sha256-gWONjpn/YrSHtabacI+7Ao9pGeqcialRaaca2ct5oDM=";
hash = "sha256-jsyL7j4ENzHVi07Uii0ouWXF3hkoGrq3NJi8fB1kj8o=";
};
buildCommand = ''
-80
View File
@@ -1,80 +0,0 @@
{
rustPlatform,
callPackage,
pkg-config,
lib,
fetchFromGitHub,
libayatana-appindicator,
openssl,
webkitgtk_4_1,
}:
rustPlatform.buildRustPackage rec {
pname = "gg-jj";
version = "0.20.0";
src = fetchFromGitHub {
owner = "gulbanana";
repo = "gg";
rev = "refs/tags/v${version}";
hash = "sha256-xOi/AUlH0FeenTXz3hsDYixCEl+yr22PGy6Ow4TKxY0=";
};
sourceRoot = "${src.name}/src-tauri";
webui = callPackage ./webui.nix {
inherit
src
pname
version
meta
;
};
env = {
OPENSSL_NO_VENDOR = 1;
};
buildInputs = [
webkitgtk_4_1
openssl
];
nativeBuildInputs = [
pkg-config
];
cargoHash = "sha256-u3SkRA7327ZwqEnB+Xq2JDbI0k5HfeKzV17dvQ8B6xk=";
postPatch = ''
buildRoot=$(pwd)
pushd $cargoDepsCopy/libappindicator-sys
oldHash=$(sha256sum src/lib.rs | cut -d " " -f 1)
substituteInPlace src/lib.rs \
--replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
substituteInPlace .cargo-checksum.json \
--replace-fail $oldHash $(sha256sum src/lib.rs | cut -d " " -f 1)
popd
pushd $cargoDepsCopy/jj-cli
oldHash=$(sha256sum build.rs | cut -d " " -f 1)
substituteInPlace build.rs \
--replace-fail 'let path = std::env::var("CARGO_MANIFEST_DIR").unwrap();' "let path = \"$buildRoot\";"
substituteInPlace .cargo-checksum.json \
--replace-fail $oldHash $(sha256sum build.rs | cut -d " " -f 1)
popd
substituteInPlace ./tauri.conf.json \
--replace-fail '"frontendDist": "../dist"' '"frontendDist": "${webui}"' \
--replace-fail '"beforeBuildCommand": "npm run build"' '"beforeBuildCommand": ""'
'';
meta = {
homepage = "https://github.com/gulbanana/gg";
changelog = "https://github.com/gulbanana/gg/releases/tag/v${version}";
description = "GUI for jj users";
maintainers = with lib.maintainers; [ bot-wxt1221 ];
mainProgram = "gg";
license = lib.licenses.apsl20;
};
}
-31
View File
@@ -1,31 +0,0 @@
{
version,
src,
pname,
pnpm,
meta,
buildNpmPackage,
}:
buildNpmPackage {
inherit version src meta;
pname = "${pname}-webui";
npmDepsHash = "sha256-oHBFuX65D/FgnGa03jjpIKAdH8Q4c2NrpD64bhfe720=";
buildPhase = ''
runHook preBuild
node --max_old_space_size=1024000 ./node_modules/vite/bin/vite.js build
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -r dist $out
runHook postInstall
'';
}
@@ -3,27 +3,27 @@
, fetchFromGitHub
, pnpm
, nodejs
, electron_31
, electron_32
, makeWrapper
, copyDesktopItems
, makeDesktopItem
}:
stdenv.mkDerivation rec {
pname = "armcord";
version = "3.3.1";
pname = "legcord";
version = "1.0.0";
src = fetchFromGitHub {
owner = "ArmCord";
repo = "ArmCord";
owner = "Legcord";
repo = "Legcord";
rev = "v${version}";
hash = "sha256-rCcjanmr4s9Nc5QB3Rb5ptKF/Ge8PSZt0WvgIul3RGs=";
hash = "sha256-/HwKxl3wiLSS7gmEQSddBkE2z1mmcexMgacUynLhdtg=";
};
nativeBuildInputs = [ pnpm.configHook nodejs makeWrapper copyDesktopItems ];
pnpmDeps = pnpm.fetchDeps {
inherit pname version src;
hash = "sha256-ZfErOj03NdkviNXV4bvZC8uPOk29RhgmSez/Qvw1sGo=";
hash = "sha256-e6plwWf5eFaGsP3/cvIkGTV1nbcw8VRM30E5rwVX1RI=";
};
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
npm exec electron-builder -- \
--dir \
-c.electronDist="${electron_31.dist}" \
-c.electronVersion="${electron_31.version}"
-c.electronDist="${electron_32.dist}" \
-c.electronVersion="${electron_32.version}"
runHook postBuild
'';
@@ -44,13 +44,13 @@ stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
mkdir -p "$out/share/lib/armcord"
cp -r ./dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/armcord"
mkdir -p "$out/share/lib/legcord"
cp -r ./dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/legcord"
install -Dm644 "build/icon.png" "$out/share/icons/hicolor/256x256/apps/armcord.png"
install -Dm644 "build/icon.png" "$out/share/icons/hicolor/256x256/apps/legcord.png"
makeShellWrapper "${lib.getExe electron_31}" "$out/bin/armcord" \
--add-flags "$out/share/lib/armcord/resources/app.asar" \
makeShellWrapper "${lib.getExe electron_32}" "$out/bin/legcord" \
--add-flags "$out/share/lib/legcord/resources/app.asar" \
"''${gappsWrapperArgs[@]}" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--set-default ELECTRON_IS_DEV 0 \
@@ -61,24 +61,24 @@ stdenv.mkDerivation rec {
desktopItems = [
(makeDesktopItem {
name = "armcord";
desktopName = "ArmCord";
exec = "armcord %U";
icon = "armcord";
name = "legcord";
desktopName = "Legcord";
exec = "legcord %U";
icon = "legcord";
comment = meta.description;
categories = [ "Network" ];
startupWMClass = "ArmCord";
startupWMClass = "Legcord";
terminal = false;
})
];
meta = with lib; {
description = "Lightweight, alternative desktop client for Discord";
homepage = "https://armcord.app";
downloadPage = "https://github.com/ArmCord/ArmCord";
homepage = "https://legcord.app";
downloadPage = "https://github.com/Legcord/Legcord";
license = licenses.osl3;
maintainers = with maintainers; [ wrmilling water-sucks ];
platforms = [ "x86_64-linux" "aarch64-linux" ];
mainProgram = "armcord";
mainProgram = "legcord";
};
}
@@ -6,14 +6,14 @@ Subject: [PATCH] Do not forcibly set OPENSSL_ROOT_DIR.
CMake can already find OpenSSL via pkg-config. Setting OPENSSL_ROOT_DIR
forcibly to "/usr" breaks this.
---
CMakeLists.txt | 11 -----------
1 file changed, 11 deletions(-)
CMakeLists.txt | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 288bcbe8..9750fae6 100644
index 0564bc8e..7b4c7f47 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -119,17 +119,6 @@ include(.CMake/compiler_opts.cmake)
@@ -144,15 +144,6 @@ include(.CMake/compiler_opts.cmake)
include(.CMake/alg_support.cmake)
if(${OQS_USE_OPENSSL})
@@ -24,13 +24,12 @@ index 288bcbe8..9750fae6 100644
- elseif(EXISTS "/opt/homebrew/opt/openssl@1.1")
- set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl@1.1")
- endif()
- elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
- set(OPENSSL_ROOT_DIR "/usr")
- endif()
- endif()
find_package(OpenSSL 1.1.1 REQUIRED)
endif()
if(OQS_DLOPEN_OPENSSL)
--
2.42.0
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "liboqs";
version = "0.10.1";
version = "0.11.0";
src = fetchFromGitHub {
owner = "open-quantum-safe";
repo = "liboqs";
rev = finalAttrs.version;
hash = "sha256-zsSKFUs75K0Byxh3KVCZ8lIOf/vpbyMJXfk6fa2u+aE=";
hash = "sha256-+Gx1JPrJoeMix9DIF0rJQTivxN1lgaCIYFvJ1pnYZzM=";
};
patches = [
@@ -6,11 +6,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "lxgw-wenkai-screen";
version = "1.330";
version = "1.501";
src = fetchurl {
url = "https://github.com/lxgw/LxgwWenKai-Screen/releases/download/v${finalAttrs.version}/LXGWWenKaiScreen.ttf";
hash = "sha256-3C6gZmL5Bn6+26TfI2UdCCnGI8Vw4UTFJRc8n6qlP5o=";
hash = "sha256-em3uh53neN8v1ueiw1rWVtC0bteD7IG3X1g9tkjBRJA=";
};
dontUnpack = true;
+79
View File
@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchurl,
dpkg,
wrapGAppsHook3,
autoPatchelfHook,
nss,
nspr,
alsa-lib,
openssl,
webkitgtk,
udev,
libayatana-appindicator,
libGL,
}:
let
pname = "mihomo-party";
version = "1.4.5";
src = fetchurl {
url = "https://github.com/mihomo-party-org/mihomo-party/releases/download/v${version}/mihomo-party-linux-${version}-amd64.deb";
hash = "sha256-O332nt2kgpDGY84S78Tx2PGUw1Pyj80ab2ZE3woYm4Y=";
};
in
stdenv.mkDerivation {
inherit pname version src;
nativeBuildInputs = [
dpkg
wrapGAppsHook3
autoPatchelfHook
];
buildInputs = [
nss
nspr
alsa-lib
openssl
webkitgtk
stdenv.cc.cc.lib
];
runtimeDependencies = map lib.getLib [
udev
libayatana-appindicator
];
installPhase = ''
runHook preInstall
mkdir $out
cp -r opt/mihomo-party usr/share $out
substituteInPlace $out/share/applications/mihomo-party.desktop \
--replace-fail "/opt/mihomo-party/mihomo-party" "mihomo-party"
runHook postInstall
'';
preFixup = ''
mkdir $out/bin
makeWrapper $out/mihomo-party/mihomo-party $out/bin/mihomo-party \
--prefix LD_LIBRARY_PATH : "${
lib.makeLibraryPath [
libGL
]
}"
'';
meta = {
description = "Another Mihomo GUI";
homepage = "https://github.com/mihomo-party-org/mihomo-party";
mainProgram = "mihomo-party";
platforms = with lib.platforms; linux ++ darwin;
broken = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64);
license = lib.licenses.gpl3Plus;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [ aucub ];
};
}
@@ -1,16 +1,17 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, coeurl
, curl
, libevent
, nlohmann_json
, olm
, openssl
, re2
, spdlog
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
coeurl,
curl,
libevent,
nlohmann_json,
olm,
openssl,
re2,
spdlog,
}:
stdenv.mkDerivation rec {
@@ -56,7 +57,11 @@ stdenv.mkDerivation rec {
description = "Client API library for the Matrix protocol";
homepage = "https://github.com/Nheko-Reborn/mtxclient";
license = licenses.mit;
maintainers = with maintainers; [ fpletz pstn ];
maintainers = with maintainers; [
fpletz
pstn
rnhmjoj
];
platforms = platforms.all;
# Should be fixable if a higher clang version is used, see:
# https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177
@@ -1,32 +1,27 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, asciidoc
, pkg-config
, boost179
, cmark
, coeurl
, curl
, kdsingleapplication
, libevent
, libsecret
, lmdb
, lmdbxx
, mtxclient
, nlohmann_json
, olm
, qtbase
, qtimageformats
, qtkeychain
, qtmultimedia
, qttools
, qtwayland
, re2
, spdlog
, wrapQtAppsHook
, gst_all_1
, libnice
{
lib,
stdenv,
fetchFromGitHub,
cmake,
asciidoc,
pkg-config,
boost179,
cmark,
coeurl,
curl,
kdsingleapplication,
libevent,
libsecret,
lmdb,
lmdbxx,
mtxclient,
nlohmann_json,
olm,
re2,
spdlog,
gst_all_1,
libnice,
qt6Packages,
}:
stdenv.mkDerivation rec {
@@ -45,37 +40,38 @@ stdenv.mkDerivation rec {
cmake
lmdbxx
pkg-config
wrapQtAppsHook
qt6Packages.wrapQtAppsHook
];
buildInputs = [
boost179
cmark
coeurl
curl
kdsingleapplication
libevent
libsecret
lmdb
mtxclient
nlohmann_json
olm
qtbase
qtimageformats
qtkeychain
qtmultimedia
qttools
qtwayland
re2
spdlog
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
(gst-plugins-good.override { qt6Support = true; })
gst-plugins-bad
libnice
]);
buildInputs =
[
boost179
cmark
coeurl
curl
kdsingleapplication
libevent
libsecret
lmdb
mtxclient
nlohmann_json
olm
qt6Packages.qtbase
qt6Packages.qtimageformats
qt6Packages.qtkeychain
qt6Packages.qtmultimedia
qt6Packages.qttools
qt6Packages.qtwayland
re2
spdlog
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
(gst-plugins-good.override { qt6Support = true; })
gst-plugins-bad
libnice
]);
cmakeFlags = [
"-DCOMPILE_QML=ON" # see https://github.com/Nheko-Reborn/nheko/issues/389
@@ -91,7 +87,11 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/Nheko-Reborn/nheko";
license = licenses.gpl3Plus;
mainProgram = "nheko";
maintainers = with maintainers; [ ekleog fpletz ];
maintainers = with maintainers; [
ekleog
fpletz
rnhmjoj
];
platforms = platforms.all;
# Should be fixable if a higher clang version is used, see:
# https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619287177
@@ -16,13 +16,13 @@ let
in
stdenvNoCC.mkDerivation rec {
pname = "noto-fonts-color-emoji";
version = "2.042";
version = "2.047";
src = fetchFromGitHub {
owner = "googlefonts";
repo = "noto-emoji";
rev = "v${version}";
hash = "sha256-otJQMXrBIPrxD1vCdgcrZ2h1a9XAMbqEBFumjz1XJ54=";
hash = "sha256-v1vLXs8peNF6S7iBLViAWQSW042lwIDqAjB270pRPF0=";
};
depsBuildBuild = [
+2 -2
View File
@@ -8,13 +8,13 @@
buildGoModule rec {
pname = "nvrh";
version = "0.1.8";
version = "0.1.9";
src = fetchFromGitHub {
owner = "mikew";
repo = "nvrh";
rev = "refs/tags/v${version}";
hash = "sha256-a/TFSS4PeZWEYph4B8qDr4BJPY4CnHafvw07t1ytofo=";
hash = "sha256-QM8VVvNTPvu6Yg1G8FW/694RyTbw36AqkvISeP70gpE=";
};
postPatch = ''
+2 -2
View File
@@ -42,13 +42,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "open-vm-tools";
version = "12.4.5";
version = "12.5.0";
src = fetchFromGitHub {
owner = "vmware";
repo = "open-vm-tools";
rev = "stable-${finalAttrs.version}";
hash = "sha256-VMnxWKGBgwnkP9eSVm///d6THzzWgUe5kNj/lGVBVlc=";
hash = "sha256-pjMXhVN4xdmPCk1Aeb83VZjDJ1t1mb9wryC6h3O+Qvc=";
};
sourceRoot = "${finalAttrs.src.name}/open-vm-tools";
+2 -2
View File
@@ -8,13 +8,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
name = "oqs-provider";
version = "0.6.1";
version = "0.7.0";
src = fetchFromGitHub {
owner = "open-quantum-safe";
repo = "oqs-provider";
rev = finalAttrs.version;
hash = "sha256-AW0rOszXm9Hy55b2fQ2mpZulhXjYwvztwL6DIFgIzjA=";
hash = "sha256-2+TpYpZwC8vx6tGgS2waD/BQDfnbq0PJIwvX5wDDBEg=";
};
nativeBuildInputs = [
+68 -3
View File
@@ -3,10 +3,36 @@
stdenv,
smartmontools,
fetchFromGitHub,
fetchzip,
cmake,
qt6,
qdiskinfo,
themeBundle ? null,
}:
let
isThemed = themeBundle != null && themeBundle != { };
themeBundle' =
if isThemed then
{
rightCharacter = false;
}
// themeBundle
else
{ rightCharacter = false; };
in
# check theme bundle
assert
isThemed
-> (
themeBundle' ? src
&& themeBundle' ? paths.bgDark
&& themeBundle' ? paths.bgLight
&& themeBundle' ? paths.status
&& themeBundle' ? rightCharacter
);
stdenv.mkDerivation (finalAttrs: {
pname = "qdiskinfo";
version = "0.3";
@@ -31,15 +57,54 @@ stdenv.mkDerivation (finalAttrs: {
cmakeBuildType = "MinSizeRel";
cmakeFlags = [
"-DQT_VERSION_MAJOR=6"
];
cmakeFlags =
[
"-DQT_VERSION_MAJOR=6"
]
++ lib.optionals isThemed [ "-DINCLUDE_OPTIONAL_RESOURCES=ON" ]
++ (
if themeBundle'.rightCharacter then
[ "-DCHARACTER_IS_RIGHT=ON" ]
else
[ "-DCHARACTER_IS_RIGHT=OFF" ]
);
postUnpack = ''
cp -r $sourceRoot $TMPDIR/src
sourceRoot=$TMPDIR/src
'';
patchPhase = lib.optionalString isThemed ''
export SRCPATH=${themeBundle'.src}/CdiResource/themes/
export DESTPATH=$sourceRoot/dist/theme/
mkdir -p $DESTPATH
if [ -n "${themeBundle'.paths.bgDark}" ]; then
cp $SRCPATH/${themeBundle'.paths.bgDark} $DESTPATH/bg_dark.png
fi
if [ -n "${themeBundle'.paths.bgLight}" ]; then
cp $SRCPATH/${themeBundle'.paths.bgLight} $DESTPATH/bg_light.png
fi
cp $SRCPATH/${themeBundle'.paths.status}/SDdiskStatusBad-300.png $DESTPATH/bad.png
cp $SRCPATH/${themeBundle'.paths.status}/SDdiskStatusCaution-300.png $DESTPATH/caution.png
cp $SRCPATH/${themeBundle'.paths.status}/SDdiskStatusGood-300.png $DESTPATH/good.png
cp $SRCPATH/${themeBundle'.paths.status}/SDdiskStatusUnknown-300.png $DESTPATH/unknown.png
'';
postInstall = ''
wrapProgram $out/bin/QDiskInfo \
--suffix PATH : ${smartmontools}/bin
'';
passthru =
let
themeSources = import ./sources.nix { inherit fetchzip; };
in
rec {
themeBundles = import ./themes.nix { inherit themeSources; };
tests = lib.flip lib.mapAttrs themeBundles (
themeName: themeBundle:
(qdiskinfo.override { inherit themeBundle; }).overrideAttrs { pname = "qdiskinfo-${themeName}"; }
);
};
meta = {
description = "CrystalDiskInfo alternative for Linux";
homepage = "https://github.com/edisionnano/QDiskInfo";
+18
View File
@@ -0,0 +1,18 @@
{ fetchzip }:
{
aoi = fetchzip {
url = "https://pilotfiber.dl.sourceforge.net/project/crystaldiskinfo/9.3.2/CrystalDiskInfo9_3_2Aoi.zip?viasf=1#cdi.zip";
hash = "sha256-yldOX/aQYK1Fsd+BpD0SdcyfnHxtwB5rmZHU1nY7Ov8=";
stripRoot = false;
};
kureikei = fetchzip {
url = "https://pilotfiber.dl.sourceforge.net/project/crystaldiskinfo/9.3.2/CrystalDiskInfo9_3_2KureiKei.zip?viasf=1#cdi.zip";
hash = "sha256-mzV3wHKczsh5NOsUxA3kGYSBZyVNJZUWkZdjiJA8+Po=";
stripRoot = false;
};
shizuku = fetchzip {
url = "https://pilotfiber.dl.sourceforge.net/project/crystaldiskinfo/9.3.2/CrystalDiskInfo9_3_2Shizuku.zip?viasf=1#cdi.zip";
hash = "sha256-4dVeOHXWUVjfSssJKpcSBQ7OTMaYmgF15M4ROD3SBDA=";
stripRoot = false;
};
}
+390
View File
@@ -0,0 +1,390 @@
{ themeSources }:
{
aoi = {
src = themeSources.aoi;
paths = {
bgDark = "AoiNight/AoiBackground-300.png";
bgLight = "Aoi/AoiBackground-300.png";
status = "Aoi";
};
rightCharacter = true;
};
kureikei = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiBikini = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKeiBikini/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiHomebuiltComputer = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKeiHomebuiltComputer~Kronotokage/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiPresent = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKeiPresent/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiRecoding = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKeiRecoding/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiRecodingKimiya = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKeiRecoding~KIMIYA/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiSummerKimono = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKeiSummerKimono/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiUniform = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKeiUniform/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiAsyuihira = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~AsYuihira/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiHasumikaoru = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~hasumikaoru/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiKohakumuro = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~kohakumuro/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiKosake = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~kosake/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiKunimi = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~kunimi/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiMaru = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~maru/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiMugya = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~mugya/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiNanatunatu = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~nanatunatu/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiNekopan = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~nekopan/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiNyamco = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~nyamco/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiPoyoyonchihiro = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~poyoyonchihiro/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiShitimiNanami = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~ShitimiNanami/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiTakiOuno = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~TakiOuno/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiTori = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~tori/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
kureikeiYoite = {
src = themeSources.kureikei;
paths = {
bgDark = "";
bgLight = "KureiKei~yoite/KureiKeiBackground-300.png";
status = "KureiKei";
};
};
shizuku = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "Shizuku/ShizukuBackground-300.png";
status = "Shizuku";
};
};
shizuku5thAnniversary = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "Shizuku5thAnniversary/ShizukuBackground-300.png";
status = "Shizuku5thAnniversary";
};
};
shizuku7thAnniversary = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "Shizuku7thAnniversary/ShizukuBackground-300.png";
status = "Shizuku";
};
};
shizukuDate = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuDate/ShizukuBackground-300.png";
status = "ShizukuDate";
};
};
shizukuHanabi = {
src = themeSources.shizuku;
paths = {
bgDark = "ShizukuHanabi/ShizukuBackground-300.png";
bgLight = "";
status = "ShizukuHanabi";
};
};
shizukuHaregi = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuHaregi/ShizukuBackground-300.png";
status = "ShizukuHaregi";
};
};
shizukuHeianKomachi = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuHeianKomachi/ShizukuBackground-300.png";
status = "ShizukuHeianKomachi";
};
};
shizukuHotaru = {
src = themeSources.shizuku;
paths = {
bgDark = "ShizukuHotaru/ShizukuBackground-300.png";
bgLight = "";
status = "Shizuku";
};
};
shizukuIdol = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuIdol/ShizukuBackground-300.png";
status = "ShizukuIdol";
};
};
shizukuKotatsu = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuKotatsu/ShizukuBackground-300.png";
status = "ShizukuKotatsu";
};
};
shizukuKotatsuNight = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuKotatsuNight/ShizukuBackground-300.png";
status = "ShizukuKotatsu";
};
};
shizukuLiteratureGirl = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuLiteratureGirl/ShizukuBackground-300.png";
status = "ShizukuLiteratureGirl";
};
};
shizukuLiteratureGirlWithGlasses = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuLiteratureGirlwithGlasses/ShizukuBackground-300.png";
status = "ShizukuLiteratureGirlwithGlasses";
};
};
shizukuMaidCool = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuMaidCool/ShizukuBackground-300.png";
status = "ShizukuMaidCool";
};
};
shizukuMaidCute = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuMaidCute/ShizukuBackground-300.png";
status = "ShizukuMaidCute";
};
};
shizukuMeijiMizugi = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuMeijiMizugi/ShizukuBackground-300.png";
status = "ShizukuMeijiMizugi";
};
};
shizukuMermaid = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuMermaid/ShizukuBackground-300.png";
status = "ShizukuMermaid";
};
};
shizukuMiko = {
src = themeSources.shizuku;
paths = {
bgDark = "ShizukuMikoNight/ShizukuBackground-300.png";
bgLight = "ShizukuMiko/ShizukuBackground-300.png";
status = "ShizukuMiko";
};
};
shizukuOffice = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuOffice/ShizukuBackground-300.png";
status = "Shizuku";
};
};
shizukuSakura = {
src = themeSources.shizuku;
paths = {
bgDark = "ShizukuSakuraNight/ShizukuBackground-300.png";
bgLight = "ShizukuSakura/ShizukuBackground-300.png";
status = "ShizukuSakura";
};
};
shizukuTaishoRoman = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuTaishoRoman/ShizukuBackground-300.png";
status = "ShizukuTaishoRoman";
};
};
shizukuTeaBreak = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuTeaBreak/ShizukuBackground-300.png";
status = "Shizuku";
};
rightCharacter = true;
};
shizukuWebRadio = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuWebRadio/ShizukuBackground-300.png";
status = "ShizukuWebRadio";
};
};
shizukuWinterLamp = {
src = themeSources.shizuku;
paths = {
bgDark = "";
bgLight = "ShizukuWinterLamp/ShizukuBackground-300.png";
status = "ShizukuWinterLamp";
};
};
}
+3 -3
View File
@@ -22,7 +22,7 @@
let
pname = "spotube";
version = "3.8.2";
version = "3.8.3";
meta = {
description = "Open source, cross-platform Spotify client compatible across multiple platforms";
@@ -56,7 +56,7 @@ let
src = fetchArtifact {
filename = "Spotube-macos-universal.dmg";
hash = "sha256-2nqWHQDxJ0PcwTiLAa8YZffqwsdnepMpXvpqRPX5JxM=";
hash = "sha256-N1H/Vy5QQi8zAqiqAi5aTnUQcKC/EgL3GUhEfnCkaAQ=";
};
sourceRoot = ".";
@@ -80,7 +80,7 @@ let
src = fetchArtifact {
filename = "Spotube-linux-x86_64.deb";
hash = "sha256-kDPNWbspmORClVMH91Lt3dLVsRwGxiBtB49CHSHxQxI=";
hash = "sha256-x75ie9FXunClMT+YZVFlvl2VSDl933QYMRpEYjJ8YhY=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "svt-av1-psy";
version = "2.2.1-A";
version = "2.2.1-B";
src = fetchFromGitHub {
owner = "gianni-rosato";
repo = "svt-av1-psy";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-oCs8ZSfiqmAv2go6fa51l/Kt2pb1qdvuHtACRT2xGrw=";
hash = "sha256-3GF60XMKglpU82S5XNyW1DBYtU0KVrfghRVYokZTGoI=";
};
cmakeBuildType = "Release";
+26 -23
View File
@@ -32,32 +32,32 @@
}:
let
inherit (stdenv.hostPlatform) system;
throwSystem = throw "Unsupported system: ${system}";
pname = "waveterm";
version = "0.8.8";
version = "0.8.10";
suffix =
{
x86_64-linux = "waveterm-linux-x64-${version}.zip";
aarch64-linux = "waveterm-linux-arm64-${version}.zip";
x86_64-darwin = "Wave-darwin-universal-${version}.zip ";
aarch64-darwin = "Wave-darwin-arm64-${version}.zip";
}
.${system} or throwSystem;
src =
let
inherit (stdenv.hostPlatform) system;
selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}");
suffix = selectSystem {
x86_64-linux = "waveterm-linux-x64-${version}.zip";
aarch64-linux = "waveterm-linux-arm64-${version}.zip";
x86_64-darwin = "Wave-darwin-universal-${version}.zip ";
aarch64-darwin = "Wave-darwin-arm64-${version}.zip";
};
hash = selectSystem {
x86_64-linux = "sha256-jhXHuzHMwo9U5B+FA2xAreOYRVroMCXqDo+9pjAyh0Q=";
aarch64-linux = "sha256-JnKkjG67uvYNod+uosJ+svTAm9bulJzTpza3jQie1yQ=";
x86_64-darwin = "sha256-Dk/pKZrqkjKc7WEGkrLdZdgUEaz8ndXjZuINyVNxEa8=";
aarch64-darwin = "sha256-FgBbUrp+Z9K4gmM4mew0NQ2yIjuC+cgYrrYkjv0Ohhg=";
};
in
fetchurl {
url = "https://github.com/wavetermdev/waveterm/releases/download/v${version}/${suffix}";
inherit hash;
};
src = fetchurl {
url = "https://github.com/wavetermdev/waveterm/releases/download/v${version}/${suffix}";
hash =
{
x86_64-linux = "sha256-hRpJTFVoBQZyJD06FTRbBPj/1DlYlDWPRjJ1IKeK7Cs=";
aarch64-linux = "sha256-T3VqsoHhPYYrAe/dEd0SUH+G4jpHjKpJTrFy8/AgoKI=";
x86_64-darwin = "sha256-UlyNl2Qu59L4hnK8rTeUV30YVD45L7ub5SP8f97aJrw=";
aarch64-darwin = "sha256-cP+z8DQsNBJc3p57xQdGqqq7jvYcRQRIa+P+6kD3eCc=";
}
.${system} or throwSystem;
};
passthru.updateScript = ./update.sh;
desktopItems = [
(makeDesktopItem {
@@ -112,6 +112,8 @@ let
src
desktopItems
unpackPhase
meta
passthru
;
nativeBuildInputs = [
@@ -172,6 +174,7 @@ let
src
unpackPhase
meta
passthru
;
nativeBuildInputs = [
+25
View File
@@ -0,0 +1,25 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash curl coreutils jq common-updater-scripts
latestTag=$(curl https://api.github.com/repos/wavetermdev/waveterm/releases/latest | jq -r ".tag_name")
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; waveterm.version" | tr -d '"')
echo "latest version: $latestVersion"
echo "current version: $currentVersion"
if [[ "$latestVersion" == "$currentVersion" ]]; then
echo "package is up-to-date"
exit 0
fi
for i in \
"x86_64-linux waveterm-linux-x64" \
"aarch64-linux waveterm-linux-arm64" \
"x86_64-darwin Wave-darwin-universal" \
"aarch64-darwin Wave-darwin-arm64"; do
set -- $i
prefetch=$(nix-prefetch-url "https://github.com/wavetermdev/waveterm/releases/download/v$latestVersion/$2-$latestVersion.zip")
hash=$(nix-hash --type sha256 --to-sri $prefetch)
update-source-version waveterm $latestVersion $hash --system=$1 --ignore-same-version
done
-4946
View File
File diff suppressed because it is too large Load Diff
-65
View File
@@ -1,65 +0,0 @@
{
rustPlatform,
lib,
fetchFromGitHub,
nix-update-script,
cmake,
pkg-config,
fontconfig,
stdenv,
darwin,
}:
rustPlatform.buildRustPackage rec {
pname = "wgpu";
version = "22.1.0";
src = fetchFromGitHub {
owner = "gfx-rs";
repo = "wgpu";
rev = "refs/tags/wgpu-v${version}";
hash = "sha256-Gtq0xYZoWNwW+BKVLqVVKGqc+4HjaD7NN1hlzyFP5g0=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"noise-0.8.2" = "sha256-7GvShJeSNfwMCBIfqLghXgKQv7EDMqVchJw0uxPhNr4=";
"rspirv-0.11.0+sdk-1.2.198" = "sha256-AcJqkcXBr/+SHdUDXd63sQ0h5eosMqRhV4aUREJH8Bw=";
};
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs =
[
fontconfig
]
++ lib.optionals stdenv.hostPlatform.isDarwin (
with darwin.apple_sdk.frameworks;
[
CoreServices
QuartzCore
AppKit
]
);
#requires GPU
doCheck = false;
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://wgpu.rs/";
description = "Cross-platform, safe, pure-Rust graphics API.";
changelog = "https://github.com/gfx-rs/wgpu/releases/tag/v${version}";
maintainers = with lib.maintainers; [ bot-wxt1221 ];
license = with lib.licenses; [
mit
apsl20
];
};
}
+3 -3
View File
@@ -12,16 +12,16 @@
buildNpmPackage rec {
pname = "ytDownloader";
version = "3.18.2";
version = "3.18.3";
src = fetchFromGitHub {
owner = "aandrew-me";
repo = "ytDownloader";
rev = "refs/tags/v${version}";
hash = "sha256-j6FeRqAeqXLofvI5R7nOwfg6wd17Xk85vryktGfnxyI=";
hash = "sha256-omq1krlHj0+SvyofQtJnVBiQzHPIC/v/WhXGClm0vzM=";
};
npmDepsHash = "sha256-LUlpyzHJDpjytZmMjjn899NKwvb80a0DXdMhVT2aRTY=";
npmDepsHash = "sha256-PE9RWdnUlHTCBqGN6xvq+B7gXke/KsKsGcg1SAy7bfs=";
nativeBuildInputs = [
copyDesktopItems
@@ -1,37 +1,46 @@
{ lib, stdenv
, fetchFromGitHub
, qmake
, wrapQtAppsHook
, boost }:
{
lib,
boost,
fetchFromGitHub,
qt5,
stdenv,
}:
stdenv.mkDerivation rec {
let
inherit (qt5) qmake wrapQtAppsHook;
in
stdenv.mkDerivation (finalAttrs: {
pname = "zegrapher";
version = "3.1.1";
src = fetchFromGitHub {
owner = "AdelKS";
repo = "ZeGrapher";
rev = "v${version}";
sha256 = "sha256-OSQXm0gDI1zM2MBM4iiY43dthJcAZJkprklolsNMEvk=";
rev = "v${finalAttrs.version}";
hash = "sha256-OSQXm0gDI1zM2MBM4iiY43dthJcAZJkprklolsNMEvk=";
};
nativeBuildInputs = [
qmake
wrapQtAppsHook
];
buildInputs = [
boost
];
meta = with lib; {
homepage = "https://zegrapher.com/";
strictDeps = true;
meta = {
homepage = "https://zegrapher.com/en/";
description = "Open source math plotter";
mainProgram = "ZeGrapher";
longDescription = ''
An open source, free and easy to use math plotter. It can plot functions,
sequences, parametric equations and data on the plane.
'';
license = licenses.gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ];
license = lib.licenses.gpl3Plus;
mainProgram = "ZeGrapher";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.unix;
};
}
})
@@ -2,13 +2,13 @@
stdenvNoCC.mkDerivation {
pname = "dracula-icon-theme";
version = "unstable-2021-07-21";
version = "0-unstable-2024-05-26";
src = fetchFromGitHub {
owner = "m4thewz";
repo = "dracula-icons";
rev = "2d3c83caa8664e93d956cfa67a0f21418b5cdad8";
hash = "sha256-GY+XxTM22jyNq8kaB81zNfHRhfXujArFcyzDa8kjxCQ=";
rev = "6232e5217429a3ae6396c9e054f5338cecdbb7a5";
hash = "sha256-u2cIUTLWYs8VIqg6ZAUyz0nmzuFAZC4oh7bE67+B1Vg=";
};
nativeBuildInputs = [
@@ -1,55 +0,0 @@
{ lib
, stdenv
, fetchFromGitLab
, fetchpatch
, ninja
, pkg-config
, meson
, libevent
, curl
, spdlog
}:
stdenv.mkDerivation rec {
pname = "coeurl";
version = "0.3.0";
src = fetchFromGitLab {
domain = "nheko.im";
owner = "nheko-reborn";
repo = pname;
rev = "v${version}";
hash = "sha256-sN+YSddUOdnJLcnHyWdjNm1PpxCwnkwiqSvyrwUrg6w=";
};
patches = [
# Fix compatibility issues with curl > 7.85, see:
# https://nheko.im/nheko-reborn/coeurl/-/commit/d926893007c353fbc149d8538a5762ca8384273a
# PATCH CAN BE REMOVED AFTER 0.3.0
(fetchpatch {
url = "https://nheko.im/nheko-reborn/coeurl/-/commit/d926893007c353fbc149d8538a5762ca8384273a.patch";
hash = "sha256-hOBk7riuVI7k7qe/SMq3XJnFzyZ0gB9kVG7dKvWOsPY=";
})
# Fix error when building with fmt >= 10, see:
# https://nheko.im/nheko-reborn/coeurl/-/commit/831e2ee8e9cf08ea1ee9736cde8370f9d0312abc
# PATCH CAN BE REMOVED AFTER 0.3.0
(fetchpatch {
url = "https://nheko.im/nheko-reborn/coeurl/-/commit/831e2ee8e9cf08ea1ee9736cde8370f9d0312abc.patch";
hash = "sha256-a52Id7Nm3Mmmwv7eL58j6xovjlkpAO4KahVM/Q3H65w=";
})
];
postPatch = ''
substituteInPlace subprojects/curl.wrap --replace '[provides]' '[provide]'
'';
nativeBuildInputs = [ ninja pkg-config meson ];
buildInputs = [ libevent curl spdlog ];
meta = with lib; {
description = "Simple async wrapper around CURL for C++";
homepage = "https://nheko.im/nheko-reborn/coeurl";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ rnhmjoj ];
};
}
@@ -61,11 +61,17 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ];
# fixes "cycle detected in build"
postInstall = lib.optionalString stdenv.hostPlatform.isWindows ''
mkdir $dev/lib
mv $out/CMake $dev/lib/cmake
'';
meta = with lib; {
license = licenses.mit;
description = "Date and time library based on the C++11/14/17 <chrono> header";
homepage = "https://github.com/HowardHinnant/date";
platforms = platforms.unix;
platforms = with platforms; unix ++ windows;
maintainers = with maintainers; [ r-burns ];
};
}
@@ -10,7 +10,7 @@
stdenv.mkDerivation rec {
pname = "libirecovery";
version = "1.2.0";
version = "1.2.1";
outputs = [ "out" "dev" ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
owner = "libimobiledevice";
repo = pname;
rev = version;
hash = "sha256-3C66oNjIZA6Byf1Y2cVQUSLz6Css1y4xFZuQmo7QxMo=";
hash = "sha256-R+oBC7F4op0qoIk3d/WqS4MwzZY3WMAMIqlJfJb188Q=";
};
nativeBuildInputs = [
@@ -48,11 +48,18 @@ stdenv.mkDerivation {
src = fetchFromGitHub {
owner = "facebookresearch";
repo = pname;
rev = "v${version}";
repo = "faiss";
rev = "refs/tags/v${version}";
hash = "sha256-P8TynU6jz5NbcWLdI7n4LX5Gdz0Ks72bmOzQ3LGjQCQ=";
};
postPatch = lib.optionalString pythonSupport ''
substituteInPlace faiss/python/loader.py \
--replace-fail \
"# platform-dependent legacy fallback using numpy.distutils.cpuinfo" \
"return False"
'';
nativeBuildInputs =
[ cmake ]
++ lib.optionals cudaSupport [
@@ -63,7 +70,6 @@ stdenv.mkDerivation {
pythonPackages.python
pythonPackages.setuptools
pythonPackages.pip
pythonPackages.wheel
];
buildInputs =
@@ -1,30 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
}:
stdenv.mkDerivation rec {
pname = "xmake-core-sv";
version = "1.1";
src = fetchFromGitHub {
owner = "xmake-io";
repo = pname;
rev = "v${version}";
hash = "sha256-icvGQi6FNSZXNGs2oLiUKu6rrVsWcXh1r91kycGjnwY=";
};
nativeBuildInputs = [
autoreconfHook
];
meta = with lib; {
description = "Public domain cross-platform semantic versioning in c99";
homepage = "https://github.com/xmake-io/xmake-core-sv";
license = licenses.unlicense;
platforms = platforms.linux;
maintainers = with maintainers; [ rewine ];
};
}
@@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "aioautomower";
version = "2024.9.3";
version = "2024.10.0";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "Thomas55555";
repo = "aioautomower";
rev = "refs/tags/${version}";
hash = "sha256-2jPQcMD05SUYnBwAaWHbGKXy7Du2JKPVq3eui9YaqxI=";
hash = "sha256-qWXFkz1yIpSDGFilVZK0n+hEUs7osfO+2xfknr2cOZY=";
};
postPatch = ''
@@ -4,25 +4,14 @@
fetchFromGitHub,
attrs,
argon2-cffi,
base58,
cbor2,
cffi,
click,
cryptography,
ecdsa,
eth-abi,
eth-account,
flatbuffers,
jinja2,
hkdf,
hyperlink,
mnemonic,
mock,
msgpack,
passlib,
py-ecc,
# , py-eth-sig-utils
py-multihash,
py-ubjson,
pynacl,
pygobject3,
@@ -32,19 +21,11 @@
python-snappy,
pytestCheckHook,
pythonOlder,
# , pytrie
rlp,
service-identity,
setuptools,
spake2,
twisted,
txaio,
ujson,
# , web3
# , wsaccel
# , xbr
yapf,
# , zlmdb
zope-interface,
}@args:
@@ -71,13 +52,11 @@ buildPythonPackage rec {
txaio
];
nativeCheckInputs =
[
mock
pytest-asyncio
pytestCheckHook
]
++ optional-dependencies.scram ++ optional-dependencies.serialization ++ optional-dependencies.xbr;
nativeCheckInputs = [
mock
pytest-asyncio
pytestCheckHook
] ++ optional-dependencies.scram ++ optional-dependencies.serialization;
preCheck = ''
# Run asyncio tests (requires twisted)
@@ -92,7 +71,7 @@ buildPythonPackage rec {
pythonImportsCheck = [ "autobahn" ];
optional-dependencies = rec {
all = accelerate ++ compress ++ encryption ++ nvx ++ serialization ++ scram ++ twisted ++ ui ++ xbr;
all = accelerate ++ compress ++ encryption ++ nvx ++ serialization ++ scram ++ twisted ++ ui;
accelerate = [
# wsaccel
];
@@ -122,22 +101,6 @@ buildPythonPackage rec {
zope-interface
];
ui = [ pygobject3 ];
xbr = [
base58
cbor2
click
ecdsa
eth-abi
jinja2
hkdf
mnemonic
py-ecc # py-eth-sig-utils
py-multihash
rlp
spake2
twisted # web3 xbr
yapf # zlmdb
];
};
meta = with lib; {
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "dissect-cstruct";
version = "4.1";
version = "4.2";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "fox-it";
repo = "dissect.cstruct";
rev = "refs/tags/${version}";
hash = "sha256-8CEvn2TJTXm0t4GBG9OQo9TgSy1+sTZIusaiiGNu05M=";
hash = "sha256-HYBt1ok2ytqBodHwpBPQqjm9fNPkE6ID2j9Bn2sm7wA=";
};
build-system = [
@@ -7,7 +7,6 @@
packaging,
setuptools,
pip,
wheel,
}:
buildPythonPackage {
@@ -24,7 +23,6 @@ buildPythonPackage {
build-system = [
setuptools
pip
wheel
];
dependencies = [
@@ -1,40 +0,0 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
nose,
setuptools,
}:
buildPythonPackage {
pname = "hkdf";
version = "0.0.3";
pyproject = true;
src = fetchFromGitHub {
owner = "casebeer";
repo = "python-hkdf";
rev = "cc3c9dbf0a271b27a7ac5cd04cc1485bbc3b4307";
hash = "sha256-i3vJzUI7dpZbgZkz7Agd5RAeWisNWftdk/mkJBZkkLg=";
};
build-system = [ setuptools ];
pythonImportsCheck = [ "hkdf" ];
nativeCheckInputs = [ nose ];
checkPhase = ''
runHook preCheck
nosetests
runHook postCheck
'';
meta = with lib; {
description = "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)";
homepage = "https://github.com/casebeer/python-hkdf";
license = licenses.bsd2;
};
}
@@ -2,31 +2,44 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nose,
pytestCheckHook,
setuptools,
}:
buildPythonPackage rec {
buildPythonPackage {
pname = "inotify";
version = "unstable-2020-08-27";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "dsoprea";
repo = "PyInotify";
rev = "f77596ae965e47124f38d7bd6587365924dcd8f7";
sha256 = "X0gu4s1R/Kg+tmf6s8SdZBab2HisJl4FxfdwKktubVc=";
fetchSubmodules = false;
hash = "sha256-X0gu4s1R/Kg+tmf6s8SdZBab2HisJl4FxfdwKktubVc=";
};
nativeCheckInputs = [ nose ];
postPatch = ''
# Needed because assertEquals was removed in python 3.12
substituteInPlace tests/test_inotify.py \
--replace-fail "assertEquals" "assertEqual" \
'';
# dunno what's wrong but the module works regardless
doCheck = false;
build-system = [ setuptools ];
meta = with lib; {
nativeCheckInputs = [ pytestCheckHook ];
# Disable these tests as they're flaky.
# The returned list can be in a different order, which causes the tests to fail.
disabledTests = [
"test__automatic_new_watches_on_new_paths"
"test__cycle"
"test__renames"
];
meta = {
homepage = "https://github.com/dsoprea/PyInotify";
description = "Monitor filesystems events on Linux platforms with inotify";
license = licenses.gpl2;
platforms = platforms.linux;
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "lxml-html-clean";
version = "0.2.2";
version = "0.3.1";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "fedora-python";
repo = "lxml_html_clean";
rev = "refs/tags/${version}";
hash = "sha256-DiHbO2m/JckdXFMU7/LAW2hkyskqWtrQ93sgsVcdDSo=";
hash = "sha256-LNfsqvBYxhUANiftDp6aYb5UWnP7/NvDEZcSSn+l20Q=";
};
build-system = [ setuptools ];
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "mitogen";
version = "0.3.12";
version = "0.3.13";
pyproject = true;
disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "mitogen-hq";
repo = "mitogen";
rev = "refs/tags/v${version}";
hash = "sha256-OlZzE4Nc9VBrv5oCZ4LUFdj1a+9rc7YbHDYSbHwALY8=";
hash = "sha256-tQz79OVhUWrmsV05l8ScPAUVecrT55fFn74zpjVxBmg=";
};
build-system = [ setuptools ];
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "model-bakery";
version = "1.19.5";
version = "1.20.0";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "model-bakers";
repo = "model_bakery";
rev = "refs/tags/${version}";
hash = "sha256-hOXE3mddGmRRgO9qAlj3bnmco8QTg2rD0sgui3J9pp8=";
hash = "sha256-71c5p6FypqbwUUoYu4dTamYnBlks1fiXTp7dUfc0ZQs=";
};
build-system = [ hatchling ];
@@ -15,7 +15,7 @@
buildPythonPackage rec {
pname = "opower";
version = "0.8.2";
version = "0.8.3";
pyproject = true;
disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "tronikos";
repo = "opower";
rev = "refs/tags/v${version}";
hash = "sha256-p1fvfAQVmizfsW+6F3gKkNQTYUF+A0cafh3PZZTpTRw=";
hash = "sha256-W/EsiSNFPSJj81ykcEM3YRnRZDJDKvfOUuV98Sk4Gwo=";
};
build-system = [ setuptools ];
@@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "playwrightcapture";
version = "1.26.0";
version = "1.26.1";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "Lookyloo";
repo = "PlaywrightCapture";
rev = "refs/tags/v${version}";
hash = "sha256-v6n+zsiLEQHeAeSALDxu4FWwwQaD/zu3rwxIjR57Ly4=";
hash = "sha256-zVwsRTsxic0/K6HyTLVRYCnBpSIF9Ly0TRJS90nADTg=";
};
pythonRelaxDeps = [
@@ -2,46 +2,47 @@
lib,
buildPythonPackage,
fetchFromGitHub,
hatchling,
hatch-vcs,
openssh,
ps,
hatchling,
paramiko,
psutil,
pytest-cov-stub,
pytest-mock,
pytest-timeout,
pytestCheckHook,
pythonOlder,
}:
buildPythonPackage rec {
pname = "plumbum";
version = "1.8.3";
format = "pyproject";
version = "1.9.0";
pyproject = true;
disabled = pythonOlder "3.10";
src = fetchFromGitHub {
owner = "tomerfiliba";
repo = "plumbum";
rev = "refs/tags/v${version}";
hash = "sha256-k2H/FBQAWrCN1P587s/OhiCGNasMKEFJYIBIU808rlE=";
hash = "sha256-3PAvSjZ0+BMq+/g4qNNZl27KnAm01fWFYxBBY+feNTU=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace '"--cov-config=setup.cfg", ' ""
'';
nativeBuildInputs = [
build-system = [
hatchling
hatch-vcs
];
optional-dependencies = {
ssh = [ paramiko ];
};
nativeCheckInputs = [
openssh
ps
psutil
pytest-cov-stub
pytest-mock
pytest-timeout
pytestCheckHook
];
] ++ lib.flatten (builtins.attrValues optional-dependencies);
preCheck = ''
export HOME=$TMP
@@ -63,9 +64,9 @@ buildPythonPackage rec {
];
meta = with lib; {
description = "Module Shell Combinators";
changelog = "https://github.com/tomerfiliba/plumbum/releases/tag/v${version}";
description = " Plumbum: Shell Combinators";
homepage = " https://github.com/tomerfiliba/plumbum ";
homepage = " https://github.com/tomerfiliba/plumbum";
license = licenses.mit;
maintainers = [ ];
};
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "propcache";
version = "0.1.0";
version = "0.2.0";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "aio-libs";
repo = "propcache";
rev = "refs/tags/v${version}";
hash = "sha256-h6YoBnuzhsFaBNEMM4oRB14ayhE9piTSf9sswl06lz0=";
hash = "sha256-S0u5/HJYtZCWB9X+Nlnz+oSFb3o98mGWWwsNLodzS9g=";
};
build-system = [
@@ -1,26 +1,28 @@
{
lib,
buildPythonPackage,
fetchPypi,
fetchFromGitHub,
glibcLocales,
importlib-metadata,
numpy,
packaging,
htslib,
fsspec,
pytestCheckHook,
pythonOlder,
biopython,
setuptools,
setuptools-scm,
}:
buildPythonPackage rec {
pname = "pyfaidx";
version = "0.8.1.2";
version = "0.8.1.3";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-2EUkcEVbHnePk5aUR9uOok3rRiTHxAdpUWRZy2+HvDM=";
src = fetchFromGitHub {
owner = "mdshw5";
repo = "pyfaidx";
rev = "refs/tags/v${version}";
hash = "sha256-PKcopIu/0ko4Jl2+G0ZivZXvMwACeIFFFlPt5dlDDfQ=";
};
build-system = [
@@ -28,27 +30,31 @@ buildPythonPackage rec {
setuptools-scm
];
dependencies = [ importlib-metadata ];
nativeCheckInputs = [
glibcLocales
numpy
pytestCheckHook
dependencies = [
importlib-metadata
packaging
];
disabledTestPaths = [
# FileNotFoundError: [Errno 2] No such file or directory: 'data/genes.fasta.gz'
"tests/test_Fasta_bgzip.py"
nativeCheckInputs = [
pytestCheckHook
biopython
htslib
fsspec
glibcLocales
];
pythonImportsCheck = [ "pyfaidx" ];
meta = with lib; {
preCheck = ''
bgzip --keep tests/data/genes.fasta
'';
meta = {
description = "Python classes for indexing, retrieval, and in-place modification of FASTA files using a samtools compatible index";
homepage = "https://github.com/mdshw5/pyfaidx";
changelog = "https://github.com/mdshw5/pyfaidx/releases/tag/v${version}";
license = licenses.bsd3;
maintainers = with maintainers; [ jbedo ];
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ jbedo ];
mainProgram = "faidx";
};
}
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "pylacus";
version = "1.10.0";
version = "1.11.1";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "ail-project";
repo = "PyLacus";
rev = "refs/tags/v${version}";
hash = "sha256-HPd/kF79Xb5kyYdOpm6ny6/rRNeu8WkTv7rM1Kpb7YI=";
hash = "sha256-kCYpv6rCvjeXlyB+x6AgT9DY9EvccoQKaWpR19ZJhLc=";
};
build-system = [ poetry-core ];
@@ -28,14 +28,14 @@
buildPythonPackage rec {
pname = "sentence-transformers";
version = "3.1.1";
version = "3.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "UKPLab";
repo = "sentence-transformers";
rev = "refs/tags/v${version}";
hash = "sha256-YtAgv0vH2aL7UX3ETVfwDEQYEWYo5Pj/R45CeH7T3BU=";
hash = "sha256-T9y+usEOqz53Wv5gObD5o3gAlABHM3apoq/ySD5ynVg=";
};
build-system = [ setuptools ];
@@ -8,13 +8,13 @@
buildPythonPackage rec {
pname = "spark-parser";
version = "1.8.9";
version = "1.9.0";
format = "setuptools";
src = fetchPypi {
pname = "spark_parser";
inherit version;
sha256 = "0np2y4jcir4a4j18wws7yzkz2zj6nqhdhn41rpq8pyskg6wrgfx7";
sha256 = "sha256-3GbUjEJlxBM9tBqcX+nBxQKzsgFn3xWKDyNM0xcSz2Q=";
};
propagatedBuildInputs = [ click ];
@@ -12,7 +12,7 @@
# buildInputs
torch,
# checks
# tests
cloudpickle,
psutil,
pytestCheckHook,
@@ -28,7 +28,7 @@
let
pname = "torchmetrics";
version = "1.4.2";
version = "1.4.3";
in
buildPythonPackage {
inherit pname version;
@@ -38,7 +38,7 @@ buildPythonPackage {
owner = "Lightning-AI";
repo = "torchmetrics";
rev = "refs/tags/v${version}";
hash = "sha256-YieIz99QFnuW3hTtNFgxhkNnSXGsTG2qqYhRCyvZo7Q=";
hash = "sha256-527cHPFdFw/JajHe7Kkz7+zl4EfePaLx77I2OTjjxaA=";
};
dependencies = [
@@ -3,6 +3,7 @@
buildPythonPackage,
pythonOlder,
fetchFromGitHub,
setuptools,
# propagated build input
faiss,
torch,
@@ -47,18 +48,32 @@
openpyxl,
requests,
xmltodict,
pgvector,
sqlite-vec,
python-multipart,
# native check inputs
unittestCheckHook,
pythonAtLeast,
pytestCheckHook,
# check inputs
httpx,
msgpack,
sqlalchemy,
}:
let
version = "7.3.0";
version = "7.4.0";
api = [
aiohttp
fastapi
pillow
python-multipart
uvicorn
];
ann = [
annoy
hnswlib
pgvector
sqlalchemy
sqlite-vec
];
# cloud = [ apache-libcloud ];
console = [ rich ];
@@ -124,10 +139,11 @@ let
requests
xmltodict
];
all = api ++ console ++ database ++ graph ++ model ++ pipeline ++ similarity ++ workflow;
all = api ++ ann ++ console ++ database ++ graph ++ model ++ pipeline ++ similarity ++ workflow;
optional-dependencies = {
inherit
ann
api
console
database
@@ -147,7 +163,8 @@ in
buildPythonPackage {
pname = "txtai";
inherit version;
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.8";
@@ -155,16 +172,17 @@ buildPythonPackage {
owner = "neuml";
repo = "txtai";
rev = "refs/tags/v${version}";
hash = "sha256-tnM6ye0Sxh8P2bm3awE72GvXEY0gXX1Sv+wPr77wRGU=";
hash = "sha256-DQB12mFUMsKJ8cACowI1Vc7k2n1npdTOQknRmHd5EIM=";
};
buildTools = [ setuptools ];
pythonRemoveDeps = [
# We call it faiss, not faiss-cpu.
"faiss-cpu"
];
propagatedBuildInputs = [
dependencies = [
faiss
torch
transformers
@@ -176,23 +194,52 @@ buildPythonPackage {
optional-dependencies = optional-dependencies;
pythonImportsCheck = [ "txtai" ];
# some tests hang forever
doCheck = false;
preCheck = ''
export TRANSFORMERS_CACHE=$(mktemp -d)
# The Python imports check runs huggingface-hub which needs a writable directory.
# `pythonImportsCheck` runs in the installPhase (before checkPhase).
preInstall = ''
export HF_HOME=$(mktemp -d)
'';
nativeCheckInputs = [
unittestCheckHook
] ++ optional-dependencies.api ++ optional-dependencies.similarity;
pythonImportsCheck = [ "txtai" ];
unittestFlagsArray = [
"-s"
"test/python"
"-v"
nativeCheckInputs = [
pytestCheckHook
] ++ optional-dependencies.ann ++ optional-dependencies.api ++ optional-dependencies.similarity;
checkInputs = [
httpx
msgpack
python-multipart
sqlalchemy
];
# The deselected paths depend on the huggingface hub and should be run as a passthru test
# disabledTestPaths won't work as the problem is with the classes containing the tests
# (in other words, it fails on __init__)
pytestFlagsArray = [
"test/python/test*.py"
"--deselect=test/python/testcloud.py"
"--deselect=test/python/testconsole.py"
"--deselect=test/python/testembeddings.py"
"--deselect=test/python/testgraph.py"
"--deselect=test/python/testapi/testembeddings.py"
"--deselect=test/python/testapi/testpipelines.py"
"--deselect=test/python/testapi/testworkflow.py"
"--deselect=test/python/testdatabase/testclient.py"
"--deselect=test/python/testdatabase/testduckdb.py"
"--deselect=test/python/testdatabase/testencoder.py"
"--deselect=test/python/testworkflow.py"
];
disabledTests = [
# Hardcoded paths
"testInvalidTar"
"testInvalidZip"
# Downloads from Huggingface
"testPipeline"
# Not finding sqlite-vec despite being supplied
"testSQLite"
"testSQLiteCustom"
];
meta = {
@@ -201,7 +248,5 @@ buildPythonPackage {
homepage = "https://github.com/neuml/txtai";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ happysalada ];
# This should be addressed in a newer version, but we first need to wait for python311Packages.faiss to be updated
broken = pythonAtLeast "3.12";
};
}

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