Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2022-01-14 00:08:37 +00:00 committed by GitHub
commit 595d55a9e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
146 changed files with 2581 additions and 940 deletions

View file

@ -11,6 +11,10 @@ under the terms of [COPYING](COPYING), which is an MIT-like license.
## Submitting changes
Read the ["Submitting changes"](https://nixos.org/nixpkgs/manual/#chap-submitting-changes) section of the nixpkgs manual. It explains how to write, test, and iterate on your change, and which branch to base your pull request against.
Below is a short excerpt of some points in there:
* Format the commit messages in the following way:
```
@ -40,7 +44,7 @@ under the terms of [COPYING](COPYING), which is an MIT-like license.
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
* `meta.maintainers` must be set.
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes) and on how to [submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).
See the nixpkgs manual for more details on [standard meta-attributes](https://nixos.org/nixpkgs/manual/#sec-standard-meta-attributes).
## Writing good commit messages

View file

@ -1,10 +1,24 @@
{ config, lib, ... }:
with lib;
let
cfg = config.hardware.cpu.intel.sgx.provision;
defaultGroup = "sgx_prv";
cfg = config.hardware.cpu.intel.sgx;
defaultPrvGroup = "sgx_prv";
in
{
options.hardware.cpu.intel.sgx.enableDcapCompat = mkOption {
description = ''
Whether to enable backward compatibility for SGX software build for the
out-of-tree Intel SGX DCAP driver.
Creates symbolic links for the SGX devices <literal>/dev/sgx_enclave</literal>
and <literal>/dev/sgx_provision</literal> to make them available as
<literal>/dev/sgx/enclave</literal> and <literal>/dev/sgx/provision</literal>,
respectively.
'';
type = types.bool;
default = true;
};
options.hardware.cpu.intel.sgx.provision = {
enable = mkEnableOption "access to the Intel SGX provisioning device";
user = mkOption {
@ -15,7 +29,7 @@ in
group = mkOption {
description = "Group to assign to the SGX provisioning device.";
type = types.str;
default = defaultGroup;
default = defaultPrvGroup;
};
mode = mkOption {
description = "Mode to set for the SGX provisioning device.";
@ -24,24 +38,32 @@ in
};
};
config = mkIf cfg.enable {
assertions = [
{
assertion = hasAttr cfg.user config.users.users;
message = "Given user does not exist";
}
{
assertion = (cfg.group == defaultGroup) || (hasAttr cfg.group config.users.groups);
message = "Given group does not exist";
}
];
config = mkMerge [
(mkIf cfg.provision.enable {
assertions = [
{
assertion = hasAttr cfg.provision.user config.users.users;
message = "Given user does not exist";
}
{
assertion = (cfg.provision.group == defaultPrvGroup) || (hasAttr cfg.provision.group config.users.groups);
message = "Given group does not exist";
}
];
users.groups = optionalAttrs (cfg.group == defaultGroup) {
"${cfg.group}" = { };
};
users.groups = optionalAttrs (cfg.provision.group == defaultPrvGroup) {
"${cfg.provision.group}" = { };
};
services.udev.extraRules = ''
SUBSYSTEM=="misc", KERNEL=="sgx_provision", OWNER="${cfg.user}", GROUP="${cfg.group}", MODE="${cfg.mode}"
'';
};
services.udev.extraRules = with cfg.provision; ''
SUBSYSTEM=="misc", KERNEL=="sgx_provision", OWNER="${user}", GROUP="${group}", MODE="${mode}"
'';
})
(mkIf cfg.enableDcapCompat {
services.udev.extraRules = ''
SUBSYSTEM=="misc", KERNEL=="sgx_enclave", SYMLINK+="sgx/enclave"
SUBSYSTEM=="misc", KERNEL=="sgx_provision", SYMLINK+="sgx/provision"
'';
})
];
}

View file

@ -104,4 +104,6 @@ chroot_add_resolv_conf "$mountPoint" || print "ERROR: failed to set up resolv.co
chroot "$mountPoint" systemd-tmpfiles --create --remove --exclude-prefix=/dev 1>&2 || true
)
unset TMPDIR
exec chroot "$mountPoint" "${command[@]}"

View file

@ -544,6 +544,7 @@
./services/misc/gollum.nix
./services/misc/gpsd.nix
./services/misc/headphones.nix
./services/misc/heisenbridge.nix
./services/misc/greenclip.nix
./services/misc/home-assistant.nix
./services/misc/ihaskell.nix

View file

@ -209,62 +209,42 @@ in {
config = mkIf cfg.enable {
# install mpd units
systemd.packages = [ pkgs.mpd ];
systemd.sockets.mpd = mkIf cfg.startWhenNeeded {
description = "Music Player Daemon Socket";
wantedBy = [ "sockets.target" ];
listenStreams = [
(if pkgs.lib.hasPrefix "/" cfg.network.listenAddress
then cfg.network.listenAddress
else "${optionalString (cfg.network.listenAddress != "any") "${cfg.network.listenAddress}:"}${toString cfg.network.port}")
];
socketConfig = {
Backlog = 5;
KeepAlive = true;
PassCredentials = true;
};
};
systemd.services.mpd = {
after = [ "network.target" "sound.target" ];
description = "Music Player Daemon";
wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target";
serviceConfig = mkMerge [
preStart =
''
set -euo pipefail
install -m 600 ${mpdConf} /run/mpd/mpd.conf
'' + optionalString (cfg.credentials != [])
(concatStringsSep "\n"
(imap0
(i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'')
cfg.credentials));
serviceConfig =
{
User = "${cfg.user}";
ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon /run/mpd/mpd.conf";
ExecStartPre = pkgs.writeShellScript "mpd-start-pre" (''
set -euo pipefail
install -m 600 ${mpdConf} /run/mpd/mpd.conf
'' + optionalString (cfg.credentials != [])
(concatStringsSep "\n"
(imap0
(i: c: ''${pkgs.replace-secret}/bin/replace-secret '{{password-${toString i}}}' '${c.passwordFile}' /run/mpd/mpd.conf'')
cfg.credentials))
);
# Note: the first "" overrides the ExecStart from the upstream unit
ExecStart = [ "" "${pkgs.mpd}/bin/mpd --systemd /run/mpd/mpd.conf" ];
RuntimeDirectory = "mpd";
Type = "notify";
LimitRTPRIO = 50;
LimitRTTIME = "infinity";
ProtectSystem = true;
NoNewPrivileges = true;
ProtectKernelTunables = true;
ProtectControlGroups = true;
ProtectKernelModules = true;
RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK";
RestrictNamespaces = true;
Restart = "always";
}
(mkIf (cfg.dataDir == "/var/lib/${name}") {
StateDirectory = [ name ];
})
(mkIf (cfg.playlistDirectory == "/var/lib/${name}/playlists") {
StateDirectory = [ name "${name}/playlists" ];
})
(mkIf (cfg.musicDirectory == "/var/lib/${name}/music") {
StateDirectory = [ name "${name}/music" ];
})
];
StateDirectory = []
++ optionals (cfg.dataDir == "/var/lib/${name}") [ name ]
++ optionals (cfg.playlistDirectory == "/var/lib/${name}/playlists") [ name "${name}/playlists" ]
++ optionals (cfg.musicDirectory == "/var/lib/${name}/music") [ name "${name}/music" ];
};
};
users.users = optionalAttrs (cfg.user == name) {

View file

@ -23,7 +23,7 @@ let
in
{
options.services.heisenbridge = {
enable = mkEnableOption "the Matrix<->IRC bridge";
enable = mkEnableOption "A bouncer-style Matrix IRC bridge";
package = mkOption {
type = types.package;

View file

@ -73,6 +73,11 @@ in
hardware.cpu.intel.sgx.provision.enable = true;
# Make sure the AESM service can find the SGX devices until
# https://github.com/intel/linux-sgx/issues/772 is resolved
# and updated in nixpkgs.
hardware.cpu.intel.sgx.enableDcapCompat = mkForce true;
systemd.services.aesmd =
let
storeAesmFolder = "${sgx-psw}/aesm";

View file

@ -45,16 +45,6 @@ initrd {initrd}
options {kernel_params}
"""
# The boot loader entry for memtest86.
#
# TODO: This is hard-coded to use the 64-bit EFI app, but it could probably
# be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI
# app filename is BOOTIA32.efi.
MEMTEST_BOOT_ENTRY = """title MemTest86
efi /efi/memtest86/BOOTX64.efi
"""
def generation_conf_filename(profile: Optional[str], generation: int, specialisation: Optional[str]) -> str:
pieces = [
"nixos",
@ -283,23 +273,24 @@ def main() -> None:
except OSError as e:
print("ignoring profile '{}' in the list of boot entries because of the following error:\n{}".format(profile, e), file=sys.stderr)
memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf"
if os.path.exists(memtest_entry_file):
os.unlink(memtest_entry_file)
shutil.rmtree("@efiSysMountPoint@/efi/memtest86", ignore_errors=True)
if "@memtest86@" != "":
mkdir_p("@efiSysMountPoint@/efi/memtest86")
for path in glob.iglob("@memtest86@/*"):
if os.path.isdir(path):
shutil.copytree(path, os.path.join("@efiSysMountPoint@/efi/memtest86", os.path.basename(path)))
else:
shutil.copy(path, "@efiSysMountPoint@/efi/memtest86/")
for root, _, files in os.walk('@efiSysMountPoint@/efi/nixos/.extra-files', topdown=False):
relative_root = root.removeprefix("@efiSysMountPoint@/efi/nixos/.extra-files").removeprefix("/")
actual_root = os.path.join("@efiSysMountPoint@", relative_root)
memtest_entry_file = "@efiSysMountPoint@/loader/entries/memtest86.conf"
memtest_entry_file_tmp_path = "%s.tmp" % memtest_entry_file
with open(memtest_entry_file_tmp_path, 'w') as f:
f.write(MEMTEST_BOOT_ENTRY)
os.rename(memtest_entry_file_tmp_path, memtest_entry_file)
for file in files:
actual_file = os.path.join(actual_root, file)
if os.path.exists(actual_file):
os.unlink(actual_file)
os.unlink(os.path.join(root, file))
if not len(os.listdir(actual_root)):
os.rmdir(actual_root)
os.rmdir(root)
mkdir_p("@efiSysMountPoint@/efi/nixos/.extra-files")
subprocess.check_call("@copyExtraFiles@")
# Since fat32 provides little recovery facilities after a crash,
# it can leave the system in an unbootable state, when a crash/outage

View file

@ -29,6 +29,22 @@ let
inherit (efi) efiSysMountPoint canTouchEfiVariables;
memtest86 = if cfg.memtest86.enable then pkgs.memtest86-efi else "";
netbootxyz = if cfg.netbootxyz.enable then pkgs.netbootxyz-efi else "";
copyExtraFiles = pkgs.writeShellScript "copy-extra-files" ''
empty_file=$(mktemp)
${concatStrings (mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${v}" "${efi.efiSysMountPoint}/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/"${escapeShellArg n}
'') cfg.extraFiles)}
${concatStrings (mapAttrsToList (n: v: ''
${pkgs.coreutils}/bin/install -Dp "${pkgs.writeText n v}" "${efi.efiSysMountPoint}/loader/entries/"${escapeShellArg n}
${pkgs.coreutils}/bin/install -D $empty_file "${efi.efiSysMountPoint}/efi/nixos/.extra-files/loader/entries/"${escapeShellArg n}
'') cfg.extraEntries)}
'';
};
checkedSystemdBootBuilder = pkgs.runCommand "systemd-boot" {
@ -125,6 +141,74 @@ in {
<literal>true</literal>.
'';
};
entryFilename = mkOption {
default = "memtest86.conf";
type = types.str;
description = ''
<literal>systemd-boot</literal> orders the menu entries by the config file names,
so if you want something to appear after all the NixOS entries,
it should start with <filename>o</filename> or onwards.
'';
};
};
netbootxyz = {
enable = mkOption {
default = false;
type = types.bool;
description = ''
Make <literal>netboot.xyz</literal> available from the
<literal>systemd-boot</literal> menu. <literal>netboot.xyz</literal>
is a menu system that allows you to boot OS installers and
utilities over the network.
'';
};
entryFilename = mkOption {
default = "o_netbootxyz.conf";
type = types.str;
description = ''
<literal>systemd-boot</literal> orders the menu entries by the config file names,
so if you want something to appear after all the NixOS entries,
it should start with <filename>o</filename> or onwards.
'';
};
};
extraEntries = mkOption {
type = types.attrsOf types.lines;
default = {};
example = literalExpression ''
{ "memtest86.conf" = '''
title MemTest86
efi /efi/memtest86/memtest86.efi
'''; }
'';
description = ''
Any additional entries you want added to the <literal>systemd-boot</literal> menu.
These entries will be copied to <filename>/boot/loader/entries</filename>.
Each attribute name denotes the destination file name,
and the corresponding attribute value is the contents of the entry.
<literal>systemd-boot</literal> orders the menu entries by the config file names,
so if you want something to appear after all the NixOS entries,
it should start with <filename>o</filename> or onwards.
'';
};
extraFiles = mkOption {
type = types.attrsOf types.path;
default = {};
example = literalExpression ''
{ "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; }
'';
description = ''
A set of files to be copied to <filename>/boot</filename>.
Each attribute name denotes the destination file name in
<filename>/boot</filename>, while the corresponding
attribute value specifies the source file.
'';
};
graceful = mkOption {
@ -148,15 +232,64 @@ in {
assertions = [
{
assertion = (config.boot.kernelPackages.kernel.features or { efiBootStub = true; }) ? efiBootStub;
message = "This kernel does not support the EFI boot stub";
}
];
] ++ 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);
message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not begin with a slash";
}
{
assertion = !(hasInfix ".." filename);
message = "boot.loader.systemd-boot.extraFiles.${lib.strings.escapeNixIdentifier filename} is invalid: paths must not reference the parent directory";
}
{
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);
boot.loader.grub.enable = mkDefault false;
boot.loader.supportsInitrdSecrets = true;
boot.loader.systemd-boot.extraFiles = mkMerge [
# TODO: This is hard-coded to use the 64-bit EFI app, but it could probably
# be updated to use the 32-bit EFI app on 32-bit systems. The 32-bit EFI
# app filename is BOOTIA32.efi.
(mkIf cfg.memtest86.enable {
"efi/memtest86/BOOTX64.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi";
})
(mkIf cfg.netbootxyz.enable {
"efi/netbootxyz/netboot.xyz.efi" = "${pkgs.netbootxyz-efi}";
})
];
boot.loader.systemd-boot.extraEntries = mkMerge [
(mkIf cfg.memtest86.enable {
"${cfg.memtest86.entryFilename}" = ''
title MemTest86
efi /efi/memtest86/BOOTX64.efi
'';
})
(mkIf cfg.netbootxyz.enable {
"${cfg.netbootxyz.entryFilename}" = ''
title netboot.xyz
efi /efi/netbootxyz/netboot.xyz.efi
'';
})
];
system = {
build.installBootLoader = checkedSystemdBootBuilder;

View file

@ -13,19 +13,30 @@ import ./make-test-python.nix ({ pkgs, ... }: {
};
};
services.getty.autologinUser = "root";
environment.systemPackages = map
(shell: pkgs.writeScriptBin "expect-${shell}" ''
#!${pkgs.expect}/bin/expect -f
spawn env TERM=xterm ${shell} -i
expect "<starship>" {
send "exit\n"
} timeout {
send_user "\n${shell} failed to display Starship\n"
exit 1
}
expect eof
'')
[ "bash" "fish" "zsh" ];
};
testScript = ''
start_all()
machine.wait_for_unit("default.target")
for shell in ["bash", "fish", "zsh"]:
machine.send_chars(f"script -c {shell} /tmp/{shell}.txt\n")
machine.wait_until_tty_matches(1, f"Script started.*{shell}.txt")
machine.send_chars("exit\n")
machine.wait_until_tty_matches(1, "Script done")
machine.sleep(1)
machine.succeed(f"grep -q '<starship>' /tmp/{shell}.txt")
machine.succeed("expect-bash")
machine.succeed("expect-fish")
machine.succeed("expect-zsh")
'';
})

View file

@ -110,4 +110,145 @@ in
assert "updating systemd-boot from (000.0-1-notnixos) to " in output
'';
};
memtest86 = makeTest {
name = "systemd-boot-memtest86";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"memtest86-efi"
];
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi")
'';
};
netbootxyz = makeTest {
name = "systemd-boot-netbootxyz";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/o_netbootxyz.conf")
machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
'';
};
entryFilename = makeTest {
name = "systemd-boot-entry-filename";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.memtest86.enable = true;
boot.loader.systemd-boot.memtest86.entryFilename = "apple.conf";
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"memtest86-efi"
];
};
testScript = ''
machine.fail("test -e /boot/loader/entries/memtest86.conf")
machine.succeed("test -e /boot/loader/entries/apple.conf")
machine.succeed("test -e /boot/efi/memtest86/BOOTX64.efi")
'';
};
extraEntries = makeTest {
name = "systemd-boot-extra-entries";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
machine = { pkgs, lib, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraEntries = {
"banana.conf" = ''
title banana
'';
};
};
testScript = ''
machine.succeed("test -e /boot/loader/entries/banana.conf")
machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/banana.conf")
'';
};
extraFiles = makeTest {
name = "systemd-boot-extra-files";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
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")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/fruits/tomato.efi")
'';
};
switch-test = makeTest {
name = "systemd-boot-switch-test";
meta.maintainers = with pkgs.lib.maintainers; [ Enzime ];
nodes = {
inherit common;
machine = { pkgs, ... }: {
imports = [ common ];
boot.loader.systemd-boot.extraFiles = {
"efi/fruits/tomato.efi" = pkgs.netbootxyz-efi;
};
};
with_netbootxyz = { pkgs, ... }: {
imports = [ common ];
boot.loader.systemd-boot.netbootxyz.enable = true;
};
};
testScript = { nodes, ... }: let
originalSystem = nodes.machine.config.system.build.toplevel;
baseSystem = nodes.common.config.system.build.toplevel;
finalSystem = nodes.with_netbootxyz.config.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("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/o_netbootxyz.conf")
machine.succeed("test -e /boot/efi/netbootxyz/netboot.xyz.efi")
machine.succeed("test -e /boot/efi/nixos/.extra-files/loader/entries/o_netbootxyz.conf")
machine.succeed("test -e /boot/efi/nixos/.extra-files/efi/netbootxyz/netboot.xyz.efi")
'';
};
}

View file

@ -36,13 +36,13 @@
mkDerivation rec {
pname = "strawberry";
version = "1.0.0";
version = "1.0.1";
src = fetchFromGitHub {
owner = "jonaski";
repo = pname;
rev = version;
sha256 = "sha256-m1BB5OIeCIQuJpxEO1xmb/Z8tzeHF31jYg67OpVWWRM=";
sha256 = "sha256-MlS1ShRXfsTMs97MeExW6sfpv40OcQLDIzIzOYGk7Rw=";
};
buildInputs = [

View file

@ -52,6 +52,11 @@ self: let
super = removeAttrs imported [ "dash" ];
overrides = {
# upstream issue: Wrong type argument: arrayp, nil
org-transclusion =
if super.org-transclusion.version == "1.2.0"
then markBroken super.org-transclusion
else super.org-transclusion;
rcirc-menu = markBroken super.rcirc-menu; # Missing file header
cl-lib = null; # builtin
tle = null; # builtin

View file

@ -9,13 +9,13 @@
trivialBuild {
pname = "ement";
version = "unstable-2021-09-16";
version = "unstable-2021-10-08";
src = fetchFromGitHub {
owner = "alphapapa";
repo = "ement.el";
rev = "c07e914f077199c95b0e7941a421675c95d4687e";
sha256 = "sha256-kYVb2NrHYC87mY/hFUMAjb4TLJ9A2L2RrHoiAXvRaGg=";
rev = "c951737dc855604aba389166bb0e7366afadc533";
sha256 = "00iwwz4hzg4g59wrb5df6snqz3ppvrsadhfp61w1pa8gvg2z9bvy";
};
packageRequires = [

View file

@ -72,6 +72,15 @@ let
overrides = lib.optionalAttrs (variant == "stable") {
# upstream issue: missing file header
abridge-diff =
if super.abridge-diff.version == "0.1"
then markBroken super.abridge-diff
else super.abridge-diff;
# upstream issue: missing file header
bufshow = markBroken super.bufshow;
# upstream issue: missing file header
speech-tagger = markBroken super.speech-tagger;
@ -99,11 +108,38 @@ let
# upstream issue: missing file header
dictionary = markBroken super.dictionary;
# upstream issue: missing file header
fold-dwim =
if super.fold-dwim.version == "1.2"
then markBroken super.fold-dwim
else super.fold-dwim;
# upstream issue: missing file header
gl-conf-mode =
if super.gl-conf-mode.version == "0.3"
then markBroken super.gl-conf-mode
else super.gl-conf-mode;
# upstream issue: missing file header
ligo-mode =
if super.ligo-mode.version == "0.3"
then markBroken super.ligo-mode
else super.ligo-mode;
# upstream issue: missing file header
link = markBroken super.link;
# upstream issue: missing file header
bufshow = markBroken super.bufshow;
org-dp =
if super.org-dp.version == "1"
then markBroken super.org-dp
else super.org-dp;
# upstream issue: missing file header
revbufs =
if super.revbufs.version == "1.2"
then markBroken super.revbufs
else super.revbufs;
# upstream issue: missing file header
elmine = markBroken super.elmine;

View file

@ -3,13 +3,13 @@
mkDerivation rec {
pname = "texstudio";
version = "4.1.2";
version = "4.2.0";
src = fetchFromGitHub {
owner = "${pname}-org";
repo = pname;
rev = version;
sha256 = "sha256-+HEA0IvWy0jvjFdU0sG9CzOKzysERMZBs/yHoE0I8B4=";
sha256 = "sha256-L3r71srvdSsCc1HZcu6lsH+oTJQ7TatVd2Oy3meAVYk=";
};
nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];

View file

@ -1,12 +1,12 @@
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_8 }:
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_16 }:
stdenv.mkDerivation rec {
pname = "blockbench-electron";
version = "3.7.5";
version = "4.1.1";
src = fetchurl {
url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
sha256 = "0qqklhncd4khqmgp7jg7wap2rzkrg8b6dflmz0wmm5zxxp5vcy1c";
sha256 = "0mqdkjhmylrjjfrm05jv1967qqka5263fgcn9qzax08gcq93s18f";
name = "${pname}-${version}.AppImage";
};
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
'';
postFixup = ''
makeWrapper ${electron_8}/bin/electron $out/bin/${pname} \
makeWrapper ${electron_16}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
'';

View file

@ -10,14 +10,14 @@
python3Packages.buildPythonPackage rec {
pname = "hydrus";
version = "467";
version = "469";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "v${version}";
sha256 = "sha256-ijIOCabpnaK9ww1cR+HNpCOn8uSwSEuyLWwnT2ypdD4=";
sha256 = "sha256-1E85SIsLXeG+AUqQYCJxOlSwiT26OG+n/d9GbyryGCE=";
};
nativeBuildInputs = [

View file

@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "imgbrd-grabber";
version = "7.7.0";
version = "7.7.1";
src = fetchFromGitHub {
owner = "Bionus";
repo = "imgbrd-grabber";
rev = "v${version}";
sha256 = "sha256-Mym/fuV9YVyj5w8U9KlZ/wuwnnC3K5TGNo9RrAFHI5g=";
sha256 = "sha256-3qE3mdtlIlReIkUf0oH2/qmunE8nvdB0EaD7EOqaEj0=";
fetchSubmodules = true;
};

View file

@ -4,7 +4,7 @@
, requests
, mypy-extensions
, django_3
, django_extensions
, django-extensions
, dateparser
, youtube-dl
, python-crontab
@ -37,7 +37,7 @@ buildPythonApplication rec {
requests
mypy-extensions
django_3'
django_extensions
django-extensions
dateparser
youtube-dl
python-crontab

View file

@ -5,21 +5,28 @@
, gobject-introspection, gdk-pixbuf, wrapGAppsHook
}:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "avizo";
version = "unstable-2021-07-21";
# Note: remove the 'use-sysconfig' patch on the next update
version = "1.1";
src = fetchFromGitHub {
owner = "misterdanb";
repo = "avizo";
rev = "7b3874e5ee25c80800b3c61c8ea30612aaa6e8d1";
sha256 = "sha256-ixAdiAH22Nh19uK5GoAXtAZJeAfCGSWTcGbrvCczWYc=";
rev = version;
sha256 = "sha256-0BJodJ6WaHhuSph2D1AC+DMafctgiSCyaZ8MFn89AA8=";
};
nativeBuildInputs = [ meson ninja pkg-config vala gobject-introspection wrapGAppsHook ];
buildInputs = [ dbus dbus-glib gdk-pixbuf glib gtk-layer-shell gtk3 librsvg ];
patches = [
# Remove on next update
# See https://github.com/misterdanb/avizo/pull/30
./use-sysconfdir-instead-of-etc.patch
];
postInstall = ''
substituteInPlace "$out"/bin/volumectl \
--replace 'avizo-client' "$out/bin/avizo-client"

View file

@ -0,0 +1,15 @@
diff --git a/meson.build b/meson.build
index 1c789be..cd4b07a 100644
--- a/meson.build
+++ b/meson.build
@@ -12,7 +12,9 @@ app_resources_service = gnome.compile_resources(
source_dir : '.',
c_name : 'avizo_resources')
-install_data('config.ini', install_dir: '/etc/xdg/avizo')
+sysconfdir = get_option('sysconfdir')
+
+install_data('config.ini', install_dir: join_paths(sysconfdir, 'xdg/avizo'))
install_data('volumectl', install_dir: 'bin')
install_data('lightctl', install_dir: 'bin')

View file

@ -0,0 +1,39 @@
{ stdenv
, lib
, blender
, makeWrapper
, python39Packages
}:
{ name ? "wrapped"
, packages ? []
}:
stdenv.mkDerivation {
pname = "blender-${name}";
inherit (blender) version;
src = blender;
nativeBuildInputs = [ python39Packages.wrapPython makeWrapper ];
installPhase = ''
mkdir $out/{share/applications,bin} -p
sed 's/Exec=blender/Exec=blender-${name}/g' $src/share/applications/blender.desktop > $out/share/applications/blender-${name}.desktop
cp -r $src/share/blender $out/share
cp -r $src/share/doc $out/share
cp -r $src/share/icons $out/share
buildPythonPath "$pythonPath"
echo '#!/usr/bin/env bash ' >> $out/bin/blender-${name}
for p in $program_PATH; do
echo "export PATH=\$PATH:$p " >> $out/bin/blender-${name}
done
for p in $program_PYTHONPATH; do
echo "export PYTHONPATH=\$PYTHONPATH:$p " >> $out/bin/blender-${name}
done
echo 'exec ${blender}/bin/blender "$@"' >> $out/bin/blender-${name}
chmod +x $out/bin/blender-${name}
'';
pythonPath = packages;
meta = blender.meta;
}

View file

@ -111,6 +111,7 @@ mkDerivation rec {
setuptools
zeroconf
jeepney
pycryptodome
# the following are distributed with calibre, but we use upstream instead
odfpy
] ++ lib.optional (unrarSupport) unrardll

View file

@ -129,9 +129,11 @@ let
version = "5.0.0";
src = oldAttrs.src.override {
inherit version;
sha256 = "sha256-MTkw/d3nA9jjcCmjBL+RQpzRGu72PFfebayp2Vjh8lU=";
hash = "sha256-MTkw/d3nA9jjcCmjBL+RQpzRGu72PFfebayp2Vjh8lU=";
};
doCheck = false;
disabledTestPaths = [
"t/unit/backends/test_mongodb.py"
];
});
}
)

View file

@ -18,7 +18,7 @@
let
year = "2021";
major = "1";
minor = "1";
minor = "2";
in stdenv.mkDerivation rec {
pname = "pdfstudio";
version = "${year}.${major}.${minor}";
@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb";
sha256 = "089jfpbsxwjhx245g8svlmg213kny3z5nl6ra1flishnrsfjjcxb";
sha256 = "1188ll2qz58rr2slavqxisbz4q3fdzidpasb1p33926z0ym3rk45";
};
nativeBuildInputs = [

View file

@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
done
# Fix hard coded paths.
for f in $(grep -Rl /usr/share/ src) ; do
for f in $(grep -Rl /usr/share/ src install/desktop) ; do
substituteInPlace $f --replace /usr/share/ $out/share/
done

View file

@ -1,30 +1,40 @@
{lib, mkDerivation, fetchurl, qmake, qtbase, qtsvg, pkg-config, poppler, djvulibre, libspectre, cups
, file, ghostscript
{ lib
, mkDerivation
, fetchurl
, qmake
, qtbase
, qtsvg
, pkg-config
, poppler
, djvulibre
, libspectre
, cups
, file
, ghostscript
}:
let
s = # Generated upstream information
rec {
baseName="qpdfview";
version = "0.4.18";
name="${baseName}-${version}";
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
mkDerivation rec {
pname = "qpdfview";
version = "0.4.18";
src = fetchurl {
url = "https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
sha256 = "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c";
};
nativeBuildInputs = [ qmake pkg-config ];
buildInputs = [
qtbase qtsvg poppler djvulibre libspectre cups file ghostscript
];
# apply upstream fix for qt5.15 https://bazaar.launchpad.net/~adamreichold/qpdfview/trunk/revision/2104
patches = [ ./qpdfview-qt515-compat.patch ];
in
mkDerivation {
pname = s.baseName;
inherit (s) version;
inherit nativeBuildInputs buildInputs patches;
src = fetchurl {
inherit (s) url sha256;
};
nativeBuildInputs = [ qmake pkg-config ];
buildInputs = [
qtbase
qtsvg
poppler
djvulibre
libspectre
cups
file
ghostscript
];
preConfigure = ''
qmakeFlags+=(*.pro)
'';
@ -39,13 +49,11 @@ mkDerivation {
"APPDATA_INSTALL_PATH=${placeholder "out"}/share/appdata"
];
meta = {
inherit (s) version;
meta = with lib; {
description = "A tabbed document viewer";
license = lib.licenses.gpl2Plus;
maintainers = [lib.maintainers.raskin];
platforms = lib.platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
homepage = "https://launchpad.net/qpdfview";
updateWalker = true;
};
}

View file

@ -8,11 +8,11 @@
stdenv.mkDerivation rec {
pname = "snapmaker-luban";
version = "4.1.2";
version = "4.1.3";
src = fetchurl {
url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz";
sha256 = "sha256-gS3MyXD5B9YQ+EXmIPZ+rDUE5H1AjRL64yXQX+5TM2Q=";
sha256 = "sha256-GXpM5dJ3JPf2HgrgTONyeCG6JjK4JhbcGP5ck7v4cqk=";
};
nativeBuildInputs = [

View file

@ -1,21 +1,21 @@
{ stdenv, lib, fetchFromGitHub
, python3Packages
{ lib
, stdenv
, fetchFromGitHub
, gexiv2
, gobject-introspection
, gtk3
, hicolor-icon-theme
, intltool
, libnotify
, librsvg
, python3
, runtimeShell
, wrapGAppsHook
, fehSupport ? false, feh
, imagemagickSupport ? true, imagemagick
, intltool
, gtk3
, gexiv2
, libnotify
, gobject-introspection
, hicolor-icon-theme
, librsvg
, wrapGAppsHook
, makeWrapper
}:
with python3Packages;
buildPythonApplication rec {
python3.pkgs.buildPythonApplication rec {
pname = "variety";
version = "0.8.5";
@ -26,9 +26,34 @@ buildPythonApplication rec {
sha256 = "sha256-6dLz4KXavXwnk5GizBH46d2EHMHPjRo0WnnUuVMtI1M=";
};
nativeBuildInputs = [ makeWrapper intltool wrapGAppsHook ];
nativeBuildInputs = [
intltool
wrapGAppsHook
];
buildInputs = [ distutils_extra ];
propagatedBuildInputs = [
gexiv2
gobject-introspection
gtk3
hicolor-icon-theme
libnotify
librsvg
]
++ (with python3.pkgs; [
beautifulsoup4
configobj
dbus-python
distutils_extra
httplib2
lxml
pillow
pycairo
pygobject3
requests
setuptools
])
++ lib.optional fehSupport feh
++ lib.optional imagemagickSupport imagemagick;
doCheck = false;
@ -38,33 +63,14 @@ buildPythonApplication rec {
prePatch = ''
substituteInPlace variety_lib/varietyconfig.py \
--replace "__variety_data_directory__ = \"../data\"" "__variety_data_directory__ = \"$out/share/variety\""
--replace "__variety_data_directory__ = \"../data\"" \
"__variety_data_directory__ = \"$out/share/variety\""
substituteInPlace data/scripts/set_wallpaper \
--replace /bin/bash ${stdenv.shell}
--replace /bin/bash ${runtimeShell}
substituteInPlace data/scripts/get_wallpaper \
--replace /bin/bash ${stdenv.shell}
--replace /bin/bash ${runtimeShell}
'';
propagatedBuildInputs = [
beautifulsoup4
configobj
dbus-python
gexiv2
gobject-introspection
gtk3
hicolor-icon-theme
httplib2
libnotify
librsvg
lxml
pillow
pycairo
pygobject3
requests
setuptools
] ++ lib.optional fehSupport feh
++ lib.optional imagemagickSupport imagemagick;
meta = with lib; {
homepage = "https://github.com/varietywalls/variety";
description = "A wallpaper manager for Linux systems";
@ -80,8 +86,7 @@ buildPythonApplication rec {
Variety also includes a range of image effects, such as oil painting and
blur, as well as options to layer quotes and a clock onto the background.
'';
license = licenses.gpl3;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ p3psi AndersonTorres zfnmxt ];
platforms = with platforms; linux;
};
}

View file

@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "whalebird";
version = "4.4.6";
version = "4.5.0";
src = fetchurl {
url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb";
sha256 = "sha256-Q67y6VO7U8EatMNWyJo4f9IHKylQSX7bNR0DH4bnH+A=";
sha256 = "sha256-yl4R/1flm2Lfvyh9PXlJcZ1VtnP8nBQC0i7zs4U+g7g=";
};
nativeBuildInputs = [
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
# Necessary steps to find the tray icon
asar extract opt/Whalebird/resources/app.asar "$TMP/work"
substituteInPlace $TMP/work/dist/electron/main.js \
--replace "Mo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
--replace "jo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
runHook postBuild

View file

@ -1,43 +1,143 @@
{ lib, stdenv, fetchFromGitHub, pkg-config
, python
, intltool
, docbook2x, docbook_xml_dtd_412, libxslt
, sword, clucene_core, biblesync
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, appstream-glib
, at-spi2-core
, biblesync
, brotli
, clucene_core
, cmake
, dbus
, dbus-glib
, desktop-file-utils
, docbook2x
, docbook_xml_dtd_412
, enchant
, gconf
, glib
, gnome-doc-utils
, libgsf, gconf
, gtkhtml, libglade, scrollkeeper
, gtk2
, gtkhtml
, icu
, intltool
, isocodes
, itstool
, libdatrie
, libepoxy
, libglade
, libgsf
, libpsl
, libselinux
, libsepol
, libsysprof-capture
, libthai
, libuuid
, libxkbcommon
, libxslt
, minizip
, pcre
, pkg-config
, python
, scrollkeeper
, sqlite
, sword
, webkitgtk
, dbus-glib, enchant, isocodes, libuuid, icu
, wrapGAppsHook
, wafHook
, xorg
, yelp-tools
, zip
}:
stdenv.mkDerivation rec {
pname = "xiphos";
version = "4.1.0";
version = "4.2.1";
src = fetchFromGitHub {
owner = "crosswire";
repo = "xiphos";
rev = version;
sha256 = "14il9k4i58qbc78hcadw3gqy21sb9q661d75vlj6fwpczbzj7x1a";
hash = "sha256-H5Q+azE2t3fgu77C9DxrkeUCJ7iJz3Cc91Ln4dqLvD8=";
};
nativeBuildInputs = [ pkg-config wrapGAppsHook wafHook ];
buildInputs = [ python intltool docbook2x docbook_xml_dtd_412 libxslt
sword clucene_core biblesync gnome-doc-utils libgsf gconf gtkhtml
libglade scrollkeeper webkitgtk dbus-glib enchant isocodes libuuid icu ];
nativeBuildInputs = [
appstream-glib
cmake
desktop-file-utils
itstool
pkg-config
wrapGAppsHook
yelp-tools
];
prePatch = ''
patchShebangs .;
'';
buildInputs = [
at-spi2-core
biblesync
brotli
clucene_core
dbus
dbus-glib
docbook2x
docbook_xml_dtd_412
enchant
gconf
glib
gnome-doc-utils
gtk2
gtkhtml
icu
intltool
isocodes
libdatrie
libepoxy
libglade
libgsf
libpsl
libselinux
libsepol
libsysprof-capture
libthai
libuuid
libxkbcommon
libxslt
minizip
pcre
python
scrollkeeper
sqlite
sword
webkitgtk
zip
]
++ (with xorg; [
libXdmcp
libXtst
]);
cmakeFlags = [
"-DDBUS=OFF"
"-DGTKHTML=ON"
];
preConfigure = ''
# The build script won't continue without the version saved locally.
echo "${version}" > cmake/source_version.txt
export CLUCENE_HOME=${clucene_core};
export SWORD_HOME=${sword};
'';
wafConfigureFlags = [ "--enable-webkit2" ];
patchFlags = [ "-p0" ];
patches = [
# GLIB_VERSION_MIN_REQUIRED is not defined.
# https://github.com/crosswire/xiphos/issues/1083#issuecomment-820304874
(fetchpatch {
name ="xiphos-glibc.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/xiphos-glibc.patch?h=xiphos";
sha256 = "sha256-0WadztJKXW2adqsDP8iSAYVShbdqHoDvP+aVJC0cQB0=";
})
];
meta = with lib; {
description = "A GTK Bible study tool";

View file

@ -87,11 +87,11 @@ let
in
stdenv.mkDerivation rec {
pname = "appgate-sdp";
version = "5.5.1";
version = "5.5.2";
src = fetchurl {
url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
sha256 = "sha256-gN9UAdn61qUZBJLi/9QiHjNRohbQQDV1uVHgcpuXq+Y=";
sha256 = "sha256-8K7RqkxpyRsQ3QHGIfTchLaZ7/+k0hbiJdl7uc++vYs=";
};
# just patch interpreter

View file

@ -19,9 +19,9 @@
}
},
"beta": {
"version": "98.0.4758.48",
"sha256": "0c6lxmr8xxjhifm28v9ri05v5al9ph6infksx9qgd045svmfynxs",
"sha256bin64": "0m7vbd7fy4wrbk28hw3hy6x8yb8vyyyisnicdhkp6j0xq9ni5jhj",
"version": "98.0.4758.54",
"sha256": "0w3pvp23y0vyj9p7j6nfxgnnzc5jyjn65k1khx0i333hs97vidbc",
"sha256bin64": "1qxkqw45jzcrg2ziqh4npg19a52b5j1hvag4n5qlrq4bfblsbwwh",
"deps": {
"gn": {
"version": "2021-12-07",

View file

@ -19,16 +19,16 @@ let
in
buildGoModule rec {
pname = "argo";
version = "3.2.4";
version = "3.2.6";
src = fetchFromGitHub {
owner = "argoproj";
repo = "argo";
rev = "v${version}";
sha256 = "sha256-uymE+Eq4jsqWIhDsbALzV+xAKF22DddPFzKtn3tV2EA=";
sha256 = "sha256-QyjG+/zXbZ7AS/+yXNV0PocXJaSKeJNN+1F7EMv1LOI=";
};
vendorSha256 = "sha256-2b+PvD5IKgobBzFrubjRl2NvFxw91dXYpnWO8dqDG+U=";
vendorSha256 = "sha256-hxSr0sNlz93JxOxnE2SnR6/OgCGK8DrJZxqQtSxfbj8=";
doCheck = false;

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kube-capacity";
version = "0.6.2";
version = "0.7.0";
src = fetchFromGitHub {
rev = "v${version}";
owner = "robscott";
repo = pname;
sha256 = "sha256-rpCocokLj1iJonOt3rP+n1BpijjWlTie/a7vT2dMYnA=";
sha256 = "sha256-jop1dn+D0A6BkR1UCMrU9qcbZ1AHVth430cTd+kUYJw=";
};
vendorSha256 = "sha256-1D+nQ6WrHwJwcszCvoZ08SHX0anksdI69Jra5b9jPCY=";

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kubectl-example";
version = "1.0.1";
version = "1.1.0";
src = fetchFromGitHub {
owner = "seredot";
repo = pname;
rev = "v${version}";
sha256 = "18vp53cda93qjssxygwqp55yc80a93781839gf3138awngf731yq";
sha256 = "sha256-7tqeIE6Ds8MrLH9k8cdzpeJP9pXVptduoEFE0zdrLlo=";
};
vendorSha256 = null;

View file

@ -1,655 +1,655 @@
{
version = "91.4.1";
version = "91.5.0";
sources = [
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/af/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/af/thunderbird-91.5.0.tar.bz2";
locale = "af";
arch = "linux-x86_64";
sha256 = "7af2c19b46daf1869af49289c1ab080559f8640c6dfc21cdae1ff48cdc26bf1f";
sha256 = "20272a9fbf08651ca804f324aca1c0c7b6b04351b0a773790510a69d56ef19fb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ar/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ar/thunderbird-91.5.0.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
sha256 = "dfabb7336f9b5929041c43997ad7ac34fca0750d70293dacdc32f9048de2fc7d";
sha256 = "208937e2b22db6a159b2c744d9ad6d9e96fddf21f753673d9006b2576e5ddd24";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ast/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ast/thunderbird-91.5.0.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
sha256 = "3aade12867be4da3fb890214a7cd8551e12e962fb2a66b7e76da20a06755d045";
sha256 = "a8b078c5699d174db89c4adbcce45c4add38d88561d1154dcaff56be4731b29d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/be/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/be/thunderbird-91.5.0.tar.bz2";
locale = "be";
arch = "linux-x86_64";
sha256 = "8bb288330b957d8361880738b7d5e5833602dd81aad580a96f1031e88bd963f4";
sha256 = "91be973a0658dc7a284cde429b537bc70db88143abe42fd6ce6c4a0a450353ca";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/bg/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/bg/thunderbird-91.5.0.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
sha256 = "fcd8bbef82a24b146f4473da351cbd5262f8286d5b7ea78265516e815c7c84da";
sha256 = "bdb25d9c1e3ed725d667b9b613a425a3f1c18bd6ff78417a32f04fc6257c7b66";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/br/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/br/thunderbird-91.5.0.tar.bz2";
locale = "br";
arch = "linux-x86_64";
sha256 = "c1d331f6621fc120076d49015046f22ff898b089af8cac5226491bbe82391b9a";
sha256 = "b8cf6f6f490a3f7a06a036bf84d71cdcdfb21e4e253190d2c8c648df8f7af931";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ca/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ca/thunderbird-91.5.0.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
sha256 = "7b2a63bd30d1e47db16f64ea077623dfca965d71b2aa7f7ce56f8940a2f59301";
sha256 = "5a55055b5eb29e209e02b2980895719883bfc9929910d0f336e431ebea870856";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cak/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/cak/thunderbird-91.5.0.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
sha256 = "f22de3c4bc4237610e7826ed6d46f84f8a02d5370e7d0675932abd98ee24256e";
sha256 = "fe192c81dd6f04d37c4f603c3e0367d462c5dc6effe7c8a07a030d5584118c58";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cs/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/cs/thunderbird-91.5.0.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
sha256 = "8dd685427622c1bc710d8056e527d5766f7e5f0c47ca7e170b8e48ed01e8c5a5";
sha256 = "bce9c7bd093631e2f0096ac3c8c2cdb19d9567d5233d912169c238e33372da1e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cy/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/cy/thunderbird-91.5.0.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
sha256 = "d98ebd1787b29a6ee785a4b7cfaa2283b836f23214c3c27d4fbb3e7154c1e9e5";
sha256 = "4128f704289b9267316eb373a3142305096897b37a2daa79a84f4448aea54b14";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/da/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/da/thunderbird-91.5.0.tar.bz2";
locale = "da";
arch = "linux-x86_64";
sha256 = "202729a6f4813bb3760a5ae834731a019593dbcd5d66173999f5cbbedf277f00";
sha256 = "39e5239860b450079cc10179e215bef63d77957c47bc3690c16c086a30e01317";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/de/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/de/thunderbird-91.5.0.tar.bz2";
locale = "de";
arch = "linux-x86_64";
sha256 = "c035ce2cb81b7083d0c6fc859ee259afce5440bc8f2c8e1ca1db02ce97f0b237";
sha256 = "0bc2cabac439734fdddfcfc1426696559ac1ee3e9a7bad1182329d83fb47d8cb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/dsb/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/dsb/thunderbird-91.5.0.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
sha256 = "413eda01d4390e41f6d859def75c5972c4595b453fc9da948415e8e38f4766c0";
sha256 = "2c4d8fc6ae4c9a2adabe0a1593d7289596b97dd7b9e39b44da926f925f754ef2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/el/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/el/thunderbird-91.5.0.tar.bz2";
locale = "el";
arch = "linux-x86_64";
sha256 = "b238ee1b8dbf54ab0aa4c6f23a646e037a48e31d77749698744dc122bf38608a";
sha256 = "07e10b923d0829e6cddc35bd56fe51afd07b35664b4feb725dfedbd51e99029a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-CA/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/en-CA/thunderbird-91.5.0.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
sha256 = "4ef51ab9fdcd3c6ab1323a402253f5cd8682fa100f3b05fa62bf1153bbc04c28";
sha256 = "7f583ea36dc9d8a1a2136343773a8e7434d466f31ddf50f5f7da7675a08dbd03";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-GB/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/en-GB/thunderbird-91.5.0.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
sha256 = "3ee22d3b5c23bfba703d36e58185ef139ccfa923c1877f983fed90419e7fdf8b";
sha256 = "46bd4e13d215bd9be875ebe3f999da3927a480401aa4a2e51f0388d3cf28a3a0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-US/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/en-US/thunderbird-91.5.0.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
sha256 = "6bd3bbcf3d92efe04b19bb45c0d9ac3abe8dd68fc84e255b76467b37ea5918b1";
sha256 = "f6d62b3161d1b7cf665fdb965526632fc4eefcaf1727ece7986e956c7575cf0d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/es-AR/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/es-AR/thunderbird-91.5.0.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
sha256 = "14b7fac461e90c4dd1790f6095e291e1ba510561d51655b16bda4ad7050dca8e";
sha256 = "4f190b4d64db8fe9accafe1941e3f949ba21488b4411a506f6f61d437f17d61e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/es-ES/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/es-ES/thunderbird-91.5.0.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
sha256 = "ee910bc3415e314d5f3b072608d61089ae55e969a138ee446377edf0e5ba710a";
sha256 = "61065d0c72451cebbf5d83c92e460e240e7f477322531a3f4d082b3c0e6c213e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/et/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/et/thunderbird-91.5.0.tar.bz2";
locale = "et";
arch = "linux-x86_64";
sha256 = "a643d96e71123c554a8af69bc875515113ffd30ab621d5f3b5678c33931cfab0";
sha256 = "cba4afe259ccd7c6619f4ee0adf167659eb4f80e9355b25138d9f370ecbcf932";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/eu/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/eu/thunderbird-91.5.0.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
sha256 = "b910976d8e940331d46ac92f82f56aff61f8d91137bae9c869715cb371309f9e";
sha256 = "4e8569190b2702ad6e10156b434100cdf879dfb3a5ee798c876fc46871e1abf3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fi/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/fi/thunderbird-91.5.0.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
sha256 = "a8dd93299fde700cf1419187da06405093b3f010e7fdd327742fbddcef1721a0";
sha256 = "93e3b7624d6de0b77f87bb192384437e006530abd03bdc5589dc0dc47e0af304";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/fr/thunderbird-91.5.0.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
sha256 = "526f4f4feae5f6a0b9f1d80b0f76a7f26af7456e1eb09e36eadd51fc8d4115ed";
sha256 = "a35c370b69a977160a83ffc4d24f5a9a9f1000e1012c71fcd1e7adc6c16c68b8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fy-NL/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/fy-NL/thunderbird-91.5.0.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
sha256 = "df5320f98ecd32439273b18237a742c34590e5b533a7da9471cfd37921725108";
sha256 = "c392fb2f59d13f912e757be716a4bfc464a0cb2f69f8af780bbaec8e6bbcdf0f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ga-IE/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ga-IE/thunderbird-91.5.0.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
sha256 = "c13529036ec2186e0e3088f63e351086bee21b0f8a3479586420c6a2701ee8f1";
sha256 = "210aeb0fe2c3214f82948ef39205416e4c50750be0226fa56b2c5548ed06a182";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/gd/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/gd/thunderbird-91.5.0.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
sha256 = "f6c2c7cf6c8a39997e272d9aae5c7ab4620f426e2be96b4e90c3641db672a6ea";
sha256 = "c02818558da950caa540cc73597bb2ba1cbfcf02240b085856776df5155b59eb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/gl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/gl/thunderbird-91.5.0.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
sha256 = "ba0d17f99ca15bc81631201057509694c5dc656176a03e67d5f89371a4200eda";
sha256 = "5704fa5d4efb470e516c23a6f15d238ebaeaa7ad1ce14f49b7a5a3bd19524f92";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/he/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/he/thunderbird-91.5.0.tar.bz2";
locale = "he";
arch = "linux-x86_64";
sha256 = "c71bf27c55ad5b6c7981a434d598eeab8a927dbfc0510d4d68df357cb1abff9f";
sha256 = "c366556e481757da8f48b89f1ef54492e5d5e41a45d9ec55f5e81081de4d8b58";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/hr/thunderbird-91.5.0.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
sha256 = "9cf92e922329ec46ed68f352284de30c78aa2d25f040da4e1289d5ea0226bc3a";
sha256 = "47a713172ea17582ec988fdef33cab24f3245274badefbefee7f665af7e9e917";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hsb/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/hsb/thunderbird-91.5.0.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
sha256 = "e4d6baa0d92fbe7f40071045fcdb20f59944a0c1422c1095b946019461013242";
sha256 = "019271fd8d9343581783dcd6a59698de726fdeca39e4e71226b7361a42e7478b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hu/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/hu/thunderbird-91.5.0.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
sha256 = "cea2f9b614e0b7cec709947ff75b9eb6abe6600b76d642b60910e2de1788f09b";
sha256 = "bbdd56ba0a2f1079d2dfe63f2cbf56dc98f5f0675c73413880aba147d797d1c2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hy-AM/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/hy-AM/thunderbird-91.5.0.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
sha256 = "8708acca6f1e4088f10f94f8c26a7790913fe55acbf0ab555e22b1256b74a866";
sha256 = "8393fdba3c2d7024c1ad5d017853c1a13fec47a29e31db4ba0f38c5ee49843ec";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/id/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/id/thunderbird-91.5.0.tar.bz2";
locale = "id";
arch = "linux-x86_64";
sha256 = "745ecb2038a84b1571e326ed0e6d38e7519bcf5b7f2bacf6ef053c9a88926c77";
sha256 = "51ff83923eda81e69d5c74bd49878c17eb3552072b196e2fc933b3dbf89a7513";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/is/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/is/thunderbird-91.5.0.tar.bz2";
locale = "is";
arch = "linux-x86_64";
sha256 = "e04b6fc88ddd46e6e6cbe47eb681acce91b47df355847f65e793d92419dc4204";
sha256 = "9f6bdf8f9a97788137e698464e391f6942e3cbff5870e8b4f534597f0b582f5d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/it/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/it/thunderbird-91.5.0.tar.bz2";
locale = "it";
arch = "linux-x86_64";
sha256 = "e23eb2075bcac5abc195b1abffe64b8e1a409c855699c6d5bcbd102c19a2ad4b";
sha256 = "33b0169fec2ba8822c086837fce0ed59d77676f6fe804948dfd0ad0c328e1cc7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ja/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ja/thunderbird-91.5.0.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
sha256 = "a79711803c46b6ab95f654d5b9dffafe85733b6c839238de8f76d30f9757553c";
sha256 = "bf93f1e234aa13edb416912377a23ffb370de5a249cc66ec13587632493f0efc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ka/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ka/thunderbird-91.5.0.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
sha256 = "3076defee6dadfad4560800ecf2b3556fcf8f4dd5a8795bb578ee73bbbccf72f";
sha256 = "dee6e5c984c0dafa66476bd4342385beedeb826a947991b2b4bc3a0e1d7bafd4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/kab/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/kab/thunderbird-91.5.0.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
sha256 = "65f796d71d02118794b79d5460ef9db06e3d172e5d15ff350eff52cc214587dc";
sha256 = "fcf175d175327f8a6c76d0e81062a967813f486e8005aafa7998fa682542e5db";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/kk/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/kk/thunderbird-91.5.0.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
sha256 = "f8df25990df8b577e224551f1af44fb87c867b7d7622931214bbceeec3699646";
sha256 = "22e2bff84795a512eaa486acb11440afa51afddd5feb6828c025bfdd796cc5e8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ko/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ko/thunderbird-91.5.0.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
sha256 = "77d6e16972f9ddb553d9bd19627a0725d25d42a0ad6d1e665d249b094b137dc9";
sha256 = "a3c8fb1b1cfc7e68ad177fce78a8751c86cb4d95965d05abeff384c19f470bce";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/lt/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/lt/thunderbird-91.5.0.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
sha256 = "208eb06ba9e8b1cd391a7694552af6e7ba3ead33567d51fda82d70e024378f56";
sha256 = "5aaa95d61662a69d3d92cad9d5cbf24a348a7c6d7db1440412a324799167bd7d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/lv/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/lv/thunderbird-91.5.0.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
sha256 = "a4a85c3f969dc40149ad82d0dbc4e1089de67ba3c6d7495f5c45196e8c7083a8";
sha256 = "ec61d867216b50649e2900e8922603f38ebd4c67596b29984c60c1933f1f00a6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ms/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ms/thunderbird-91.5.0.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
sha256 = "e5f3259e002b31d9a2738ad81826d59dd464aa34532441e9092e976efe8be7b4";
sha256 = "27bf8b301dc1c05a22c413559f833d522fb42934c136be126de90d3519df7c1d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nb-NO/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/nb-NO/thunderbird-91.5.0.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
sha256 = "33fa29d2490c7618d1f9bbaceb34b898d150e57fc9b96b957a5b348b6fe47cfc";
sha256 = "587b27872162ac8e7580183b362192f7c2439a4a7a783aa4fc6ae81e87e7b4bd";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/nl/thunderbird-91.5.0.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
sha256 = "726962fd26948726230b49736f2d1e6c6daa562a4389e0fa0069ab737304cbac";
sha256 = "be970367d664bcc2a5e6a0805d0b63fc991221c41497ccfa1a1ce5102b20450a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nn-NO/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/nn-NO/thunderbird-91.5.0.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
sha256 = "09bab6f8061400413e7167693e4c2f14caa4aba0ac68c7cfeaf9ed2dfa44ea0a";
sha256 = "92e168f3db1bef0c2fd33dd8da8f2ba8732e63c1b36aeb0e01f3478e67dafba2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pa-IN/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/pa-IN/thunderbird-91.5.0.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
sha256 = "2203476872b140a1fec867435bf1a006b63a7ffc018eb466ea164597474a2083";
sha256 = "485d231b5153fde23d9a35154c713b97dbcf96a8f1058399b09796210c831391";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/pl/thunderbird-91.5.0.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
sha256 = "3cc4fa964b4deaef9d901fd9fba597059f638b1b8322515ac02cbb97f5a5c28b";
sha256 = "112240a352a3d833de9df127ab0118841b88e67c4496a17c8cc63abbd19f1166";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pt-BR/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/pt-BR/thunderbird-91.5.0.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
sha256 = "c68055c96551a1b529bdf81659231ec5244c4c68255d88f581c378046bbb5e84";
sha256 = "7388f54dc99de6498af19f0a6e7b80bf2c7465c68d94c4e04ca5038a2e087960";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pt-PT/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/pt-PT/thunderbird-91.5.0.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
sha256 = "36c9b2170aff5e6f58377efd53f679e9e823f45b67d7407cb3c34d72f676625a";
sha256 = "1ca7c9a460e8603d0daadbc07fd12fe6d0d07ef288144ba5da389fdbb5ccf4e2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/rm/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/rm/thunderbird-91.5.0.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
sha256 = "2f00df17c29128e2b135136fe700930ff0078e8896e1cb4f7c34b44af0cfd8f2";
sha256 = "954516da6b44ad4dfc56f3b837e45bc0816498fe426ae3aa4d3363621cb2c289";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ro/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ro/thunderbird-91.5.0.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
sha256 = "ed93041b32a711e04de6737c5d6fbcf6b598ca9eccefe5ab0e02cf3cacba5ffa";
sha256 = "e5d83482c7381d89445d49b5c85b5645533dae173010f2ebfcf706c01337f4e2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ru/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/ru/thunderbird-91.5.0.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
sha256 = "206ccfcb5d6a9d70f4258ddeff0cc79c38e801d860a05bf6214c03b24e2f9057";
sha256 = "51db5bfaca6c9404eddb71cc6559c7c83534fbe57bf27da14c35b4b268cdfc98";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sk/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/sk/thunderbird-91.5.0.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
sha256 = "aa8e6dd53d5b741bee345d1f7a5b03866121619f54993233cb4239c6107eb3e6";
sha256 = "5803d8547bddaffa6a9532eb6abd2f66f6936c6614a1c322a8065a01e6c831c9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/sl/thunderbird-91.5.0.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
sha256 = "95f3a97adc32abb33c0a7579c19247595f6f27c7da0cf06bf1fa9d8270b41996";
sha256 = "2837b957b89184978c0ead48e7a2d58a7ee140ed280be8d744fac929d66cfd0a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sq/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/sq/thunderbird-91.5.0.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
sha256 = "fe8255e55081a6cae15085cfcf793c4094de55a2b12d3732c7e75ce567b85716";
sha256 = "fd98ce5bb9bccfc8c9ae022cdf0416848e3564b59ccaf3ce8888eb7d4d02f0ce";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/sr/thunderbird-91.5.0.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
sha256 = "f889e1ff38542aae19d6ebaf827a2c6d6f8dbd6e16a80966bc311588e4e10ffc";
sha256 = "d9c1ec7df7e66e1b4e28a68c9ed74e8ea17a166dee2d2aaf7c9be616bfde97a0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sv-SE/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/sv-SE/thunderbird-91.5.0.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
sha256 = "2f90c95bbdcb6bfd59cee40013cc1c498e50f5cc0209799dfe1dfc57afbc37ad";
sha256 = "e9e8ea82bf5fdb900c36ef22afda90d518ac52a4fadff5a3f1afbb09b4d1ebe4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/th/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/th/thunderbird-91.5.0.tar.bz2";
locale = "th";
arch = "linux-x86_64";
sha256 = "3fa19fef25c76f49f9e6ee9edc2f24cd02c2b589b8e2cea270f4aa71f1a1a621";
sha256 = "4a58f3d88283cbe83bc6f9ff26c5b621bde3a52a8e5cda283f9bac6fa329e2a1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/tr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/tr/thunderbird-91.5.0.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
sha256 = "7de3ccbe109401dab260ed1c8ae9fc360e5392c81111df930d0c7f7d46211f83";
sha256 = "489e5d4448c25310ae14c6a74405d582b50113a73c394aa51776c2c3b37104ec";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/uk/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/uk/thunderbird-91.5.0.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
sha256 = "967020d05810d1514be84635cb56162b83f7f28a2bea221ad21ecb4ebd960968";
sha256 = "cefeaf9df2e5fab13cf131d597393b83c1101d83b6dda04207c4428abbb62d15";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/uz/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/uz/thunderbird-91.5.0.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
sha256 = "371d60bc164552f04cf680a29af5992f1ac353e8bb30af62a5cdadf744576c71";
sha256 = "7a330fa612f09f1337c3c775d0c0447dd2878e79c2555c7e1a13f611e2712720";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/vi/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/vi/thunderbird-91.5.0.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
sha256 = "600cc9d18a18ebc13bd8371140b573723b913e100937b3bb22ab04cf7846e1e7";
sha256 = "c1c11ce007f1e8cdfd039c8b9dbc73e879adafc40d6ef11dbf82134ff76c8d48";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/zh-CN/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/zh-CN/thunderbird-91.5.0.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
sha256 = "ae59930a4c609e4ce0562338019db1202c3eafc2e3dabd90888076ece4fe8ee5";
sha256 = "041aa19e78aad8be563bf4466572deb8bbd16f3a74c24f297da0667dfc65739f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/zh-TW/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-x86_64/zh-TW/thunderbird-91.5.0.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
sha256 = "2cd58c1fb54b572e6a2f63b9881f53ee65d9992d75c0905ea2e1047afabd08a9";
sha256 = "dee8d2dea78128f250054d5f8aaf948b19d3e43acc228a0c751df84d601ce76c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/af/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/af/thunderbird-91.5.0.tar.bz2";
locale = "af";
arch = "linux-i686";
sha256 = "bbf9e3a8856f66ed2d263b05d5520a9be26719f45380a5f29e6cf27c891c3e23";
sha256 = "6e19fa5338b63c3aa163cbb9d84953a0f1bc4bb593cbc685cf4e59249425f948";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ar/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ar/thunderbird-91.5.0.tar.bz2";
locale = "ar";
arch = "linux-i686";
sha256 = "0df457c90aedef53adca7dafe34dc95847b77603362b27f814f4e88d40311ccb";
sha256 = "2b35a83198c30bc9838849260477b4846dbd35b82607261534e05336911129c5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ast/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ast/thunderbird-91.5.0.tar.bz2";
locale = "ast";
arch = "linux-i686";
sha256 = "b97a3fc046dcd75e2703629e01abbe2c7a81bc98746fdd96ac195b2508e396b7";
sha256 = "01712e869983cb089f9e98449ae215c95aa59e70ad2a7e61a17788f74c50c905";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/be/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/be/thunderbird-91.5.0.tar.bz2";
locale = "be";
arch = "linux-i686";
sha256 = "158495d87e2bc8c2b257d055fc9096580bbb7dcc126b3b83a4aa0f3deaae9cf7";
sha256 = "e7cfd5b52f0a809c514ac17f29bf30d2aa1959193020f742b8e907fc4772eb8b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/bg/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/bg/thunderbird-91.5.0.tar.bz2";
locale = "bg";
arch = "linux-i686";
sha256 = "77497a922cd441a3ed791d6f497586b2d3b286a64cf057cf34b07e38b6c1f5f2";
sha256 = "e74a5073ec17e2ac75c81e9dbe418167932d53d47fb1449a919b7a6824f7ace3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/br/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/br/thunderbird-91.5.0.tar.bz2";
locale = "br";
arch = "linux-i686";
sha256 = "862629fb07c7743a2bc909883ebe19347fea71fc91b8df927d846054ce2b1b08";
sha256 = "a8b13e933e1767d6f42fa4e02892d99ef5d8da14c9aad51e2089d16c2b935c6b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ca/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ca/thunderbird-91.5.0.tar.bz2";
locale = "ca";
arch = "linux-i686";
sha256 = "33ab06809f5982036b849aed5ec46d7271c217cb7330149f4783fd308c19ef46";
sha256 = "047e158f5b81c5c5837c583e63f1852e94ab65365e7551dc14dee4e91711ee89";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cak/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/cak/thunderbird-91.5.0.tar.bz2";
locale = "cak";
arch = "linux-i686";
sha256 = "6bd1cd49eb18ce7bb88e4e023063bf03e2c2078f7c3ccf0f1c477d712b4e67fb";
sha256 = "1175e2c893f720fd128de26ff7832367e2e8792d1a0fb968c23cf0c2971d87a5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cs/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/cs/thunderbird-91.5.0.tar.bz2";
locale = "cs";
arch = "linux-i686";
sha256 = "528aba25c407f52e728361e5174cb232f2583ef5ff62bf47386d4766f776566d";
sha256 = "9c80c6afa31ed73ccb2e1c813acabc3be484e00f6c498dece19e095d5fc7e1ab";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cy/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/cy/thunderbird-91.5.0.tar.bz2";
locale = "cy";
arch = "linux-i686";
sha256 = "efd1490cd2a357c1d61d5225a8d1b1b9a61be5c25805b26496ea3ad946d4cbcc";
sha256 = "79418720066cdeca5abee231952b3b26f1209eaf59ceab0882f798ba86305aee";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/da/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/da/thunderbird-91.5.0.tar.bz2";
locale = "da";
arch = "linux-i686";
sha256 = "00e9e787a8bf21caebcd1b21889c5534d38d14d8eb2e10b297b320e71455910f";
sha256 = "4797af3b1d72199565fafe269d5514042420d3ffd276fb94b3bdda5cea2191f2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/de/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/de/thunderbird-91.5.0.tar.bz2";
locale = "de";
arch = "linux-i686";
sha256 = "1c93e59e8d55ff671e630dc86091b1503b73e8b92f7bf0b6726d3b9829bfa8d1";
sha256 = "c15470c0a61190749d88c857d1a4490e331fc0046cd7aa18fffa5d23b33c1460";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/dsb/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/dsb/thunderbird-91.5.0.tar.bz2";
locale = "dsb";
arch = "linux-i686";
sha256 = "d8de15bf2699fa44b82aab0872b966d20dae733b46404b03a1e8c41e28b2c4dd";
sha256 = "64c176f0c64d877a505006b03eb0d685042b7120293b733de029868a3ae562ec";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/el/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/el/thunderbird-91.5.0.tar.bz2";
locale = "el";
arch = "linux-i686";
sha256 = "1ecb81092cd8bdae878792f2be7a32edc378d3691ca696bcfe3899e81ace7cd7";
sha256 = "b220e7f82cbd674b5e98d082766b06a52bc69e18c7d1c91bb0a9dc6d2f129c99";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-CA/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/en-CA/thunderbird-91.5.0.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
sha256 = "68836e09adf5f9d2b5c9f3b96ed5b05f56931faa33bbb17c578436c13c5cc4ee";
sha256 = "0cc5344d19e62fc86843d71792a59b310be9604ba2bc1ea633d71d6f54ea7eae";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-GB/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/en-GB/thunderbird-91.5.0.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
sha256 = "b20a74cc35abd3d066384f57b5d2f7a6a1dd24193b720fedce693d8b864058b6";
sha256 = "04285f839530ce6917a1918d557cc86448debbd8910d54ca051b9f1b63749b7d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-US/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/en-US/thunderbird-91.5.0.tar.bz2";
locale = "en-US";
arch = "linux-i686";
sha256 = "8f3bffb289081a898f9e77c291ef1ce63af8c0e966894b54a3c533741b655aa9";
sha256 = "fa96eb80909cc7f485abda8fdc093f0ef1e2e5fe69f4919bdeeea27651fa264c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/es-AR/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/es-AR/thunderbird-91.5.0.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
sha256 = "b1c26f4dd600995a88ad960f55fbf6026ad2ff93b94ac12af991440ada44a54a";
sha256 = "5affd961efe6b8d6b7616ef1103095c068627f6d3c571aaf71924bc8f8bc58ec";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/es-ES/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/es-ES/thunderbird-91.5.0.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
sha256 = "a28fb5020e2e5a577958f4702cd3f15dadf4fcc62c3bfc954d5df3777ef4152a";
sha256 = "1dae610383b6dd35e4d6e7d0f8a757b98ab98c6b587940818c239c95f7829e24";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/et/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/et/thunderbird-91.5.0.tar.bz2";
locale = "et";
arch = "linux-i686";
sha256 = "9a8fc8ba9df9aa179ca6b18d412ee0395c54ed3e2394d951c1cb85d4cb656808";
sha256 = "3b2979496032f3f140460295fcae7ff6b08b7970c18eff6bd83df6f582c20651";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/eu/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/eu/thunderbird-91.5.0.tar.bz2";
locale = "eu";
arch = "linux-i686";
sha256 = "56b10b3f9a824fbd91d1107db46e085b45d2c7d78a67a9eb8554afa7aab881a9";
sha256 = "a10fddb7405cb311d0a8c69dafca4dce66084c64f68fc7dabbdd7292d265d528";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fi/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/fi/thunderbird-91.5.0.tar.bz2";
locale = "fi";
arch = "linux-i686";
sha256 = "ef41d1f5a985f1bf98790f76cd9dc9cf8d02614b0d780c59f95fe30224678f02";
sha256 = "edc8f3c7368126e3678f8ea6c22e8e575cd34054a94e21b1eac0a44f44689790";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/fr/thunderbird-91.5.0.tar.bz2";
locale = "fr";
arch = "linux-i686";
sha256 = "2af9a88a1bf2bc0932ef0131a53b2ab3fda256ceaf3e8f256e41f648153eea8f";
sha256 = "bae7f4e7cd6d72c3e8270f12483f382c939f3012df6597bb3233af9a3d0bab03";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fy-NL/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/fy-NL/thunderbird-91.5.0.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
sha256 = "3406057ce9f70c9f1a2efce979fd9b1bffa2ad7fe63bb90e541ea539a2eb071f";
sha256 = "dd38566e30d30d1a15283ef1c4382d350cfd4afe8cdaeefc38b995cc82045964";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ga-IE/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ga-IE/thunderbird-91.5.0.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
sha256 = "ee6a8941da6093a7b342da1f124ab5d82cfc9ed288a7385c2ce33e5d95370fb6";
sha256 = "7b16826113f3c46601465dbc3b44a24b5e62d9a6a0639d4f74b6314250f24224";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/gd/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/gd/thunderbird-91.5.0.tar.bz2";
locale = "gd";
arch = "linux-i686";
sha256 = "9b57c51af6dbdb9c654e0fc96fe086c04f4dc482fa3528c9658261b9710bc229";
sha256 = "4287667e5ff7a6ff39c74066a7c22229736ce503fad749293710a25cf74b5836";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/gl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/gl/thunderbird-91.5.0.tar.bz2";
locale = "gl";
arch = "linux-i686";
sha256 = "d2d12a17334c0b74904fd5a64294c0ca86430d79ebd765d7118b3451cb361819";
sha256 = "bcca84aaab4c48e8842f1c921ac398f56eaa569cda6ffa6b5aa3cd0ec709e42e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/he/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/he/thunderbird-91.5.0.tar.bz2";
locale = "he";
arch = "linux-i686";
sha256 = "da8791864ea612b37839075a85ed446aecd4be941c4f624ed212fa1e4d322768";
sha256 = "fd9be0e774dde17d5c2b5d1887c9e9ab75fcb7c797f5b6d59c991679eeb870a7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/hr/thunderbird-91.5.0.tar.bz2";
locale = "hr";
arch = "linux-i686";
sha256 = "11ef3a9c2b7555ef144cc0689265f928c29b01fccded781d76a3f2105d15ed67";
sha256 = "4dbc9d9a2d9409688c2f67f5c73fbb31fd1027ee787527f437f95582103c728a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hsb/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/hsb/thunderbird-91.5.0.tar.bz2";
locale = "hsb";
arch = "linux-i686";
sha256 = "bce0ebbaa3e19912d74e5a9754a45a93948f41d5fa9dfab77aea03856ea70ef4";
sha256 = "5cf4fc68d7d9464d55686dbac2dba4a38ca50bb36e6661ed4d58b91726f0b312";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hu/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/hu/thunderbird-91.5.0.tar.bz2";
locale = "hu";
arch = "linux-i686";
sha256 = "dd1b5a48fb175be82967f3b9ca72ea86b2797ebb68285fee143c77ae72a9e659";
sha256 = "dd1b4a5f2498eb2e3a3956fdf6379cdde04f0eb60efc201c86237f07dfc01a2f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hy-AM/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/hy-AM/thunderbird-91.5.0.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
sha256 = "cc172a84b6c586a786a7691eb728e8bce5af253316cec64b989fe2f10f253f95";
sha256 = "4e717d157784d865f4de4dd8b14718d39103ce24be1d72c5720629c74d74ae94";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/id/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/id/thunderbird-91.5.0.tar.bz2";
locale = "id";
arch = "linux-i686";
sha256 = "6ac4c494569bb7d5a9948d1e19cb273135638b3b0fa487a535d36f2b70c86bfa";
sha256 = "a705929998084e28016cc60df3b7ae6a1f70929270be16307e9be89f1324de2c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/is/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/is/thunderbird-91.5.0.tar.bz2";
locale = "is";
arch = "linux-i686";
sha256 = "e98642ccc27cc77180a83b34a55a59f9b653beb993e80647b76b1c2d1fec003a";
sha256 = "48d7eb8c949e9590699031c45bcdd746d1e86ed8dd893bb3afa7025f7bc4c247";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/it/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/it/thunderbird-91.5.0.tar.bz2";
locale = "it";
arch = "linux-i686";
sha256 = "bada535c73a41318650acb3e744771beea09bf192b3f88e6e8be0de0f9c15b4f";
sha256 = "0278a174914da7f874a974847a30bc52851496e79690a8ccde2c3a0a24e9aa39";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ja/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ja/thunderbird-91.5.0.tar.bz2";
locale = "ja";
arch = "linux-i686";
sha256 = "dc30bc5943518dbde7b213df3fdd0b454550612d741e167003efc0463b3fd2ae";
sha256 = "243e610020c892cf44de3d76b27539e57c5c9eeaef6c5d8298af59ee4be8b448";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ka/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ka/thunderbird-91.5.0.tar.bz2";
locale = "ka";
arch = "linux-i686";
sha256 = "747b850fdb8cad7607b807bf402e2b6d9b58006c9d8323947c2c991d3d775d1e";
sha256 = "c641e2f92c87a7454603d059dc34dd2719aefe9b10548dba9e4b95e728583181";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/kab/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/kab/thunderbird-91.5.0.tar.bz2";
locale = "kab";
arch = "linux-i686";
sha256 = "fd063bc5e41bec78ad7d006370ecc0be0644a63bb0f5d6cfdda7148790113059";
sha256 = "a47675e0ec44e8bb94dd950e5282f26f0ee878be90a87c0cffe50fe74adc754a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/kk/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/kk/thunderbird-91.5.0.tar.bz2";
locale = "kk";
arch = "linux-i686";
sha256 = "f853aeb878ed181070b192f1b27dd985a6f0b2318500373b23358c53a56c3d97";
sha256 = "1a4cc1087fd9fd0f9cb303c1a0de438d95ec9a665360d9c9915af4269af6f5e9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ko/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ko/thunderbird-91.5.0.tar.bz2";
locale = "ko";
arch = "linux-i686";
sha256 = "7444d40c6db9b592d3831115e981208567311a58d47606da6947217e58650e90";
sha256 = "f45540f54fab28b107c2938b91191a65f2051fbf435e00530d343f076cb84373";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/lt/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/lt/thunderbird-91.5.0.tar.bz2";
locale = "lt";
arch = "linux-i686";
sha256 = "c7f1cf8b583e6659ec84a0546a3e7828626bae3664de35bc9bcd9fbbb97b56ba";
sha256 = "be4d02c3b07aab05e82de8d167ae22269ca5c5ee020a6d8cad0e53a433135160";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/lv/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/lv/thunderbird-91.5.0.tar.bz2";
locale = "lv";
arch = "linux-i686";
sha256 = "30671983c35bb5c112b2b9755e56a1c36afe5bd03c0f09ba930095880b7ab25a";
sha256 = "76e3c3c943d4f3598f6f49b51ab9c8625322ad78b6809418905e8d0c7d586ee7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ms/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ms/thunderbird-91.5.0.tar.bz2";
locale = "ms";
arch = "linux-i686";
sha256 = "233464fc722e9deba822c3cec0c7ebf5b1b72295a6847a3203410784e8e33f0f";
sha256 = "e125a89ea9d9f013ddd2f816ab10c6916b514ff329011f54e517e2d6e5edb865";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nb-NO/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/nb-NO/thunderbird-91.5.0.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
sha256 = "299f50b9d2077ea8300959cd90aaf3113b5fc5da77fa66617533d2b6d4a11f72";
sha256 = "f1645ab9430323efefff6751696e1fe601063eef5c5ac70b90889620f6bd9680";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/nl/thunderbird-91.5.0.tar.bz2";
locale = "nl";
arch = "linux-i686";
sha256 = "4374b5d175d4c990d706241083886e9459f9aa51b1c9862dc02c5134df6a8523";
sha256 = "2c1cc1a8ed006e45d4649fa89d5446a9df2e95e2656e9a18130556c42ee0db78";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nn-NO/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/nn-NO/thunderbird-91.5.0.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
sha256 = "786c23053df9dedb177bd22ab3cf78e3083b73b9bd11b45c17bae35921f8c762";
sha256 = "089e6cb230da93b30aac8a81d22f6ac97233d20f6a0e50e96ef8675acfcc407c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pa-IN/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/pa-IN/thunderbird-91.5.0.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
sha256 = "cc3df207d658cdc6b13e8d67dec598afa477520d81d6c4bda23bfa0a3bdfe9f7";
sha256 = "6ca6b68ac5ab40966b8bc13d6a8f1ef26730d8065cad27f93bd3139295b5fcbc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/pl/thunderbird-91.5.0.tar.bz2";
locale = "pl";
arch = "linux-i686";
sha256 = "9471ddfc7086cf21222eb1de8c5de76f61f0d9479d6691fa4cce16ea4a481361";
sha256 = "93f94b83a17569b5b626277af71651a607d74c32fa17fc35896ac42556075d2d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pt-BR/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/pt-BR/thunderbird-91.5.0.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
sha256 = "0e466b0a1a0e258b9d3b5288902dcf4fc114a192ba156d956d8be9bbcea1a42a";
sha256 = "9c7e02da587136eebf6111fe4e25687f904b8db7629be251c84ab25b6adfd2e5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pt-PT/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/pt-PT/thunderbird-91.5.0.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
sha256 = "83b0e2bfe657f16b88906f2a70a0d954b73d053c01b545812e40d02f343b50ef";
sha256 = "8666b71ac2fa83da6175c8c26ab73a957f19dcc6b36cca7f980407aa7a42111d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/rm/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/rm/thunderbird-91.5.0.tar.bz2";
locale = "rm";
arch = "linux-i686";
sha256 = "507059e7cad7c0665c0468436e334a3c2cef258751fe97e90a731d067e0cc672";
sha256 = "f278f045fe7c941b4545ea452152859960d952704f2d666d39bb6a91175c7027";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ro/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ro/thunderbird-91.5.0.tar.bz2";
locale = "ro";
arch = "linux-i686";
sha256 = "61e4d4652ecbce03421dab02aa15f49e4a782cf63380d76207173afd07dc6183";
sha256 = "2c43f39a8fcd557efde852eb7f859eff048672806ec23620037a28d4d98da99a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ru/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/ru/thunderbird-91.5.0.tar.bz2";
locale = "ru";
arch = "linux-i686";
sha256 = "b3c1d07ace631bc8117d1003029216a5579a64f7e83a4289877fe5101c0b261b";
sha256 = "63041d68d0072699dfc7e3fa448ac9a3bf065795c455dd3f5671cae97d5d121a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sk/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/sk/thunderbird-91.5.0.tar.bz2";
locale = "sk";
arch = "linux-i686";
sha256 = "ec8949eec7a001e075888500749f7b0211996afe4d25dc081df34e20a214e835";
sha256 = "be1cdf0cd47f788d736c9bfae340b6cf9edd661293e5ce5b5bca6b2aa169438c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sl/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/sl/thunderbird-91.5.0.tar.bz2";
locale = "sl";
arch = "linux-i686";
sha256 = "026a55fbb143621ba98d2218ff72c5eea2491ea74e3abbf46dc4d8405a7df327";
sha256 = "128a46d7df356375536a432d7bd13bdea8d4932b105cdf4b8288af3dfa878b7d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sq/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/sq/thunderbird-91.5.0.tar.bz2";
locale = "sq";
arch = "linux-i686";
sha256 = "0a22abf8961874edc88fb7654d8b66694050f98ed4440eb7aabbf7a4969bd993";
sha256 = "6a8fa0c4806240a886393c51f63992e567524264c821ccf4f12e202f4f30e7ce";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/sr/thunderbird-91.5.0.tar.bz2";
locale = "sr";
arch = "linux-i686";
sha256 = "4304ac8a1283065aabc63b39734cd7d023a82b590cc1d255093d73cc1155e30c";
sha256 = "e2639022166d0be0d30846a269c08940652475e77ef114089e22c9d5ddf61f98";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sv-SE/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/sv-SE/thunderbird-91.5.0.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
sha256 = "b2196727748a1d42bc67fcde4df47e7e1661a446e0620e11c64dcc1a7db0da06";
sha256 = "d8a419a6c8105fbf6ee29a38cba3e40729ef8f12743d87ce2a623e8707ba0414";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/th/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/th/thunderbird-91.5.0.tar.bz2";
locale = "th";
arch = "linux-i686";
sha256 = "de52a8a1a64b26d29721be3843c12df6bdb732354c9263782f989918a51dee2a";
sha256 = "ac2926a73937c0789ba63d6ecce8a17dcf5a65a7fca5dd439618384588c0dce5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/tr/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/tr/thunderbird-91.5.0.tar.bz2";
locale = "tr";
arch = "linux-i686";
sha256 = "bba119fb7749350c06760d6885a89efa0632098e593f22a23451a592dbea9e1d";
sha256 = "efcf840a32ab0264484c7f1fa2b3a0961cdd1e8ff37f4f83126ab0626c19834b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/uk/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/uk/thunderbird-91.5.0.tar.bz2";
locale = "uk";
arch = "linux-i686";
sha256 = "34198ab171b0783d0ac592e0a72ea355aae75b950f2569d2e6ed30a9b1a5d2f8";
sha256 = "e1fabb41564ebd683cf298bb3bc13e3478dfef6522f6524a7c2ab69c64d59251";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/uz/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/uz/thunderbird-91.5.0.tar.bz2";
locale = "uz";
arch = "linux-i686";
sha256 = "1adcedb12bb9485da32b47558352d5fa9182fd8411450386d9ac8a528b40cca4";
sha256 = "2dac221764006b5db352416159311849cfa62c67894ec40a2914caf3191c79d9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/vi/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/vi/thunderbird-91.5.0.tar.bz2";
locale = "vi";
arch = "linux-i686";
sha256 = "c22cd41206fd7e4d80c6855c7217071be3890e84460cd030f4029a910c672bb2";
sha256 = "fb482c3579b6bde18214ca68fa731d50ac254152dc51c5d13e283f16559f0886";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/zh-CN/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/zh-CN/thunderbird-91.5.0.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
sha256 = "744515522d16884b4067a75412977243753baece132c4d5c815ac60d5a26bd7b";
sha256 = "4e596742711f72eae50621fbc0b329bdf736267c753c51ab8dd1713cc0860285";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/zh-TW/thunderbird-91.4.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.5.0/linux-i686/zh-TW/thunderbird-91.5.0.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
sha256 = "21fcb4c30b76c607e215363688966ea92ae1f3cd658ce7c9118f3d0f2cfff729";
sha256 = "c97873b840540297f08ad866479789f2f7cc8baa48de6bdf9eb4b945a5c135c4";
}
];
}

View file

@ -10,12 +10,12 @@ in
rec {
thunderbird = common rec {
pname = "thunderbird";
version = "91.4.1";
version = "91.5.0";
application = "comm/mail";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "aa442ef886277f5091ebadff907a29451a0ee6542f24adb5c1fb4223193d719c2cb01474d3ccd96067695b19ce3cbf042893b0beaaeb7c65e0660ab5072bf82e";
sha512 = "e1cafbd99e67e8fef346e936890a22aeadded4aa8be604607535ae933251bc1b2a3b56c2b62045b3d37ecb09999adb746157df188d1a32dfe75685f3af959b7d";
};
patches = [
# The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.

View file

@ -83,7 +83,7 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
daphne
dateparser
django-cors-headers
django_extensions
django-extensions
django-filter
django-picklefield
django-q

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "super-productivity";
version = "7.9.1";
version = "7.9.2";
src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
sha256 = "sha256:0lxnl5ai23dwfsyrkpi9l1a0gl0qn6vp7hzmca77nyx974d6j8m4";
sha256 = "sha256-qeHFFG1Y8qZwFvo3CFIs1+BKQo287HJfOnKKguUOlu8=";
name = "${pname}-${version}.AppImage";
};

View file

@ -19,16 +19,16 @@ let
maintainers = with maintainers; [ fliegendewurst ];
};
version = "0.48.8";
version = "0.49.4";
desktopSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
sha256 = "1dz4wdx3d1pmm3yrvipqa929f6gqilhfc3sp6xcgbn9faypp6qra";
sha256 = "078w7jjkn8af3i0y0s236ky54h08b2wgzcaiakqiqx4gxdpf6jrq";
};
serverSource = {
url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
sha256 = "0jp1hj51x5wz27f7739nwwli119pzpskg269cxk4i04xxbhr145j";
sha256 = "0hygdxb97373z5cn3s4wr66wc41w7a55kxjyb8alck1fl9l6agn1";
};
in {

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "dablin";
version = "1.13.0";
version = "1.14.0";
src = fetchFromGitHub {
owner = "Opendigitalradio";
repo = "dablin";
rev = version;
sha256 = "0143jnhwwh4din6mlrkbm8m2wm8vnrlk0yk9r5qcvj70r2314bgq";
sha256 = "02mhxaqpj0094sbb3c28r5xznw9z8ayvlkczknizlk75ag895zz2";
};
nativeBuildInputs = [ cmake pkg-config ];

View file

@ -4,12 +4,12 @@
stdenv.mkDerivation rec {
pname = "wsjtx";
version = "2.5.3";
version = "2.5.4";
# This is a "superbuild" tarball containing both wsjtx and a hamlib fork
src = fetchurl {
url = "http://physics.princeton.edu/pulsar/k1jt/wsjtx-${version}.tgz";
sha256 = "sha256-Dd99JBPn1TgPF8Yvqk+AZX8ZUuQjYS0Tx3y5A3VZsHw=";
sha256 = "sha256-Gz84Rq0sCl9BAXi2YSdl1Z7mPbJJ62z8MyrOF/CjCJg=";
};
# Hamlib builds with autotools, wsjtx builds with cmake

View file

@ -0,0 +1,39 @@
{ lib, stdenv, fetchurl, pkg-config, perl, unzip, autoPatchelfHook, ncurses, SDL2, alsa-lib }:
stdenv.mkDerivation rec {
pname = "syncterm";
version = "1.1";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}-src.tgz";
sha256 = "19m76bisipp1h3bc8mbq83b851rx3lbysxb0azpbr5nbqr2f8xyi";
};
sourceRoot = "${pname}-${version}/src/syncterm";
CFLAGS = [
"-DHAS_INTTYPES_H"
"-DXPDEV_DONT_DEFINE_INTTYPES"
"-Wno-unused-result"
"-Wformat-overflow=0"
] ++ (lib.optionals stdenv.isLinux [
"-DUSE_ALSA_SOUND" # Don't use OSS for beeps.
]);
makeFlags = [
"PREFIX=$(out)"
"RELEASE=1"
"USE_SDL_AUDIO=1"
];
nativeBuildInputs = [ autoPatchelfHook pkg-config SDL2 perl unzip ]; # SDL2 for `sdl2-config`.
buildInputs = [ ncurses SDL2 ]
++ (lib.optional stdenv.isLinux alsa-lib);
runtimeDependencies = [ ncurses SDL2 ]; # Both of these are dlopen()'ed at runtime.
meta = with lib; {
homepage = "https://syncterm.bbsdev.net/";
description = "BBS terminal emulator";
maintainers = with maintainers; [ embr ];
license = licenses.gpl2Plus;
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "git-hub";
version = "2.1.1";
version = "2.1.2";
src = fetchFromGitHub {
owner = "sociomantic-tsunami";
repo = "git-hub";
rev = "v${version}";
sha256 = "sha256-k8sGgDhQn9e0lxM604Wz2sy4lrX5o82xAgWbqscOmQw=";
sha256 = "sha256-Iq6IrW2gAGqq56b2gXpEkg+I/5FcmsESWBJQiG1XWWA=";
};
nativeBuildInputs = [

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "tig";
version = "2.5.4";
version = "2.5.5";
src = fetchFromGitHub {
owner = "jonas";
repo = pname;
rev = "${pname}-${version}";
sha256 = "sha256-dZqqUydZ4q/mDEjtojpMGfzAmW3yCNDvT9oCEmhq1hg=";
sha256 = "1yx63jfbaa5h0d3lfqlczs9l7j2rnhp5jpa8qcjn4z1n415ay2x5";
};
nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];

View file

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "git-repo";
version = "2.19";
version = "2.20";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
sha256 = "sha256-aJnerKeZobgw3e4s7D7de7/nP6vwymLpeKnrLmPzDow=";
sha256 = "sha256-5yyiQMIoAtaNh9H1pjU1gXAbmU3/VdXGt7AL4wmJC28=";
};
# Fix 'NameError: name 'ssl' is not defined'

View file

@ -3,13 +3,13 @@
# Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
stdenvNoCC.mkDerivation {
pname = "mpv_sponsorblock";
version = "unstable-2020-07-05";
version = "unstable-2021-12-23";
src = fetchFromGitHub {
owner = "po5";
repo = "mpv_sponsorblock";
rev = "f71e49e0531350339134502e095721fdc66eac20";
sha256 = "1fr4cagzs26ygxyk8dxqvjw4n85fzv6is6cb1jhr2qnsjg6pa0p8";
rev = "6743bd47d4cfce3ae3d5dd4f587f3193bd4fb9b2";
sha256 = "06c37f33cdpz1w1jacjf1wnbh4f9b1xpipxzkg5ixf46cbwssmsj";
};
dontBuild = true;
@ -39,10 +39,13 @@ stdenvNoCC.mkDerivation {
cp -r sponsorblock.lua sponsorblock_shared $out/share/mpv/scripts/
'';
passthru.scriptName = "sponsorblock.lua";
passthru = {
scriptName = "sponsorblock.lua";
updateScript = ./update-sponsorblock.sh;
};
meta = with lib; {
description = "mpv script to skip sponsored segments of YouTube videos";
description = "Script for mpv to skip sponsored segments of YouTube videos";
homepage = "https://github.com/po5/mpv_sponsorblock";
license = licenses.gpl3;
platforms = platforms.all;

View file

@ -0,0 +1,49 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts git jq nix nix-prefetch-git
git_url='https://github.com/po5/mpv_sponsorblock.git'
git_branch='master'
git_dir='/var/tmp/mpv_sponsorblock.git'
nix_file="$(dirname "${BASH_SOURCE[0]}")/sponsorblock.nix"
pkg='mpvScripts.sponsorblock'
set -euo pipefail
info() {
if [ -t 2 ]; then
set -- '\033[32m%s\033[39m\n' "$@"
else
set -- '%s\n' "$@"
fi
printf "$@" >&2
}
old_rev=$(nix-instantiate --eval --strict --json -A "$pkg.src.rev" | jq -r)
old_version=$(nix-instantiate --eval --strict --json -A "$pkg.version" | jq -r)
today=$(LANG=C date -u +'%Y-%m-%d')
info "fetching $git_url..."
if [ ! -d "$git_dir" ]; then
git init --initial-branch="$git_branch" "$git_dir"
git -C "$git_dir" remote add origin "$git_url"
fi
git -C "$git_dir" fetch origin "$git_branch"
# use latest commit before today, we should not call the version *today*
# because there might still be commits coming
# use the day of the latest commit we picked as version
new_rev=$(git -C "$git_dir" log -n 1 --format='format:%H' --before="${today}T00:00:00Z" "origin/$git_branch")
new_version="unstable-$(git -C "$git_dir" log -n 1 --format='format:%cs' "$new_rev")"
info "latest commit before $today: $new_rev"
if [ "$new_rev" = "$old_rev" ]; then
info "$pkg is up-to-date."
exit
fi
new_sha256=$(nix-prefetch-git --rev "$new_rev" "$git_dir" | jq -r .sha256)
update-source-version "$pkg" \
"$new_version" \
"$new_sha256" \
--rev="$new_rev"
git add "$nix_file"
git commit --verbose --message "$pkg: $old_version -> $new_version"

View file

@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "1.5.1";
version = "1.5.2";
in
fetchzip {
name = "victor-mono-${version}";
@ -21,7 +21,7 @@ fetchzip {
unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
'';
sha256 = "sha256-FHahUp/Ghjv6fwsjj1giVPlAIXRMSZCSLcVMiMHvV3A=";
sha256 = "sha256-cNDZh0P/enmoKL/6eHzkgl5ghtai2K9cTgWMVmm8GIA=";
meta = with lib; {
description = "Free programming font with cursive italics and ligatures";

View file

@ -1,14 +1,20 @@
{ lib, stdenv, fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes }:
{ lib
, stdenvNoCC
, fetchFromGitHub
, gtk3
, hicolor-icon-theme
, jdupes
}:
stdenv.mkDerivation rec {
stdenvNoCC.mkDerivation rec {
pname = "qogir-icon-theme";
version = "2021-10-14";
version = "2022-01-12";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
sha256 = "0qbbg0hcdda7apk892b8nhbrsvji12nv97ss7lv412xwcmxsj9fp";
sha256 = "1daayxsqh7di3bvfnl39h1arsj1fypd3ba30mas6dl1d0qy17z1p";
};
nativeBuildInputs = [ gtk3 jdupes ];
@ -26,7 +32,7 @@ stdenv.mkDerivation rec {
patchShebangs install.sh
mkdir -p $out/share/icons
name= ./install.sh -d $out/share/icons
jdupes -l -r $out/share/icons
jdupes -L -r $out/share/icons
runHook postInstall
'';

View file

@ -49,7 +49,7 @@ lib.makeScope pkgs.newScope (self: with self; {
gtkhtml = callPackage ./platform/gtkhtml { enchant = pkgs.enchant1; };
gtkhtml4 = callPackage ./platform/gtkhtml/4.x.nix { enchant = pkgs.enchant1; };
gtkhtml4 = callPackage ./platform/gtkhtml/4.x.nix { enchant = pkgs.enchant2; };
gtkglext = callPackage ./platform/gtkglext { };

View file

@ -1,16 +1,30 @@
{ stdenv, fetchurl, pkg-config, gtk3, intltool
{ stdenv, fetchFromGitLab, pkg-config, gtk3, intltool, autoreconfHook, fetchpatch
, GConf, enchant, isocodes, gnome-icon-theme, gsettings-desktop-schemas }:
stdenv.mkDerivation rec {
version = "4.10.0";
pname = "gtkhtml";
src = fetchurl {
url = "mirror://gnome/sources/gtkhtml/4.10/${pname}-${version}.tar.xz";
sha256 = "1hq6asgb5n9q3ryx2vngr4jyi8lg65lzpnlgrgcwayiczcj68fya";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "Archive";
repo = "gtkhtml";
rev = "master";
sha256 = "sha256-jL8YADvhW0o6I/2Uo5FNARMAnSbvtmFp+zWH1yCVvQk=";
};
propagatedBuildInputs = [ gsettings-desktop-schemas gtk3 gnome-icon-theme GConf ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ intltool enchant isocodes ];
buildInputs = [ intltool enchant isocodes autoreconfHook ];
patchFlags = [ "-p0" ];
patches = [
# Enables enchant2 support.
# Upstream is dead, no further releases are coming.
(fetchpatch {
name ="enchant-2.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/enchant-2.patch?h=gtkhtml4&id=0218303a63d64c04d6483a6fe9bb55063fcfaa43";
sha256 = "sha256-jkA/GgIiJZmxkbcBGQ26OZ1nuI502BMPwbPhsZkbgbY=";
})
];
}

View file

@ -1,7 +1,7 @@
{ fetchFromGitHub, fetchgit, fetchHex, rebar3Relx, buildRebar3, rebar3-proper
, stdenv, writeScript, lib }:
let
version = "0.20.0";
version = "0.21.2";
owner = "erlang-ls";
repo = "erlang_ls";
deps = import ./rebar-deps.nix {
@ -19,7 +19,7 @@ rebar3Relx {
inherit version;
src = fetchFromGitHub {
inherit owner repo;
sha256 = "sha256-XBCauvPalIPjVOYlMfWC+5mKku28b/qqKhp9NgSkoyA=";
sha256 = "sha256-CiA71mvmq3HrJvgrEDMwp3CQ4Dl05BpTO5HusAL5FAQ=";
rev = version;
};
releaseType = "escript";

View file

@ -114,16 +114,6 @@ let
};
beamDeps = [ katana_code ];
};
ranch = builder {
name = "ranch";
version = "2.0.0";
src = fetchHex {
pkg = "ranch";
version = "2.0.0";
sha256 = "sha256-wgpIQMfWYjwZgS06fIKLLxvRU+8PEky2nFT+UdikKuA=";
};
beamDeps = [ ];
};
jsx = builder {
name = "jsx";
version = "3.0.0";
@ -134,14 +124,24 @@ let
};
beamDeps = [ ];
};
erlfmt = builder {
name = "erlfmt";
gradualizer = builder {
name = "gradualizer";
version = "git";
src = fetchFromGitHub {
owner = "whatsapp";
repo = "erlfmt";
rev = "2e93fc4a646111357642b0179a2a63151868d890";
sha256 = "0n7kygycn05aqdp5dyj192mja89l4nxv2wg16qg2c0bmw9s7j2mr";
owner = "josefs";
repo = "gradualizer";
rev = "e93db1c6725760def005c69d72f53b1a889b4c2f";
sha256 = "0i1mh0dw2qknrjwpbxhgpwspqv12bznylv17sznid3kbb31pslay";
};
beamDeps = [ ];
};
erlfmt = builder {
name = "erlfmt";
version = "1.0.0";
src = fetchHex {
pkg = "erlfmt";
version = "1.0.0";
sha256 = "sha256-RL4L4DzmmQLcbc2PZeezre1qr10L5wlkGIyr1K0k8E4=";
};
beamDeps = [ ];
};

View file

@ -26,8 +26,8 @@ let
};
"2.13" = {
version = "2.13.7";
sha256 = "FO8WAIeGvHs3E1soS+YkUHcB9lE5bRb9ikijWkvOqU4=";
version = "2.13.8";
sha256 = "LLMdhGnGUYOfDpyDehqwZVDQMXJnUvVJBr4bneATFM8=";
pname = "scala_2_13";
};
};

View file

@ -9,11 +9,11 @@ let
in
stdenv.mkDerivation rec {
pname = "stm32cubemx";
version = "6.2.1";
version = "6.4.0";
src = fetchzip {
url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}-lin.zip";
sha256 = "0m5h01iq0mgrr9svj4gmykfi9lsyjpqzrkvlizff26c8dqad59c5";
sha256 = "sha256-5qotjAyaNFtYUjHlNKwywmBJGAzS/IM9bF+dmONE4bk=";
stripRoot = false;
};

View file

@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "22.3.4.20";
sha256 = "sha256-EUErOCW16eUb/p5dLpFV7sQ3mXlCF/OgOvGAAyYEvLo=";
version = "22.3.4.24";
sha256 = "0c9713xa8sjw7nr55hysgcnbvj7gzbrpzdl94y1nqn7vw4ni8is3";
}

View file

@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "23.3.4.5";
sha256 = "2u/w8IPKHEZ+rZ3T7Wn9+Ggxe6JY8cHz8q/N0RjbrNU=";
version = "23.3.4.10";
sha256 = "0sfz7n748hvhmcygnvb6h31ag35p59aaa9h8gdpqsh6p4hnjh1mf";
}

View file

@ -3,6 +3,6 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "24.1.7";
sha256 = "sha256-R4rZVMn9AGvOy31eA1dsz2CFMKOG/cXkbLaJtT7zBrU=";
version = "24.2";
sha256 = "10s57v2i2qqyg3gddm85n3crzrkikl4zfwgzqmxjzdynsyb4xg68";
}

View file

@ -20,11 +20,11 @@
stdenv.mkDerivation rec {
pname = "spidermonkey";
version = "91.4.0";
version = "91.5.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
sha256 = "09xkzk27krzyj1qx8cjjn2zpnws1cncka75828kk7ychnjfq48p7";
sha256 = "04y8nj1f065b3dn354f1ns3cm9xp4kljr5ippvmfdqr7cb4xjp7l";
};
outputs = [ "out" "dev" ];

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libkeyfinder";
version = "2.2.5";
version = "2.2.6";
src = fetchFromGitHub {
owner = "mixxxdj";
repo = "libkeyfinder";
rev = "v${version}";
sha256 = "sha256-4jbnsKMGJKUIRfRPymGGgqPgwPyLInc6rLvCXnOcQ5g=";
sha256 = "sha256-7w/Wc9ncLinbnM2q3yv5DBtFoJFAM2e9xAUTsqvE9mg=";
};
# needed for finding libkeyfinder.so to link it into keyfinder-tests executable

View file

@ -12,7 +12,7 @@
stdenv.mkDerivation rec {
pname = "gdk-pixbuf-xlib";
version = "2020-06-11-unstable";
version = "2.40.2";
outputs = [ "out" "dev" "devdoc" ];
@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
domain = "gitlab.gnome.org";
owner = "Archive";
repo = "gdk-pixbuf-xlib";
rev = "3116b8ae55501cf48d16970aa2b50a5530e15223";
sha256 = "15wisf2xld3cr7lprnic8fvwpcmww4rydwc1bn2zilyi52vzl2zd";
rev = version;
hash = "sha256-b4EUaYzg2NlBMU90dGQivOvkv9KKSzES/ymPqzrelu8=";
};
nativeBuildInputs = [

View file

@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "igraph";
version = "0.9.5";
version = "0.9.6";
src = fetchFromGitHub {
owner = "igraph";
repo = pname;
rev = version;
sha256 = "sha256-R5v1nbfYyIOzdw7LmkGQE4yVxpTVs6YF62jkfFrA1z8=";
sha256 = "sha256-nMM4ZQLIth9QHlLu+sXE4AXoDlq1UP20+YuBi+Op+go=";
};
# Normally, igraph wants us to call bootstrap.sh, which will call

View file

@ -11,13 +11,11 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses libiconv ];
buildPhase = ''
preBuild = ''
sed -i s/gcc/cc/g Makefile
sed -i s%ncursesw/ncurses.h%ncurses.h% stfl_internals.h
'' + (lib.optionalString stdenv.isDarwin ''
'' + lib.optionalString stdenv.isDarwin ''
sed -i s/-soname/-install_name/ Makefile
'') + ''
make
'';
installPhase = ''

View file

@ -11,12 +11,14 @@
buildPythonPackage rec {
pname = "aioresponses";
version = "0.7.2";
version = "0.7.3";
format = "setuptools";
disabled = pythonOlder "3.5";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-guSV0Ri3SJaqW01H4X7/teLMeD5RCuOVzq3l6Hyr6Jo=";
sha256 = "sha256-LGTtVxDujLTpWMVpGE2tEvTJzVk5E1yzj4jGqCYczrM=";
};
nativeBuildInputs = [
@ -39,7 +41,9 @@ buildPythonPackage rec {
"test_pass_through_with_origin_params"
];
pythonImportsCheck = [ "aioresponses" ];
pythonImportsCheck = [
"aioresponses"
];
meta = {
description = "A helper to mock/fake web requests in python aiohttp package";

View file

@ -1,24 +1,46 @@
{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, case, vine }:
{ lib
, buildPythonPackage
, case
, fetchPypi
, pytestCheckHook
, pythonOlder
, vine
}:
buildPythonPackage rec {
pname = "amqp";
version = "5.0.6";
version = "5.0.9";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "03e16e94f2b34c31f8bf1206d8ddd3ccaa4c315f7f6a1879b7b1210d229568c2";
hash = "sha256-Hl9wdCTlRAeMoZbnKuahSIfOdOAr0Sa+VLfAPJcb7xg=";
};
propagatedBuildInputs = [ vine ];
propagatedBuildInputs = [
vine
];
checkInputs = [
case
pytestCheckHook
];
checkInputs = [ pytestCheckHook case ];
disabledTests = [
"test_rmq.py" # requires network access
# Requires network access
"test_rmq.py"
];
pythonImportsCheck = [
"amqp"
];
meta = with lib; {
homepage = "https://github.com/celery/py-amqp";
description = "Python client for the Advanced Message Queuing Procotol (AMQP). This is a fork of amqplib which is maintained by the Celery project";
license = licenses.lgpl21;
license = licenses.bsd3;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -1,12 +1,24 @@
{ lib, fetchPypi, buildPythonPackage
, fetchpatch, configobj, six, traitsui
, pytestCheckHook, tables, pandas
, pythonOlder, importlib-resources
{ lib
, buildPythonPackage
, configobj
, fetchpatch
, fetchPypi
, importlib-resources
, pandas
, pytestCheckHook
, pythonAtLeast
, pythonOlder
, tables
, traits
, traitsui
}:
buildPythonPackage rec {
pname = "apptools";
version = "5.1.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
@ -24,7 +36,7 @@ buildPythonPackage rec {
propagatedBuildInputs = [
configobj
six
traits
traitsui
] ++ lib.optionals (pythonOlder "3.9") [
importlib-resources
@ -40,10 +52,22 @@ buildPythonPackage rec {
export HOME=$TMP
'';
disabledTestPaths = lib.optionals (pythonAtLeast "3.10") [
# https://github.com/enthought/apptools/issues/303
"apptools/io/h5/tests/test_dict_node.py"
"apptools/io/h5/tests/test_file.py"
"apptools/io/h5/tests/test_table_node.py"
];
pythonImportsCheck = [
"apptools"
];
meta = with lib; {
description = "Set of packages that Enthought has found useful in creating a number of applications.";
description = "Set of packages that Enthought has found useful in creating a number of applications";
homepage = "https://github.com/enthought/apptools";
maintainers = with maintainers; [ knedlsepp ];
license = licenses.bsdOriginal;
maintainers = with maintainers; [ knedlsepp ];
};
}

View file

@ -1,29 +1,57 @@
{ lib, buildPythonPackage, fetchPypi, isPy27, aspell, aspellDicts, python }:
{ lib
, aspell
, aspellDicts
, buildPythonPackage
, fetchPypi
, isPy27
, pytestCheckHook
, pythonAtLeast
}:
buildPythonPackage rec {
pname = "aspell-python";
version = "1.15";
format = "setuptools";
disabled = isPy27;
src = fetchPypi {
inherit version;
pname = "aspell-python-py3";
inherit version;
extension = "tar.bz2";
sha256 = "13dk3jrvqmfvf2w9b8afj37d8bh32kcx295lyn3z7r8qch792hi0";
hash = "sha256-IEKRDmQY5fOH9bQk0dkUAy7UzpBOoZW4cNtVvLMcs40=";
};
buildInputs = [ aspell ];
buildInputs = [
aspell
];
checkPhase = ''
checkInputs = [
pytestCheckHook
];
preCheck = ''
export ASPELL_CONF="dict-dir ${aspellDicts.en}/lib/aspell"
export HOME=$(mktemp -d)
${python.interpreter} test/unittests.py
'';
pythonImportsCheck = [ "aspell" ];
pytestFlagsArray = [
"test/unittests.py"
];
disabledTests = lib.optionals (pythonAtLeast "3.10") [
# https://github.com/WojciechMula/aspell-python/issues/22
"test_add"
"test_get"
"test_saveall"
];
pythonImportsCheck = [
"aspell"
];
meta = with lib; {
description = "Python wrapper for aspell (C extension and python version)";
description = "Python wrapper for aspell (C extension and Python version)";
homepage = "https://github.com/WojciechMula/aspell-python";
license = licenses.bsd3;
maintainers = with maintainers; [ SuperSandro2000 ];

View file

@ -0,0 +1,30 @@
{ lib
, buildPythonPackage
, fetchPypi
, pythonOlder
, pyquaternion
, numpy
}:
buildPythonPackage rec {
pname = "bbox";
version = "0.9.2";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-ucR7mg9eubEefjC7ratEgrb9h++a26z8KV38n3N2kcw=";
};
propagatedBuildInputs = [ pyquaternion numpy ];
pythonImportsCheck = [ "bbox" ];
meta = with lib; {
description = "Python library for 2D/3D bounding boxes";
homepage = "https://github.com/varunagrawal/bbox";
license = licenses.mit;
maintainers = with maintainers; [ lucasew ];
};
}

View file

@ -3,40 +3,53 @@
, fetchFromGitHub
, fetchpatch
, pytestCheckHook
, pythonAtLeast
, pythonOlder
}:
buildPythonPackage rec {
pname = "boltons";
version = "20.2.1";
format = "setuptools";
disabled = pythonOlder "3.7";
# No tests in PyPi Tarball
src = fetchFromGitHub {
owner = "mahmoud";
repo = "boltons";
rev = version;
sha256 = "0vw0h0z81gfxgjfijqiza92ic0siv9xy65mklgj5d0dzr1k9waw8";
hash = "sha256-iCueZsi/gVbko7MW43vaUQMWRVI/YhmdfN29gD6AgG8=";
};
patches = [
checkInputs = [
pytestCheckHook
];
patches = lib.optionals (pythonAtLeast "3.10") [
# pprint has no attribute _safe_repr, https://github.com/mahmoud/boltons/issues/294
(fetchpatch {
url = "https://github.com/mahmoud/boltons/commit/754afddf141ea26956c88c7e13fe5e7ca7942654.patch";
sha256 = "14kcq8pl4pmgcnlnmj1sh1yrksgym0kn0kgz2648g192svqkbpz8";
name = "fix-pprint-attribute.patch";
url = "https://github.com/mahmoud/boltons/commit/270e974975984f662f998c8f6eb0ebebd964de82.patch";
sha256 = "sha256-pZLfr6SRCw2aLwZeYaX7bzfJeZC4cFUILEmnVsKR6zc=";
})
];
checkInputs = [ pytestCheckHook ];
disabledTests = [
# This test is broken without this PR, which has not yet been merged
# This test is broken without this PR. Merged but not released
# https://github.com/mahmoud/boltons/pull/283
"test_frozendict_ior"
"test_frozendict"
];
pythonImportsCheck = [
"boltons"
];
meta = with lib; {
homepage = "https://github.com/mahmoud/boltons";
description = "220+ constructs, recipes, and snippets extending (and relying on nothing but) the Python standard library";
description = "Constructs, recipes, and snippets extending the Python standard library";
longDescription = ''
Boltons is a set of over 220 BSD-licensed, pure-Python utilities
in the same spirit as and yet conspicuously missing from the
Boltons is a set of over 200 BSD-licensed, pure-Python utilities
in the same spirit as - and yet conspicuously missing from - the
standard library, including:
- Atomic file saving, bolted on with fileutils

View file

@ -0,0 +1,57 @@
{ lib
, buildPythonPackage
, fetchPypi
, python
, xvfb-run
, matplotlib
, scikitimage
, numpy
, pandas
, imageio
, snakeviz
, fn
, pyopengl
, seaborn
, pytorch
, torchvision
}:
buildPythonPackage rec {
pname = "boxx";
version = "0.9.9";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-Mc6R6ruUVhFs2D0CTJsAiM9aGOusS973hRS5r2kQsy4=";
};
propagatedBuildInputs = [
matplotlib
scikitimage
numpy
pandas
imageio
snakeviz
fn
pyopengl
seaborn
];
pythonImportsCheck = [ "boxx" ];
checkInputs = [
xvfb-run
pytorch
torchvision
];
checkPhase = ''
xvfb-run ${python.interpreter} -m unittest
'';
meta = with lib; {
description = "Tool-box for efficient build and debug in Python. Especially for Scientific Computing and Computer Vision.";
homepage = "https://github.com/DIYer22/boxx";
license = licenses.mit;
maintainers = with maintainers; [ lucasew ];
};
}

View file

@ -0,0 +1,76 @@
# based on https://github.com/DIYer22/bpycv/blob/c576e01622d87eb3534f73bf1a5686bd2463de97/example/ycb_demo.py
import bpy
import bpycv
import os
import glob
import random
example_data_dir = os.environ['BPY_EXAMPLE_DATA']
models = sorted(glob.glob(os.path.join(example_data_dir, "model", "*", "*.obj")))
cat_id_to_model_path = dict(enumerate(sorted(models), 1))
distractors = sorted(glob.glob(os.path.join(example_data_dir, "distractor", "*.obj")))
bpycv.clear_all()
bpy.context.scene.frame_set(1)
bpy.context.scene.render.engine = "CYCLES"
bpy.context.scene.cycles.samples = 32
bpy.context.scene.render.resolution_y = 1024
bpy.context.scene.render.resolution_x = 1024
# A transparency stage for holding rigid body
stage = bpycv.add_stage(transparency=True)
bpycv.set_cam_pose(cam_radius=1, cam_deg=45)
hdri_dir = os.path.join(example_data_dir, "background_and_light")
hdri_manager = bpycv.HdriManager(
hdri_dir=hdri_dir, download=False
) # if download is True, will auto download .hdr file from HDRI Haven
hdri_path = hdri_manager.sample()
bpycv.load_hdri_world(hdri_path, random_rotate_z=True)
# load 5 objects
for index in range(5):
cat_id = random.choice(list(cat_id_to_model_path))
model_path = cat_id_to_model_path[cat_id]
obj = bpycv.load_obj(model_path)
obj.location = (
random.uniform(-0.2, 0.2),
random.uniform(-0.2, 0.2),
random.uniform(0.1, 0.3),
)
obj.rotation_euler = [random.uniform(-3.1415, 3.1415) for _ in range(3)]
# set each instance a unique inst_id, which is used to generate instance annotation.
obj["inst_id"] = cat_id * 1000 + index
with bpycv.activate_obj(obj):
bpy.ops.rigidbody.object_add()
# load 6 distractors
for index in range(6):
distractor_path = random.choice(distractors)
target_size = random.uniform(0.1, 0.3)
distractor = bpycv.load_distractor(distractor_path, target_size=target_size)
distractor.location = (
random.uniform(-0.2, 0.2),
random.uniform(-0.2, 0.2),
random.uniform(0.1, 0.3),
)
distractor.rotation_euler = [random.uniform(-3.1415, 3.1415) for _ in range(3)]
with bpycv.activate_obj(distractor):
bpy.ops.rigidbody.object_add()
# run pyhsic engine for 20 frames
for i in range(20):
bpy.context.scene.frame_set(bpy.context.scene.frame_current + 1)
# render image, instance annoatation and depth in one line code
result = bpycv.render_data()
dataset_dir = "./dataset"
result.save(dataset_dir=dataset_dir, fname="0", save_blend=True)
print(f'Save to "{dataset_dir}"')
print(f'Open "{dataset_dir}/vis/" to see visualize result.')

View file

@ -0,0 +1,62 @@
{ lib
, buildPythonPackage
, fetchPypi
, fetchFromGitHub
, fetchurl
, writeText
, blender
, minexr
, beautifulsoup4
, zcs
, requests
, opencv3
, boxx
}:
buildPythonPackage rec {
pname = "bpycv";
version = "0.2.43";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-6LXhKuNkX3yKeZARLXmOVNAUQhJghtzKhnszJ1G/a8U=";
};
propagatedBuildInputs = [
beautifulsoup4
minexr
zcs
requests
opencv3
boxx
];
postPatch = ''
sed -i 's/opencv-python//g' requirements.txt
'';
# pythonImportsCheck = [ "bpycv" ]; # this import depends on bpy that is only available inside blender
checkInputs = [ blender ];
checkPhase = let
bpycv_example_data = fetchFromGitHub {
owner = "DIYer22";
repo = "bpycv_example_data";
sha256 = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q=";
rev = "6ce0e65c107d572011394da16ffdf851e988dbb4";
};
in ''
TEMPDIR=$(mktemp -d)
pushd $TEMPDIR
cp -r ${bpycv_example_data} example_data
chmod +w -R example_data
BPY_EXAMPLE_DATA=${bpycv_example_data} blender -b -P ${./bpycv-test.py}
popd
'';
meta = with lib; {
description = "Computer vision utils for Blender";
homepage = "https://github.com/DIYer22/bpycv";
license = licenses.mit;
maintainers = with maintainers; [ lucasew ];
};
}

View file

@ -7,6 +7,7 @@
, click-didyoumean
, click-plugins
, click-repl
, dnspython
, fetchPypi
, kombu
, moto
@ -22,14 +23,14 @@
buildPythonPackage rec {
pname = "celery";
version = "5.2.1";
version = "5.2.3";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "b41a590b49caf8e6498a57db628e580d5f8dc6febda0f42de5d783aed5b7f808";
hash = "sha256-4s1BZnrZfU9qL0Zy0cam662hlMYZJTBYtfI3BKqtqoI=";
};
propagatedBuildInputs = [
@ -46,6 +47,7 @@ buildPythonPackage rec {
checkInputs = [
boto3
case
dnspython
moto
pymongo
pytest-celery
@ -54,6 +56,11 @@ buildPythonPackage rec {
pytestCheckHook
];
postPatch = ''
substituteInPlace requirements/default.txt \
--replace "setuptools>=59.1.1,<59.7.0" "setuptools"
'';
disabledTestPaths = [
# test_eventlet touches network
"t/unit/concurrency/test_eventlet.py"
@ -75,6 +82,6 @@ buildPythonPackage rec {
description = "Distributed task queue";
homepage = "https://github.com/celery/celery/";
license = licenses.bsd3;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ fab ];
};
}

View file

@ -17,7 +17,8 @@
buildPythonPackage rec {
pname = "cloudsplaining";
version = "0.4.9";
version = "0.4.10";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -25,7 +26,7 @@ buildPythonPackage rec {
owner = "salesforce";
repo = pname;
rev = version;
sha256 = "sha256-87ZUYHN64gnbF2g9BjPFNbwMaGFxAy3Yb8UdT3BUqC0=";
hash = "sha256-zTsqrHu8eQsQ4ZFocvHdVsgCjWE6JVrlyaztFNir2fk=";
};
propagatedBuildInputs = [

View file

@ -1,23 +1,36 @@
{ lib
, buildPythonPackage
, fetchPypi
, unittest2
, python
, pythonOlder
}:
buildPythonPackage rec {
pname = "contextlib2";
version = "21.6.0";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869";
hash = "sha256-qx4r/h0B2Wjht+jZAjvFHvNQm7ohe7cwzuOCfh7oKGk=";
};
checkInputs = [ unittest2 ];
checkPhase = ''
runHook preCheck
${python.interpreter} -m unittest discover
runHook postCheck
'';
meta = {
pythonImportsCheck = [
"contextlib2"
];
meta = with lib; {
description = "Backports and enhancements for the contextlib module";
homepage = "https://contextlib2.readthedocs.org/";
license = lib.licenses.psfl;
license = licenses.psfl;
maintainers = with maintainers; [ ];
};
}

View file

@ -2,6 +2,8 @@
, buildPythonPackage
, fetchFromGitHub
, importlib-metadata
, jsonschema
, lxml
, packageurl-python
, poetry-core
, pytestCheckHook
@ -11,12 +13,11 @@
, toml
, types-setuptools
, types-toml
, tox
}:
buildPythonPackage rec {
pname = "cyclonedx-python-lib";
version = "0.12.3";
version = "1.0.0";
format = "pyproject";
disabled = pythonOlder "3.6";
@ -25,7 +26,7 @@ buildPythonPackage rec {
owner = "CycloneDX";
repo = pname;
rev = "v${version}";
sha256 = "1404wcwjglq025n8ncsrl2h64g1sly83cs9sc6jpiw1g5ay4a1vi";
hash = "sha256-BEug6F0uerkLoVJbJF19YIF96Xs2vJET2BUJFi9A5Qo=";
};
nativeBuildInputs = [
@ -43,16 +44,11 @@ buildPythonPackage rec {
];
checkInputs = [
jsonschema
lxml
pytestCheckHook
tox
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'setuptools = "^50.3.2"' 'setuptools = "*"' \
--replace 'importlib-metadata = "^4.8.1"' 'importlib-metadata = "*"'
'';
pythonImportsCheck = [
"cyclonedx"
];

View file

@ -13,11 +13,13 @@
, pytestCheckHook
, requests
, isPy3k
, pythonAtLeast
}:
buildPythonPackage rec {
pname = "debugpy";
version = "1.5.1";
format = "setuptools";
src = fetchFromGitHub {
owner = "Microsoft";
@ -67,6 +69,7 @@ buildPythonPackage rec {
)'';
doCheck = isPy3k;
checkInputs = [
django
flask
@ -79,9 +82,25 @@ buildPythonPackage rec {
];
# Override default arguments in pytest.ini
pytestFlagsArray = [ "--timeout=0" "-n=$NIX_BUILD_CORES" ];
pytestFlagsArray = [
"--timeout=0"
"-n=$NIX_BUILD_CORES"
];
pythonImportsCheck = [ "debugpy" ];
disabledTests = lib.optionals (pythonAtLeast "3.10") [
"test_flask_breakpoint_multiproc"
"test_subprocess[program-launch-None]"
"test_systemexit[0-zero-uncaught-raised-launch(integratedTerminal)-module]"
"test_systemexit[0-zero-uncaught--attach_pid-program]"
"test_success_exitcodes[-break_on_system_exit_zero-0-attach_listen(cli)-module]"
"test_success_exitcodes[--0-attach_connect(api)-program]"
"test_run[code-attach_connect(api)]"
"test_subprocess[program-launch-None]"
];
pythonImportsCheck = [
"debugpy"
];
meta = with lib; {
description = "An implementation of the Debug Adapter Protocol for Python";

View file

@ -12,12 +12,14 @@
buildPythonPackage rec {
pname = "deemix";
version = "3.6.5";
version = "3.6.6";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "c56245b2a2142dafb0658d60919ccf34e04e5d87720d5909e0e030521349a65a";
sha256 = "sha256-xEahzA1PIrGPfnnOcuXQLVQpSVOUFk6/0v9ViLgWCwk=";
};
propagatedBuildInputs = [
@ -31,18 +33,14 @@ buildPythonPackage rec {
# Project has no tests
doCheck = false;
pythonImportsCheck = [
"spotipy"
"click"
"Cryptodome"
"mutagen"
"requests"
"deezer"
];
meta = with lib; {
homepage = "https://git.freezer.life/RemixDev/deemix-py";
description = "Deezer downloader built from the ashes of Deezloader Remix";
homepage = "https://git.freezerapp.xyz/RemixDev/deemix-py";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ natto1784 ];
};

View file

@ -1,59 +1,54 @@
{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, django
{ lib
, buildPythonPackage
, fetchFromGitHub
, django
, factory_boy
, glibcLocales
, mock
, pygments
, pytest
, pytest-cov
, pytest-django
, python-dateutil
, pytestCheckHook
, shortuuid
, six
, tox
, typing ? null
, vobject
, werkzeug
}:
buildPythonPackage rec {
pname = "django-extensions";
version = "3.1.3";
version = "3.1.5";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "03mhikhh49z8bxajbjf1j790b9c9vl4zf4f86iwz7g0zrd7jqlvm";
sha256 = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM=";
};
LC_ALL = "en_US.UTF-8";
postPatch = ''
substituteInPlace setup.cfg \
--replace "--cov=django_extensions --cov-report html --cov-report term" ""
'';
propagatedBuildInputs = [
django
];
__darwinAllowLocalNetworking = true;
propagatedBuildInputs = [ six ]
++ lib.optional (pythonOlder "3.5") typing;
checkInputs = [
django
factory_boy
glibcLocales
mock
pygments # not explicitly declared in setup.py, but some tests require it
pytest
pytest-cov
pytest-django
python-dateutil
pytestCheckHook
shortuuid
tox
vobject
werkzeug
];
# remove tests that need network access
checkPhase = ''
rm tests/management/commands/test_pipchecker.py
DJANGO_SETTINGS_MODULE=tests.testapp.settings \
pytest django_extensions tests
'';
disabledTestPaths = [
# requires network access
"tests/management/commands/test_pipchecker.py"
];
meta = with lib; {
description = "A collection of custom extensions for the Django Framework";

View file

@ -1,19 +1,21 @@
{ lib
, fetchPypi
, isPy27
, buildPythonPackage
, traits
, apptools
, pytestCheckHook
, buildPythonPackage
, fetchPypi
, ipython
, pytestCheckHook
, pythonAtLeast
, pythonOlder
, setuptools
, traits
}:
buildPythonPackage rec {
pname = "envisage";
version = "6.0.1";
format = "setuptools";
disabled = isPy27;
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
@ -22,7 +24,11 @@ buildPythonPackage rec {
# for the optional dependency ipykernel, only versions < 6 are
# supported, so it's not included in the tests, and not propagated
propagatedBuildInputs = [ traits apptools setuptools ];
propagatedBuildInputs = [
traits
apptools
setuptools
];
preCheck = ''
export HOME=$PWD/HOME
@ -33,10 +39,20 @@ buildPythonPackage rec {
pytestCheckHook
];
disabledTestPaths = lib.optionals (pythonAtLeast "3.10") [
# https://github.com/enthought/envisage/issues/455
"envisage/tests/test_egg_basket_plugin_manager.py"
"envisage/tests/test_egg_plugin_manager.py"
];
pythonImportsCheck = [
"envisage"
];
meta = with lib; {
description = "Framework for building applications whose functionalities can be extended by adding 'plug-ins'";
description = "Framework for building applications whose functionalities can be extended by adding plug-ins";
homepage = "https://github.com/enthought/envisage";
maintainers = with lib.maintainers; [ knedlsepp ];
license = licenses.bsdOriginal;
maintainers = with lib.maintainers; [ knedlsepp ];
};
}

View file

@ -1,7 +1,7 @@
{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, fetchFromGitHub
, pythonOlder
, dnspython
, greenlet
@ -10,22 +10,35 @@
, nose
, pyopenssl
, iana-etc
, pytestCheckHook
, libredirect
}:
buildPythonPackage rec {
pname = "eventlet";
version = "0.33.0";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "80144f489c1bb273a51b6f96ff9785a382d2866b9bab1f5bd748385019f4141f";
src = fetchFromGitHub {
owner = "eventlet";
repo = pname;
rev = "v${version}";
hash = "sha256-kE/eYBbaTt1mPGoUIMhonvFBlQOdAfPU5GvCvPaRHvs=";
};
propagatedBuildInputs = [ dnspython greenlet pyopenssl six ]
++ lib.optional (pythonOlder "3.5") monotonic;
propagatedBuildInputs = [
dnspython
greenlet
pyopenssl
six
] ++ lib.optional (pythonOlder "3.5") [
monotonic
];
checkInputs = [ nose ];
checkInputs = [
pytestCheckHook
nose
];
doCheck = !stdenv.isDarwin;
@ -37,23 +50,48 @@ buildPythonPackage rec {
export EVENTLET_IMPORT_VERSION_ONLY=0
'';
checkPhase = ''
runHook preCheck
disabledTests = [
# Tests requires network access
"test_017_ssl_zeroreturnerror"
"test_getaddrinfo"
"test_hosts_no_network"
"test_leakage_from_tracebacks"
"test_patcher_existing_locks_locked"
];
# test_fork-after_monkey_patch fails on aarch64 on hydra only
# AssertionError: Expected single line "pass" in stdout
nosetests --exclude test_getaddrinfo --exclude test_hosts_no_network --exclude test_fork_after_monkey_patch
runHook postCheck
'';
disabledTestPaths = [
# Tests are out-dated
"tests/stdlib/test_asynchat.py"
"tests/stdlib/test_asyncore.py"
"tests/stdlib/test_ftplib.py"
"tests/stdlib/test_httplib.py"
"tests/stdlib/test_httpservers.py"
"tests/stdlib/test_os.py"
"tests/stdlib/test_queue.py"
"tests/stdlib/test_select.py"
"tests/stdlib/test_SimpleHTTPServer.py"
"tests/stdlib/test_socket_ssl.py"
"tests/stdlib/test_socket.py"
"tests/stdlib/test_socketserver.py"
"tests/stdlib/test_ssl.py"
"tests/stdlib/test_subprocess.py"
"tests/stdlib/test_thread__boundedsem.py"
"tests/stdlib/test_thread.py"
"tests/stdlib/test_threading_local.py"
"tests/stdlib/test_threading.py"
"tests/stdlib/test_timeout.py"
"tests/stdlib/test_urllib.py"
"tests/stdlib/test_urllib2_localnet.py"
"tests/stdlib/test_urllib2.py"
];
# unfortunately, it needs /etc/protocol to be present to not fail
# pythonImportsCheck = [ "eventlet" ];
meta = with lib; {
homepage = "https://github.com/eventlet/eventlet/";
description = "A concurrent networking library for Python";
maintainers = with maintainers; [ SuperSandro2000 ];
homepage = "https://github.com/eventlet/eventlet/";
license = licenses.mit;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "flux-led";
version = "0.28.0";
version = "0.28.1";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "Danielhiversen";
repo = "flux_led";
rev = version;
sha256 = "sha256-6IJxOQIRUfmf+tE5CxIlu7EZBp6j8BeVO2mKKW0VWBY=";
sha256 = "sha256-4Er9n3dx2j4/dAmNiQVGh7vwbjtKk8+KOFClyDrLOsk=";
};
propagatedBuildInputs = [

View file

@ -4,24 +4,47 @@
, boltons
, attrs
, face
, pytest
, pytestCheckHook
, pyyaml
, pythonOlder
}:
buildPythonPackage rec {
pname = "glom";
version = "20.11.0";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "54051072bccc9cdb3ebbd8af0559195137a61d308f04bff19678e4b61350eb12";
hash = "sha256-VAUQcrzMnNs+u9ivBVkZUTemHTCPBL/xlnjkthNQ6xI=";
};
propagatedBuildInputs = [ boltons attrs face ];
propagatedBuildInputs = [
boltons
attrs
face
];
checkInputs = [ pytest pyyaml ];
# test_cli.py checks the output of running "glom"
checkPhase = "PATH=$out/bin:$PATH pytest glom/test";
checkInputs = [
pytestCheckHook
pyyaml
];
preCheck = ''
# test_cli.py checks the output of running "glom"
export PATH=$out/bin:$PATH
'';
disabledTests = [
# Test is outdated (was made for PyYAML 3.x)
"test_main_yaml_target"
];
pythonImportsCheck = [
"glom"
];
meta = with lib; {
homepage = "https://github.com/mahmoud/glom";

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "igraph";
version = "0.9.8";
version = "0.9.9";
disabled = pythonOlder "3.6";
@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "igraph";
repo = "python-igraph";
rev = version;
sha256 = "sha256-RtvT5/LZ/xP68yBB7DDKJGeNCiX4HyPTCuk+Ijd2nFs=";
hash = "sha256-jHK8whCg+WitRSL5LmkqfdqiAdi9vZPicygzKThnW2U=";
};
nativeBuildInputs = [

View file

@ -1,27 +1,28 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchPypi
, amqp
, vine
, cached-property
, importlib-metadata
, azure-servicebus
, buildPythonPackage
, cached-property
, case
, fetchPypi
, importlib-metadata
, Pyro4
, pytestCheckHook
, pythonOlder
, pytz
, vine
}:
buildPythonPackage rec {
pname = "kombu";
version = "5.2.2";
version = "5.2.3";
format = "setuptools";
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "0f5d0763fb916808f617b886697b2be28e6bc35026f08e679697fc814b48a608";
hash = "sha256-gakMHel+CNPbN9vxY+qvZnRF4QaMmL/YnwUaQOn2270=";
};
propagatedBuildInputs = [
@ -40,9 +41,14 @@ buildPythonPackage rec {
pytz
];
pythonImportsCheck = [
"kombu"
];
meta = with lib; {
description = "Messaging library for Python";
homepage = "https://github.com/celery/kombu";
license = licenses.bsd3;
homepage = "https://github.com/celery/kombu";
license = licenses.bsd3;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -4,6 +4,7 @@
, marshmallow
, marshmallow-enum
, pytestCheckHook
, pythonAtLeast
, pythonOlder
, typeguard
, typing-inspect
@ -34,7 +35,20 @@ buildPythonPackage rec {
typeguard
];
pythonImportsCheck = [ "marshmallow_dataclass" ];
pytestFlagsArray = [
# DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12.
"-W"
"ignore::DeprecationWarning"
];
disabledTests = lib.optionals (pythonAtLeast "3.10") [
# TypeError: UserId is not a dataclass and cannot be turned into one.
"test_newtype"
];
pythonImportsCheck = [
"marshmallow_dataclass"
];
meta = with lib; {
description = "Automatic generation of marshmallow schemas from dataclasses";

View file

@ -1,16 +1,27 @@
{ lib, buildPythonPackage, pythonOlder, fetchPypi, wrapQtAppsHook
, pyface, pygments, numpy, vtk, traitsui, envisage, apptools, pyqt5
{ lib
, apptools
, buildPythonPackage
, envisage
, fetchPypi
, numpy
, pyface
, pygments
, pyqt5
, pythonOlder
, traitsui
, vtk
, wrapQtAppsHook
}:
buildPythonPackage rec {
pname = "mayavi";
version = "4.7.4";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
extension = "tar.gz";
sha256 = "ec50e7ec6afb0f9224ad1863d104a0d1ded6c8deb13e720652007aaca2303332";
};
@ -24,14 +35,27 @@ buildPythonPackage rec {
--replace "build.build.run(self)" "build.build.run(self); return"
'';
nativeBuildInputs = [ wrapQtAppsHook ];
propagatedBuildInputs = [
pyface pygments numpy vtk traitsui envisage apptools pyqt5
nativeBuildInputs = [
wrapQtAppsHook
];
doCheck = false; # Needs X server
pythonImportsCheck = [ "mayavi" ];
propagatedBuildInputs = [
apptools
envisage
numpy
pyface
pygments
pyqt5
traitsui
vtk
];
# Needs X server
doCheck = false;
pythonImportsCheck = [
"mayavi"
];
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
@ -40,7 +64,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "3D visualization of scientific data in Python";
homepage = "https://github.com/enthought/mayavi";
maintainers = with maintainers; [ knedlsepp ];
license = licenses.bsdOriginal;
maintainers = with maintainers; [ knedlsepp ];
};
}

View file

@ -0,0 +1,31 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
, numpy
, pillow
}:
buildPythonPackage rec {
pname = "minexr";
version = "1.0.1";
src = fetchFromGitHub {
owner = "cheind";
repo = "py-minexr";
rev = "v${version}";
sha256 = "sha256-Om67ttAHxu7C3IwPB+JHYi78E9qBi1E6layMVg4+S3M=";
};
propagatedBuildInputs = [ numpy ];
pythonImportsCheck = [ "minexr" ];
checkInputs = [ pytestCheckHook pillow ];
meta = with lib; {
description = "Minimal, standalone OpenEXR reader for single-part, uncompressed scan line files.";
homepage = "https://github.com/cheind/py-minexr";
license = licenses.mit;
maintainers = with maintainers; [ lucasew ];
};
}

View file

@ -0,0 +1,61 @@
{ lib
, fetchFromGitHub
, buildPythonPackage
, pythonOlder
, smbus-cffi
, urwid
}:
buildPythonPackage rec {
pname = "pijuice";
version = "1.7";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "PiSupply";
repo = "PiJuice";
# rev hash retrieved from the latest modification on file Software/Source/VERSION, as this project
# does not use Github tags facility
rev = "3ba6719ab614a3dc7495d5d9c900dd4ea977c7e3";
sha256 = "GoNN07YgVaktpeY5iYDbfpy5fxkU1x0V3Sb1hgGAQt4=";
};
patches = [
# The pijuice_cli.cli file doesn't have a shebang as the first line of the
# script. Without it, the pythonWrapPrograms hook will not wrap the program.
# Add a python shebang here so that the the hook is triggered.
./patch-shebang.diff
];
PIJUICE_BUILD_BASE = 1;
preBuild = ''
cd Software/Source
'';
propagatedBuildInputs = [ smbus-cffi urwid ];
# Remove the following files from the package:
#
# pijuice_cli - A precompiled ELF binary that is a setuid wrapper for calling
# pijuice_cli.py
#
# pijuiceboot - a precompiled ELF binary for flashing firmware. Not needed for
# the python library.
#
# pijuice_sys.py - A program that acts as a system daemon for monitoring the
# pijuice.
preFixup = ''
rm $out/bin/pijuice_cli
rm $out/bin/pijuice_sys.py
rm $out/bin/pijuiceboot
mv $out/bin/pijuice_cli.py $out/bin/pijuice_cli
'';
meta = with lib; {
description = "Library and resources for PiJuice HAT for Raspberry Pi";
homepage = "https://github.com/PiSupply/PiJuice";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ hexagonal-sun ];
};
}

View file

@ -0,0 +1,9 @@
diff --git a/Software/Source/src/pijuice_cli.py b/Software/Source/src/pijuice_cli.py
index c366fee..37af383 100644
--- a/Software/Source/src/pijuice_cli.py
+++ b/Software/Source/src/pijuice_cli.py
@@ -1,3 +1,4 @@
+#!/usr/bin/python3
# This python script to be executed as user pijuice by the setuid program pijuice_cli
# Python 3 only
#

View file

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pontos";
version = "22.1.0";
version = "22.1.1";
format = "pyproject";
disabled = pythonOlder "3.7";
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "greenbone";
repo = pname;
rev = "v${version}";
sha256 = "sha256-/C7BiKWdMcUuKXxPTdttT79YjBDmwj9CG5W38YZHw2c=";
sha256 = "sha256-p7E86McHeijsXpaByD5qLHYQLnSImLwHn15INyxWiZc=";
};
nativeBuildInputs = [

View file

@ -48,11 +48,12 @@ buildPythonPackage rec {
"TestMoveSCPCLI"
"TestQRGetServiceClass"
"TestQRMoveServiceClass"
"TestState"
"TestStorageServiceClass"
"TestStoreSCP"
"TestStoreSCPCLI"
"TestStoreSCU"
"TestStoreSCUCLI"
"TestState"
];
pythonImportsCheck = [

View file

@ -0,0 +1,34 @@
{ lib
, buildPythonPackage
, fetchPypi
, numpy
, nose
}:
buildPythonPackage rec {
pname = "pyquaternion";
version = "0.9.9";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-sfYa8hnLL+lmtft5oZISTy5jo/end6w8rfKVexqBvqg=";
};
# The VERSION.txt file is required for setup.py
# See: https://github.com/KieranWynn/pyquaternion/blob/master/setup.py#L14-L15
postPatch = ''
echo "${version}" > VERSION.txt
'';
propagatedBuildInputs = [ numpy ];
checkInputs = [ nose ];
pythonImportsCheck = [ "pyquaternion" ];
meta = with lib; {
description = "Library for representing and using quaternions.";
homepage = "http://kieranwynn.github.io/pyquaternion/";
license = licenses.mit;
maintainers = with maintainers; [ lucasew ];
};
}

View file

@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "python_http_client";
version = "3.3.4";
version = "3.3.5";
format = "setuptools";
disabled = pythonOlder "3.8";
@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "sendgrid";
repo = "python-http-client";
rev = version;
sha256 = "sha256-wTXHq+tC+rfvmDZIWvcGhQZqm6DxOmx50BsX0c6asec=";
sha256 = "sha256-VSrh6t9p7Xb8HqAwcuDSUD2Pj3NcXeg7ygKLG2MHFxk=";
};
checkInputs = [
@ -25,12 +25,6 @@ buildPythonPackage rec {
pytestCheckHook
];
disabledTests = [
# Test is failing as the test is dynamic
# https://github.com/sendgrid/python-http-client/issues/153
"test__daterange"
];
pythonImportsCheck = [
"python_http_client"
];

View file

@ -11,13 +11,13 @@
buildPythonPackage rec {
pname = "restfly";
version = "1.4.4";
version = "1.4.5";
src = fetchFromGitHub {
owner = "stevemcgrath";
repo = pname;
rev = version;
sha256 = "sha256-T5NfG+Vuguh6xZ/Rdx3a1vMDgXPcl/OYhOkxb76yEXg=";
sha256 = "sha256-wWFf8LFZkwzbHX545tA5w2sB3ClL7eFuF+jGX0fSiSc=";
};
propagatedBuildInputs = [

View file

@ -1,28 +1,41 @@
{ lib, buildPythonPackage, fetchPypi, contextlib2, pytest, mock }:
{ lib
, buildPythonPackage
, contextlib2
, fetchPypi
, mock
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "schema";
version = "0.7.5";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "f06717112c61895cabc4707752b88716e8420a8819d71404501e114f91043197";
hash = "sha256-8GcXESxhiVyrxHB3UriHFuhCCogZ1xQEUB4RT5EEMZc=";
};
preConfigure = ''
substituteInPlace requirements.txt --replace '==' '>='
'';
propagatedBuildInputs = [
contextlib2
];
propagatedBuildInputs = [ contextlib2 ];
checkInputs = [
mock
pytestCheckHook
];
checkInputs = [ pytest mock ];
checkPhase = "pytest ./test_schema.py";
pythonImportsCheck = [
"schema"
];
meta = with lib; {
description = "Library for validating Python data structures";
homepage = "https://github.com/keleshev/schema";
license = licenses.mit;
maintainers = [ maintainers.tobim ];
maintainers = with maintainers; [ tobim ];
};
}

View file

@ -4,6 +4,7 @@
, flask
, pytestCheckHook
, python-http-client
, pythonOlder
, pyyaml
, starkbank-ecdsa
, werkzeug
@ -11,14 +12,16 @@
buildPythonPackage rec {
pname = "sendgrid";
version = "6.9.3";
version = "6.9.4";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = pname;
repo = "sendgrid-python";
rev = version;
sha256 = "sha256-/4Wk+1zAFwK+FxRhABQBha43/zapgPDfTFGrPJjXA7s=";
sha256 = "sha256-xNd0IPhaVw4X6URsg6hrDJhxmBRWam4bqgLN0uvMUxI=";
};
propagatedBuildInputs = [

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