Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-10-02 00:16:14 +00:00 committed by GitHub
commit 2eb05ff3a1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
228 changed files with 12673 additions and 7412 deletions

View File

@ -163,6 +163,15 @@ fbdcdde04a7caa007e825a8b822c75fab9adb2d6
# step-cli: format package.nix with nixfmt (#331629)
fc7a83f8b62e90de5679e993d4d49ca014ea013d
# ndn-cxx: format with nixfmt-rfc-style
160b2b769c3b8a6d1ae9947afa77520fa2887db7
# ndn-tools: format with nixfmt-rfc-style
4882ef721ce3d7bb3b5e48ff80125255db515013
# nfd: format with nixfmt-rfc-style
548c2377fa81e2abfc192fbf4f521e601251c468
# darwin.stdenv: format with nixfmt-rfc-style (#333962)
93c10ac9e561c6594d3baaeaff2341907390d9b8

View File

@ -4,7 +4,7 @@
The end result of running Bower is a `bower_components` directory which can be included in the web app's build process.
Bower can be run interactively, by installing `nodePackages.bower`. More interestingly, the Bower components can be declared in a Nix derivation, with the help of `nodePackages.bower2nix`.
Bower can be run interactively, by installing `nodePackages.bower`. More interestingly, the Bower components can be declared in a Nix derivation, with the help of `bower2nix`.
## bower2nix usage {#ssec-bower2nix-usage}

View File

@ -3286,6 +3286,12 @@
{ fingerprint = "8916 F727 734E 77AB 437F A33A 19AB 76F5 CEE1 1392"; }
];
};
CaiqueFigueiredo = {
email = "public@caiquefigueiredo.me";
github = "caiquefigueiredo";
githubId = 20440897;
name = "Caique";
};
CaitlinDavitt = {
email = "CaitlinDavitt@gmail.com";
github = "CaitlinDavitt";
@ -14253,6 +14259,12 @@
githubId = 42215704;
name = "Moritz Böhme";
};
mortenmunk = {
email = "mortenmunk97@gmail.com";
github = "MortenMunk";
githubId = 92527083;
name = "Morten Munk";
};
MostAwesomeDude = {
email = "cds@corbinsimpson.com";
github = "MostAwesomeDude";

View File

@ -219,6 +219,9 @@
- The logrotate service has received hardening and now requires enabling `allowNetworking`, if logrotate needs to access the network.
- qBittorrent has been updated to major version 5, which drops support for Qt 5.
The `qbittorrent-qt5` package has been removed.
- The fcgiwrap module now allows multiple instances running as distinct users.
The option `services.fgciwrap` now takes an attribute set of the
configuration of each individual instance.
@ -551,6 +554,12 @@
Note that first solution of the [official FAQ answer](https://cloud.seatable.io/dtable/external-links/7b976c85f504491cbe8e/?tid=0000&vid=0000&row-id=BQhH-2HSQs68Nq2EW91DBA)
is not allowed by the `services.nginx` module's config-checker.
- The latest available version of Nextcloud is v30 (available as `pkgs.nextcloud30`). The installation logic is as follows:
- If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
- If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud29` will be installed by default.
- If [`system.stateVersion`](#opt-system.stateVersion) is >=24.11, `pkgs.nextcloud30` will be installed by default.
- Please note that an upgrade from v28 (or older) to v30 directly is not possible. Please upgrade to `nextcloud29` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud29;`](options.html#opt-services.nextcloud.package).
- To facilitate dependency injection, the `imgui` package now builds a static archive using vcpkg' CMake rules.
The derivation now installs "impl" headers selectively instead of by a wildcard.
Use `imgui.src` if you just want to access the unpacked sources.

View File

@ -30,7 +30,7 @@
, imageFileBasename
, compression
, fileSystems
, partitionsJSON
, finalPartitions
, split
, seed
, definitionsDirectory
@ -110,7 +110,9 @@ in
env = mkfsEnv;
inherit partitionsJSON definitionsDirectory;
inherit finalPartitions definitionsDirectory;
partitionsJSON = builtins.toJSON finalAttrs.finalPartitions;
# relative path to the repart definitions that are read by systemd-repart
finalRepartDefinitions = "repart.d";
@ -136,7 +138,7 @@ in
patchPhase = ''
runHook prePatch
amendedRepartDefinitionsDir=$(${amendRepartDefinitions} $partitionsJSON $definitionsDirectory)
amendedRepartDefinitionsDir=$(${amendRepartDefinitions} <(echo "$partitionsJSON") $definitionsDirectory)
ln -vs $amendedRepartDefinitionsDir $finalRepartDefinitions
runHook postPatch

View File

@ -163,21 +163,20 @@ in
createEmpty = false;
}).overrideAttrs
(
finalAttrs: previousAttrs:
let
copyUki = "CopyFiles=${config.system.build.uki}/${config.system.boot.loader.ukiFile}:${cfg.ukiPath}";
in
{
finalAttrs: previousAttrs: {
# add entry to inject UKI into ESP
finalPartitions = lib.recursiveUpdate previousAttrs.finalPartitions {
${cfg.partitionIds.esp}.contents = {
"${cfg.ukiPath}".source = "${config.system.build.uki}/${config.system.boot.loader.ukiFile}";
};
};
nativeBuildInputs = previousAttrs.nativeBuildInputs ++ [
pkgs.systemdUkify
verityHashCheck
pkgs.jq
];
postPatch = ''
# add entry to inject UKI into ESP
echo '${copyUki}' >> $finalRepartDefinitions/${cfg.partitionIds.esp}.conf
'';
preBuild = ''
# check that we build the final image with the same intermediate image for
# which the injected UKI was built by comparing the UKI cmdline with the repart output
@ -194,6 +193,24 @@ in
chmod +w ${config.image.repart.imageFileBasename}.raw
'';
# replace "TBD" with the original roothash values
preInstall = ''
mv -v repart-output{.json,_orig.json}
jq --slurp --indent -1 \
'.[0] as $intermediate | .[1] as $final
| $intermediate | map(select(.roothash != null) | { "uuid":.uuid,"roothash":.roothash }) as $uuids
| $final + $uuids
| group_by(.uuid)
| map(add)
| sort_by(.offset)' \
${config.system.build.intermediateImage}/repart-output.json \
repart-output_orig.json \
> repart-output.json
rm -v repart-output_orig.json
'';
# the image will be self-contained so we can drop references
# to the closure that was used to build it
unsafeDiscardReferences.out = true;

View File

@ -318,14 +318,12 @@ in
format
(lib.mapAttrs (_n: v: { Partition = v.repartConfig; }) cfg.finalPartitions);
partitionsJSON = pkgs.writeText "partitions.json" (builtins.toJSON cfg.finalPartitions);
mkfsEnv = mkfsOptionsToEnv cfg.mkfsOptions;
in
pkgs.callPackage ./repart-image.nix {
systemd = cfg.package;
inherit (cfg) name version imageFileBasename compression split seed sectorSize;
inherit fileSystems definitionsDirectory partitionsJSON mkfsEnv;
inherit (cfg) name version imageFileBasename compression split seed sectorSize finalPartitions;
inherit fileSystems definitionsDirectory mkfsEnv;
};
meta.maintainers = with lib.maintainers; [ nikstur willibutz ];

View File

@ -273,6 +273,7 @@ in {
after = [ "network.target" ];
environment = carbonEnv;
serviceConfig = {
Slice = "system-graphite.slice";
RuntimeDirectory = name;
ExecStart = "${pkgs.python3Packages.twisted}/bin/twistd ${carbonOpts name}";
User = "graphite";
@ -295,6 +296,7 @@ in {
after = [ "network.target" ];
environment = carbonEnv;
serviceConfig = {
Slice = "system-graphite.slice";
RuntimeDirectory = name;
ExecStart = "${pkgs.python3Packages.twisted}/bin/twistd ${carbonOpts name}";
User = "graphite";
@ -311,6 +313,7 @@ in {
after = [ "network.target" ];
environment = carbonEnv;
serviceConfig = {
Slice = "system-graphite.slice";
RuntimeDirectory = name;
ExecStart = "${pkgs.python3Packages.twisted}/bin/twistd ${carbonOpts name}";
User = "graphite";
@ -360,6 +363,7 @@ in {
User = "graphite";
Group = "graphite";
PermissionsStartOnly = true;
Slice = "system-graphite.slice";
};
preStart = ''
if ! test -e ${dataDir}/db-created; then
@ -397,6 +401,7 @@ in {
WorkingDirectory = dataDir;
User = "graphite";
Group = "graphite";
Slice = "system-graphite.slice";
};
preStart = ''
if ! test -e ${dataDir}/db-created; then
@ -413,6 +418,11 @@ in {
cfg.carbon.enableCache || cfg.carbon.enableAggregator || cfg.carbon.enableRelay ||
cfg.web.enable || cfg.seyren.enable
) {
systemd.slices.system-graphite = {
description = "Graphite Graphing System Slice";
documentation = [ "https://graphite.readthedocs.io/en/latest/overview.html" ];
};
users.users.graphite = {
uid = config.ids.uids.graphite;
group = "graphite";

View File

@ -5,7 +5,7 @@ self-hostable cloud platform. The server setup can be automated using
[services.nextcloud](#opt-services.nextcloud.enable). A
desktop client is packaged at `pkgs.nextcloud-client`.
The current default by NixOS is `nextcloud29` which is also the latest
The current default by NixOS is `nextcloud30` which is also the latest
major version available.
## Basic usage {#module-services-nextcloud-basic-usage}

View File

@ -300,7 +300,7 @@ in {
package = mkOption {
type = types.package;
description = "Which package to use for the Nextcloud instance.";
relatedPackages = [ "nextcloud28" "nextcloud29" ];
relatedPackages = [ "nextcloud28" "nextcloud29" "nextcloud30" ];
};
phpPackage = mkPackageOption pkgs "php" {
example = "php82";
@ -821,7 +821,7 @@ in {
config = mkIf cfg.enable (mkMerge [
{ warnings = let
latest = 29;
latest = 30;
upgradeWarning = major: nixos:
''
A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
@ -847,11 +847,11 @@ in {
If you have an existing installation with a custom table prefix, make sure it is
set correctly in `config.php` and remove the option from your NixOS config.
'')
++ (optional (versionOlder cfg.package.version "25") (upgradeWarning 24 "22.11"))
++ (optional (versionOlder cfg.package.version "26") (upgradeWarning 25 "23.05"))
++ (optional (versionOlder cfg.package.version "27") (upgradeWarning 26 "23.11"))
++ (optional (versionOlder cfg.package.version "28") (upgradeWarning 27 "24.05"))
++ (optional (versionOlder cfg.package.version "29") (upgradeWarning 28 "24.11"));
++ (optional (versionOlder cfg.package.version "29") (upgradeWarning 28 "24.11"))
++ (optional (versionOlder cfg.package.version "30") (upgradeWarning 29 "24.11"));
services.nextcloud.package = with pkgs;
mkDefault (
@ -862,7 +862,8 @@ in {
`pkgs.nextcloud`.
''
else if versionOlder stateVersion "24.05" then nextcloud27
else nextcloud29
else if versionOlder stateVersion "24.11" then nextcloud29
else nextcloud30
);
services.nextcloud.phpPackage =

View File

@ -239,7 +239,7 @@ in {
daemonize = false;
};
systemd.slices.phpfpm = {
systemd.slices.system-phpfpm = {
description = "PHP FastCGI Process manager pools slice";
};
@ -258,7 +258,7 @@ in {
cfgFile = fpmCfgFile pool poolOpts;
iniFile = phpIni poolOpts;
in {
Slice = "phpfpm.slice";
Slice = "system-phpfpm.slice";
PrivateDevices = true;
PrivateTmp = true;
ProtectSystem = "full";

View File

@ -125,14 +125,6 @@ ln -sfn "$systemConfig" /run/booted-system
@shell@ @postBootCommands@
# Ensure systemd doesn't try to populate /etc, by forcing its first-boot
# heuristic off. It doesn't matter what's in /etc/machine-id for this purpose,
# and systemd will immediately fill in the file when it starts, so just
# creating it is enough. This `: >>` pattern avoids forking and avoids changing
# the mtime if the file already exists.
: >> /etc/machine-id
# No need to restore the stdout/stderr streams we never redirected and
# especially no need to start systemd
if [ "${IN_NIXOS_SYSTEMD_STAGE1:-}" != true ]; then

View File

@ -33,6 +33,7 @@ let
"nss-lookup.target"
"nss-user-lookup.target"
"time-sync.target"
"first-boot-complete.target"
] ++ optionals cfg.package.withCryptsetup [
"cryptsetup.target"
"cryptsetup-pre.target"
@ -568,6 +569,15 @@ in
"systemd/user-generators" = { source = hooks "user-generators" cfg.user.generators; };
"systemd/system-generators" = { source = hooks "system-generators" cfg.generators; };
"systemd/system-shutdown" = { source = hooks "system-shutdown" cfg.shutdown; };
# Ignore all other preset files so systemd doesn't try to enable/disable
# units during runtime.
"systemd/system-preset/00-nixos.preset".text = ''
ignore *
'';
"systemd/user-preset/00-nixos.preset".text = ''
ignore *
'';
});
services.dbus.enable = true;

View File

@ -44,13 +44,13 @@ let
nodes = {
client = { ... }: {};
nextcloud = {
nextcloud = { lib, ... }: {
networking.firewall.allowedTCPPorts = [ 80 ];
services.nextcloud = {
enable = true;
hostName = "nextcloud";
https = false;
database.createLocally = true;
database.createLocally = lib.mkDefault true;
config = {
adminpassFile = "${pkgs.writeText "adminpass" config.adminpass}"; # Don't try this at home!
};
@ -104,9 +104,10 @@ let
});
in map callNextcloudTest [
./basic.nix
./with-declarative-redis-and-secrets.nix
./with-mysql-and-memcached.nix
./with-postgresql-and-redis.nix
./with-objectstore.nix
];
in
listToAttrs (concatMap genTests [ 28 29 ])
listToAttrs (concatMap genTests [ 28 29 30 ])

View File

@ -1,29 +1,18 @@
args@{ nextcloudVersion ? 27, ... }:
(import ../make-test-python.nix ({ pkgs, ...}: let
adminuser = "custom_admin_username";
# This will be used both for redis and postgresql
pass = "hunter2";
# Don't do this at home, use a file outside of the nix store instead
passFile = toString (pkgs.writeText "pass-file" ''
${pass}
'');
in {
name = "nextcloud-with-declarative-redis";
{ name, pkgs, testBase, system, ... }:
with import ../../lib/testing-python.nix { inherit system pkgs; };
runTest ({ config, ... }: let inherit (config) adminuser; in {
inherit name;
meta = with pkgs.lib.maintainers; {
maintainers = [ eqyiel ma27 ];
};
imports = [ testBase ];
nodes = {
# The only thing the client needs to do is download a file.
client = { ... }: {};
nextcloud = { config, pkgs, ... }: {
networking.firewall.allowedTCPPorts = [ 80 ];
environment.systemPackages = [ pkgs.jq ];
services.nextcloud = {
enable = true;
hostName = "nextcloud";
package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
caching = {
apcu = false;
redis = true;
@ -35,10 +24,9 @@ in {
dbtype = "pgsql";
dbname = "nextcloud";
dbuser = adminuser;
dbpassFile = passFile;
adminuser = adminuser;
adminpassFile = passFile;
dbpassFile = config.services.nextcloud.config.adminpassFile;
};
secretFile = "/etc/nextcloud-secrets.json";
settings = {
@ -68,7 +56,7 @@ in {
package = pkgs.postgresql_14;
};
systemd.services.postgresql.postStart = pkgs.lib.mkAfter ''
password=$(cat ${passFile})
password=$(cat ${config.services.nextcloud.config.dbpassFile})
${config.services.postgresql.package}/bin/psql <<EOF
CREATE ROLE ${adminuser} WITH LOGIN PASSWORD '$password' CREATEDB;
CREATE DATABASE nextcloud;
@ -89,38 +77,9 @@ in {
};
};
testScript = let
withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
#!${pkgs.runtimeShell}
export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${adminuser}"
export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${pass})"
"''${@}"
'';
copySharedFile = pkgs.writeScript "copy-shared-file" ''
#!${pkgs.runtimeShell}
echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
'';
diffSharedFile = pkgs.writeScript "diff-shared-file" ''
#!${pkgs.runtimeShell}
diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
'';
in ''
start_all()
nextcloud.wait_for_unit("multi-user.target")
nextcloud.succeed("curl -sSf http://nextcloud/login")
nextcloud.succeed(
"${withRcloneEnv} ${copySharedFile}"
)
client.wait_for_unit("multi-user.target")
client.succeed(
"${withRcloneEnv} ${diffSharedFile}"
)
# redis cache should not be empty
nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
test-helpers.extraTests = ''
with subtest("non-empty redis cache"):
# redis cache should not be empty
nextcloud.fail('test 0 -lt "$(redis-cli --pass secret --json KEYS "*" | jq "len")"')
'';
})) args
})

View File

@ -1,8 +1,8 @@
{ pkgs, testBase, system, ... }:
{ name, pkgs, testBase, system, ... }:
with import ../../lib/testing-python.nix { inherit system pkgs; };
runTest ({ config, ... }: {
name = "nextcloud-with-mysql-and-memcached";
inherit name;
meta = with pkgs.lib.maintainers; {
maintainers = [ eqyiel ];
};

View File

@ -1,48 +1,539 @@
import ./make-test-python.nix ({ lib, pkgs, ... }: {
import ./make-test-python.nix (
{ lib, pkgs, ... }:
let
wg-keys = import ./wireguard/snakeoil-keys.nix;
name = "sing-box";
target_host = "acme.test";
server_host = "sing-box.test";
meta = {
maintainers = with lib.maintainers; [ nickcao ];
};
nodes.machine = { pkgs, ... }: {
environment.systemPackages = [ pkgs.curl ];
services.nginx = {
enable = true;
statusPage = true;
hosts = {
"${target_host}" = "1.1.1.1";
"${server_host}" = "1.1.1.2";
};
services.sing-box = {
enable = true;
settings = {
inbounds = [{
type = "mixed";
tag = "inbound";
listen = "127.0.0.1";
listen_port = 1080;
users = [{
username = "user";
password = { _secret = pkgs.writeText "password" "supersecret"; };
}];
}];
outbounds = [{
type = "direct";
tag = "outbound";
}];
};
hostsEntries = lib.mapAttrs' (k: v: {
name = v;
value = lib.singleton k;
}) hosts;
vmessPort = 1080;
vmessUUID = "bf000d23-0752-40b4-affe-68f7707a9661";
vmessInbound = {
type = "vmess";
tag = "inbound:vmess";
listen = "0.0.0.0";
listen_port = vmessPort;
users = [
{
name = "sekai";
uuid = vmessUUID;
alterId = 0;
}
];
};
vmessOutbound = {
type = "vmess";
tag = "outbound:vmess";
server = server_host;
server_port = vmessPort;
uuid = vmessUUID;
security = "auto";
alter_id = 0;
};
};
testScript = ''
machine.wait_for_unit("nginx.service")
machine.wait_for_unit("sing-box.service")
tunInbound = {
type = "tun";
tag = "inbound:tun";
interface_name = "tun0";
inet4_address = "172.16.0.1/30";
inet6_address = "fd00::1/126";
auto_route = true;
inet4_route_address = [
"${hosts."${target_host}"}/32"
];
inet4_route_exclude_address = [
"${hosts."${server_host}"}/32"
];
strict_route = false;
sniff = true;
sniff_override_destination = false;
};
machine.wait_for_open_port(80)
machine.wait_for_open_port(1080)
tproxyPort = 1081;
tproxyPost = pkgs.writeShellApplication {
name = "exe";
runtimeInputs = with pkgs; [
iproute2
iptables
];
text = ''
ip route add local default dev lo table 100
ip rule add fwmark 1 table 100
machine.succeed("curl --fail --max-time 10 --proxy http://user:supersecret@localhost:1080 http://localhost")
machine.fail("curl --fail --max-time 10 --proxy http://user:supervillain@localhost:1080 http://localhost")
machine.succeed("curl --fail --max-time 10 --proxy socks5://user:supersecret@localhost:1080 http://localhost")
'';
iptables -t mangle -N SING_BOX
iptables -t mangle -A SING_BOX -d 100.64.0.0/10 -j RETURN
iptables -t mangle -A SING_BOX -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A SING_BOX -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A SING_BOX -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A SING_BOX -d 192.0.0.0/24 -j RETURN
iptables -t mangle -A SING_BOX -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX -d 255.255.255.255/32 -j RETURN
})
iptables -t mangle -A SING_BOX -d ${hosts."${server_host}"}/32 -p tcp -j RETURN
iptables -t mangle -A SING_BOX -d ${hosts."${server_host}"}/32 -p udp -j RETURN
iptables -t mangle -A SING_BOX -d ${hosts."${target_host}"}/32 -p tcp -j TPROXY --on-port ${toString tproxyPort} --tproxy-mark 1
iptables -t mangle -A SING_BOX -d ${hosts."${target_host}"}/32 -p udp -j TPROXY --on-port ${toString tproxyPort} --tproxy-mark 1
iptables -t mangle -A PREROUTING -j SING_BOX
iptables -t mangle -N SING_BOX_SELF
iptables -t mangle -A SING_BOX_SELF -d 100.64.0.0/10 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 192.0.0.0/24 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A SING_BOX_SELF -d 255.255.255.255/32 -j RETURN
iptables -t mangle -A SING_BOX_SELF -j RETURN -m mark --mark 1234
iptables -t mangle -A SING_BOX_SELF -d ${hosts."${server_host}"}/32 -p tcp -j RETURN
iptables -t mangle -A SING_BOX_SELF -d ${hosts."${server_host}"}/32 -p udp -j RETURN
iptables -t mangle -A SING_BOX_SELF -p tcp -j MARK --set-mark 1
iptables -t mangle -A SING_BOX_SELF -p udp -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -j SING_BOX_SELF
'';
};
in
{
name = "sing-box";
meta = {
maintainers = with lib.maintainers; [ nickcao ];
};
nodes = {
target =
{ pkgs, ... }:
{
networking = {
firewall.enable = false;
hosts = hostsEntries;
useDHCP = false;
interfaces.eth1 = {
ipv4.addresses = [
{
address = hosts."${target_host}";
prefixLength = 24;
}
];
};
};
services.dnsmasq.enable = true;
services.nginx = {
enable = true;
package = pkgs.nginxQuic;
virtualHosts."${target_host}" = {
onlySSL = true;
sslCertificate = ./common/acme/server/acme.test.cert.pem;
sslCertificateKey = ./common/acme/server/acme.test.key.pem;
http2 = true;
http3 = true;
http3_hq = false;
quic = true;
reuseport = true;
locations."/" = {
extraConfig = ''
default_type text/plain;
return 200 "$server_protocol $remote_addr";
allow ${hosts."${server_host}"}/32;
deny all;
'';
};
};
};
};
server =
{ pkgs, ... }:
{
boot.kernel.sysctl = {
"net.ipv4.conf.all.forwarding" = 1;
};
networking = {
firewall.enable = false;
hosts = hostsEntries;
useDHCP = false;
interfaces.eth1 = {
ipv4.addresses = [
{
address = hosts."${server_host}";
prefixLength = 24;
}
];
};
};
systemd.network.wait-online.ignoredInterfaces = [ "wg0" ];
networking.wg-quick.interfaces.wg0 = {
address = [
"10.23.42.1/24"
];
listenPort = 2408;
mtu = 1500;
inherit (wg-keys.peer0) privateKey;
peers = lib.singleton {
allowedIPs = [
"10.23.42.2/32"
];
inherit (wg-keys.peer1) publicKey;
};
postUp = ''
${pkgs.iptables}/bin/iptables -A FORWARD -i wg0 -j ACCEPT
${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.23.42.0/24 -o eth1 -j MASQUERADE
'';
};
services.sing-box = {
enable = true;
settings = {
inbounds = [
vmessInbound
];
outbounds = [
{
type = "direct";
tag = "outbound:direct";
}
];
};
};
};
tun =
{ pkgs, ... }:
{
networking = {
firewall.enable = false;
hosts = hostsEntries;
useDHCP = false;
interfaces.eth1 = {
ipv4.addresses = [
{
address = "1.1.1.3";
prefixLength = 24;
}
];
};
};
security.pki.certificates = [
(builtins.readFile ./common/acme/server/ca.cert.pem)
];
environment.systemPackages = [
pkgs.curlHTTP3
pkgs.iproute2
];
services.sing-box = {
enable = true;
settings = {
inbounds = [
tunInbound
];
outbounds = [
{
type = "block";
tag = "outbound:block";
}
{
type = "direct";
tag = "outbound:direct";
}
vmessOutbound
];
route = {
final = "outbound:block";
rules = [
{
inbound = [
"inbound:tun"
];
outbound = "outbound:vmess";
}
];
};
};
};
};
wireguard =
{ pkgs, ... }:
{
networking = {
firewall.enable = false;
hosts = hostsEntries;
useDHCP = false;
interfaces.eth1 = {
ipv4.addresses = [
{
address = "1.1.1.4";
prefixLength = 24;
}
];
};
};
security.pki.certificates = [
(builtins.readFile ./common/acme/server/ca.cert.pem)
];
environment.systemPackages = [
pkgs.curlHTTP3
pkgs.iproute2
];
services.sing-box = {
enable = true;
settings = {
outbounds = [
{
type = "block";
tag = "outbound:block";
}
{
type = "direct";
tag = "outbound:direct";
}
{
detour = "outbound:direct";
type = "wireguard";
tag = "outbound:wireguard";
interface_name = "wg0";
local_address = [ "10.23.42.2/32" ];
mtu = 1280;
private_key = wg-keys.peer1.privateKey;
peer_public_key = wg-keys.peer0.publicKey;
server = server_host;
server_port = 2408;
system_interface = true;
}
];
route = {
final = "outbound:block";
};
};
};
};
tproxy =
{ pkgs, ... }:
{
networking = {
firewall.enable = false;
hosts = hostsEntries;
useDHCP = false;
interfaces.eth1 = {
ipv4.addresses = [
{
address = "1.1.1.5";
prefixLength = 24;
}
];
};
};
security.pki.certificates = [
(builtins.readFile ./common/acme/server/ca.cert.pem)
];
environment.systemPackages = [ pkgs.curlHTTP3 ];
systemd.services.sing-box.serviceConfig.ExecStartPost = [
"+${tproxyPost}/bin/exe"
];
services.sing-box = {
enable = true;
settings = {
inbounds = [
{
tag = "inbound:tproxy";
type = "tproxy";
listen = "0.0.0.0";
listen_port = tproxyPort;
udp_fragment = true;
sniff = true;
sniff_override_destination = false;
}
];
outbounds = [
{
type = "block";
tag = "outbound:block";
}
{
type = "direct";
tag = "outbound:direct";
}
vmessOutbound
];
route = {
final = "outbound:block";
rules = [
{
inbound = [
"inbound:tproxy"
];
outbound = "outbound:vmess";
}
];
};
};
};
};
fakeip =
{ pkgs, ... }:
{
networking = {
firewall.enable = false;
hosts = hostsEntries;
useDHCP = false;
interfaces.eth1 = {
ipv4.addresses = [
{
address = "1.1.1.6";
prefixLength = 24;
}
];
};
};
environment.systemPackages = [ pkgs.dnsutils ];
services.sing-box = {
enable = true;
settings = {
dns = {
final = "dns:default";
independent_cache = true;
fakeip = {
enabled = true;
"inet4_range" = "198.18.0.0/16";
};
servers = [
{
detour = "outbound:direct";
tag = "dns:default";
address = hosts."${target_host}";
}
{
tag = "dns:fakeip";
address = "fakeip";
}
];
rules = [
{
outbound = [ "any" ];
server = "dns:default";
}
{
query_type = [
"A"
"AAAA"
];
server = "dns:fakeip";
}
];
};
inbounds = [
tunInbound
];
outbounds = [
{
type = "block";
tag = "outbound:block";
}
{
type = "direct";
tag = "outbound:direct";
}
{
type = "dns";
tag = "outbound:dns";
}
];
route = {
final = "outbound:direct";
rules = [
{
protocol = "dns";
outbound = "outbound:dns";
}
];
};
};
};
};
};
testScript = ''
target.wait_for_unit("nginx.service")
target.wait_for_open_port(443)
target.wait_for_unit("dnsmasq.service")
target.wait_for_open_port(53)
server.wait_for_unit("sing-box.service")
server.wait_for_open_port(1080)
server.wait_for_unit("wg-quick-wg0.service")
server.wait_for_file("/sys/class/net/wg0")
def test_curl(machine, extra_args=""):
assert (
machine.succeed(f"curl --fail --max-time 10 --http2 https://${target_host} {extra_args}")
== "HTTP/2.0 ${hosts.${server_host}}"
)
assert (
machine.succeed(f"curl --fail --max-time 10 --http3-only https://${target_host} {extra_args}")
== "HTTP/3.0 ${hosts.${server_host}}"
)
with subtest("tun"):
tun.wait_for_unit("sing-box.service")
tun.wait_for_unit("sys-devices-virtual-net-tun0.device")
tun.wait_until_succeeds("ip route get ${hosts."${target_host}"} | grep 'dev tun0'")
tun.succeed("ip addr show tun0")
test_curl(tun)
with subtest("wireguard"):
wireguard.wait_for_unit("sing-box.service")
wireguard.wait_for_unit("sys-devices-virtual-net-wg0.device")
wireguard.succeed("ip addr show wg0")
test_curl(wireguard, "--interface wg0")
with subtest("tproxy"):
tproxy.wait_for_unit("sing-box.service")
test_curl(tproxy)
with subtest("fakeip"):
fakeip.wait_for_unit("sing-box.service")
fakeip.wait_for_unit("sys-devices-virtual-net-tun0.device")
fakeip.wait_until_succeeds("ip route get ${hosts."${target_host}"} | grep 'dev tun0'")
fakeip.succeed("dig +short A ${target_host} @${target_host} | grep '^198.18.'")
'';
}
)

View File

@ -75,12 +75,19 @@ import ./make-test-python.nix ({ pkgs, ... }: {
rebootTime = "10min";
kexecTime = "5min";
};
environment.etc."systemd/system-preset/10-testservice.preset".text = ''
disable ${config.systemd.services.testservice1.name}
'';
};
testScript = ''
testScript = { nodes, ... }: ''
import re
import subprocess
# Will not succeed unless ConditionFirstBoot=yes
machine.wait_for_unit("first-boot-complete.target")
machine.wait_for_x()
# wait for user services
machine.wait_for_unit("default.target", "alice")
@ -209,5 +216,9 @@ import ./make-test-python.nix ({ pkgs, ... }: {
with subtest("systemd environment is properly set"):
machine.systemctl("daemon-reexec") # Rewrites /proc/1/environ
machine.succeed("grep -q TZDIR=/etc/zoneinfo /proc/1/environ")
with subtest("systemd presets are ignored"):
machine.succeed("systemctl preset ${nodes.machine.systemd.services.testservice1.name}")
machine.succeed("test -e /etc/systemd/system/${nodes.machine.systemd.services.testservice1.name}")
'';
})

View File

@ -2,12 +2,12 @@
let
pname = "plexamp";
version = "4.11.1";
version = "4.11.2";
src = fetchurl {
url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
name = "${pname}-${version}.AppImage";
hash = "sha512-miZACuT5kswIgdaYSFnYeoIUFtF6IRXKbLLrpOVga4UULgwnzinGehSNDd6feSyuDoKQhXIbDB/8eI4jERTS1A==";
hash = "sha512-cNBupLFHhq7GDoj/QYGsS0UShTKmDpf/JxBZS92VwTCuuBjScTMGF0cETGEYYnvxqv4vf9MSKNY0/HW9CuguaA==";
};
appimageContents = appimageTools.extractType2 {
@ -30,7 +30,7 @@ appimageTools.wrapType2 {
meta = with lib; {
description = "Beautiful Plex music player for audiophiles, curators, and hipsters";
homepage = "https://plexamp.com/";
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/75";
changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/76";
license = licenses.unfree;
maintainers = with maintainers; [ killercup redhawk synthetica ];
platforms = [ "x86_64-linux" ];

View File

@ -21,7 +21,7 @@
, libgpod
, libmtp
, lirc
, brasero
, brasero-unwrapped # libdvdcss is not needed for rhythmbox
, grilo
, tdb
, json-glib
@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
libgpod
libmtp
lirc
brasero
brasero-unwrapped
grilo
python3.pkgs.pygobject3

File diff suppressed because it is too large Load Diff

View File

@ -27,12 +27,12 @@
};
angular = buildGrammar {
language = "angular";
version = "0.0.0+rev=c473dbc";
version = "0.0.0+rev=745d3c6";
src = fetchFromGitHub {
owner = "dlvandenberg";
repo = "tree-sitter-angular";
rev = "c473dbc54ca27f95d8928cfdb2a1a79300e16951";
hash = "sha256-TEdHRcZKXeEbRPfyUJ9rZ6+OFZn24OvArSo4C31Pyl4=";
rev = "745d3c65c2294aca1110b6b6ad6805124be605c9";
hash = "sha256-4i1B4r+V5QgBIPVJepQ7V2pJDQfafLxRG1sk4XZVrco=";
};
meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular";
};
@ -50,12 +50,12 @@
};
arduino = buildGrammar {
language = "arduino";
version = "0.0.0+rev=ce02903";
version = "0.0.0+rev=415ebc8";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-arduino";
rev = "ce02903e3ae74c729e9415dc32c276447b1c8afd";
hash = "sha256-16HGIOG0qPdxA4yNwwrMUQ59mzj3bH/PNu0dqjb5u2Q=";
rev = "415ebc8f75eb02a748faa03f5af199f08ced120f";
hash = "sha256-cgmlrAeuCnocdjI/zvafMxmXPmOE7GnrC+HlNJcT1Y0=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
};
@ -403,12 +403,12 @@
};
devicetree = buildGrammar {
language = "devicetree";
version = "0.0.0+rev=296b3c2";
version = "0.0.0+rev=07a647c";
src = fetchFromGitHub {
owner = "joelspadin";
repo = "tree-sitter-devicetree";
rev = "296b3c294a8bcfca6673296d99f9cd37049b8026";
hash = "sha256-im3RhkaeG7cDd0FwkJzjrUZXjrpHR4q6sQH2waMumOI=";
rev = "07a647c8fb70e6b06379a60526721e3141aa2fd2";
hash = "sha256-2uJEItLwoBoiB49r2XuO216Dhu9AnAa0p7Plmm4JNY8=";
};
meta.homepage = "https://github.com/joelspadin/tree-sitter-devicetree";
};
@ -559,12 +559,12 @@
};
elixir = buildGrammar {
language = "elixir";
version = "0.0.0+rev=2c6e931";
version = "0.0.0+rev=ef124b8";
src = fetchFromGitHub {
owner = "elixir-lang";
repo = "tree-sitter-elixir";
rev = "2c6e93171477973b38de4b1d2be427cc99f990a6";
hash = "sha256-WBvpJ0r7cp/xWvnqSk6q4mpyfLAAdIR//2ju6Xri3EY=";
rev = "ef124b83a3f3572b0af23db4efae3f8de06a15e1";
hash = "sha256-5fZK8dP+ldw3Uvi1wbD5Wq4jOK3CH/iUSGsQVjik2CI=";
};
meta.homepage = "https://github.com/elixir-lang/tree-sitter-elixir";
};
@ -713,12 +713,12 @@
};
fortran = buildGrammar {
language = "fortran";
version = "0.0.0+rev=c52e978";
version = "0.0.0+rev=4a593dd";
src = fetchFromGitHub {
owner = "stadelmanma";
repo = "tree-sitter-fortran";
rev = "c52e978afadf3faed52bb3c8082cc472c915f4e7";
hash = "sha256-MQmS6IR/fyTo9qyYxt+g5kO4eToR6URrOHMN47rQ8kk=";
rev = "4a593dda9cbc050a6686187249f8350ceea292ce";
hash = "sha256-HsGDyjUymJHpaQ7ZlcTOg/fg4avVicnPf3zF9OoWQes=";
};
meta.homepage = "https://github.com/stadelmanma/tree-sitter-fortran";
};
@ -733,6 +733,18 @@
};
meta.homepage = "https://github.com/mgramigna/tree-sitter-fsh";
};
fsharp = buildGrammar {
language = "fsharp";
version = "0.0.0+rev=f920105";
src = fetchFromGitHub {
owner = "ionide";
repo = "tree-sitter-fsharp";
rev = "f920105eec2d574eb911d7a25c81cdaa079a3f72";
hash = "sha256-iBuxpTtVkd9KiVLiTWrPgTbkZP7Go5V8KhZVsCCUimE=";
};
location = "fsharp";
meta.homepage = "https://github.com/ionide/tree-sitter-fsharp";
};
func = buildGrammar {
language = "func";
version = "0.0.0+rev=f780ca5";
@ -856,12 +868,12 @@
};
gleam = buildGrammar {
language = "gleam";
version = "0.0.0+rev=9586f38";
version = "0.0.0+rev=57c9951";
src = fetchFromGitHub {
owner = "gleam-lang";
repo = "tree-sitter-gleam";
rev = "9586f38658da115c90e2d01099c83479eb0eea99";
hash = "sha256-EfuYnfz0E1I5F+9nFvp/uB+S4p6/9evlDlEEbWXCfBc=";
rev = "57c9951b290c8084d7c60b0aee7a2b30986ea031";
hash = "sha256-ieOvtZvOUwiJwJN6AtHVK91GTh+RKge9FMo+mYCtisk=";
};
meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
};
@ -1264,12 +1276,12 @@
};
inko = buildGrammar {
language = "inko";
version = "0.0.0+rev=3a8887c";
version = "0.0.0+rev=6f9c072";
src = fetchFromGitHub {
owner = "inko-lang";
repo = "tree-sitter-inko";
rev = "3a8887ca16dd8add3905216ce63796d4097c7a6f";
hash = "sha256-kJ3xJGlLdvvcJIOoooOMf0BGpk88etQJhRS74enVmNQ=";
rev = "6f9c072d023c3886aabcd8012274461b35d2d0a9";
hash = "sha256-yZ4F5tREEgoiI7Q9MFVH9HIM6bYxb/qdd0lqZREZkIo=";
};
meta.homepage = "https://github.com/inko-lang/tree-sitter-inko";
};
@ -1440,12 +1452,12 @@
};
koto = buildGrammar {
language = "koto";
version = "0.0.0+rev=d410987";
version = "0.0.0+rev=cbf637e";
src = fetchFromGitHub {
owner = "koto-lang";
repo = "tree-sitter-koto";
rev = "d4109879ba1387d19095269a7473bd7d274ab848";
hash = "sha256-PKbxUSlLHBQBhOzQpaGpP24zmfxjRD9rO5I4OIeeL4g=";
rev = "cbf637e5163065934c827d254b293f4d2f08f523";
hash = "sha256-/yeC7pAk0QsPcuMfdp2l1MLGZlQ7CwgdMWNZe/hCfXU=";
};
meta.homepage = "https://github.com/koto-lang/tree-sitter-koto";
};
@ -1617,24 +1629,24 @@
};
markdown = buildGrammar {
language = "markdown";
version = "0.0.0+rev=d9287a6";
version = "0.0.0+rev=b7eba93";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "d9287a6f36347064e55c36858e9e522eb652c1ad";
hash = "sha256-QFHPlvoJMTMepV1KxKXKjpiKMMmGzBO5mxxNcWKLO7s=";
rev = "b7eba93e6a3e588e259e831416ac11abdaa8616a";
hash = "sha256-lOLLHHMmNAtK+RLOSIt0GpeNRiMj3eu9jhSKS0HT370=";
};
location = "tree-sitter-markdown";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
};
markdown_inline = buildGrammar {
language = "markdown_inline";
version = "0.0.0+rev=d9287a6";
version = "0.0.0+rev=b7eba93";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "d9287a6f36347064e55c36858e9e522eb652c1ad";
hash = "sha256-QFHPlvoJMTMepV1KxKXKjpiKMMmGzBO5mxxNcWKLO7s=";
rev = "b7eba93e6a3e588e259e831416ac11abdaa8616a";
hash = "sha256-lOLLHHMmNAtK+RLOSIt0GpeNRiMj3eu9jhSKS0HT370=";
};
location = "tree-sitter-markdown-inline";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
@ -1774,12 +1786,12 @@
};
nix = buildGrammar {
language = "nix";
version = "0.0.0+rev=01bc5b1";
version = "0.0.0+rev=fcf1857";
src = fetchFromGitHub {
owner = "cstrahan";
repo = "tree-sitter-nix";
rev = "01bc5b18693055aab7a863d7608f4b3f85843cf8";
hash = "sha256-hzHCcKl3T+zEHhK5U4Ym+puvOjgr+etdDHNpuCbOSzU=";
rev = "fcf1857e254ab654e0fb73fe9706e33c52e79a5c";
hash = "sha256-ayiScuocBvhus3OUbQCSTxCdm/7+a61ATMpl3jFvCfY=";
};
meta.homepage = "https://github.com/cstrahan/tree-sitter-nix";
};
@ -1829,24 +1841,24 @@
};
ocaml = buildGrammar {
language = "ocaml";
version = "0.0.0+rev=45ddc92";
version = "0.0.0+rev=5f7a97e";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-ocaml";
rev = "45ddc92d18fa11b2ca1a18cd94de4e63feea0806";
hash = "sha256-xeUb/x1PennKS5N5TMPG0F+jLgAeY8DuIUkkbQ79QYQ=";
rev = "5f7a97e9757d8afe6c0b0b5dd8734cf59f35456e";
hash = "sha256-jBWNJpLtBHJ13g4c30W6YqGN9O7UoX7iqvz7ThtHi5A=";
};
location = "grammars/ocaml";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
};
ocaml_interface = buildGrammar {
language = "ocaml_interface";
version = "0.0.0+rev=45ddc92";
version = "0.0.0+rev=5f7a97e";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-ocaml";
rev = "45ddc92d18fa11b2ca1a18cd94de4e63feea0806";
hash = "sha256-xeUb/x1PennKS5N5TMPG0F+jLgAeY8DuIUkkbQ79QYQ=";
rev = "5f7a97e9757d8afe6c0b0b5dd8734cf59f35456e";
hash = "sha256-jBWNJpLtBHJ13g4c30W6YqGN9O7UoX7iqvz7ThtHi5A=";
};
location = "grammars/interface";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
@ -1865,12 +1877,12 @@
};
odin = buildGrammar {
language = "odin";
version = "0.0.0+rev=d37b8f2";
version = "0.0.0+rev=3fee796";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-odin";
rev = "d37b8f24f653378b268ec18404e9c14ad355b128";
hash = "sha256-QZn+XgVQXEaMZF4XkMfS4bHf/tQIersI8982JQyiXms=";
rev = "3fee7964bbfb2554deef12c224344f3870d15375";
hash = "sha256-skMbtAjulJXGpaAfi1Q/WgeiimWE/qlwsWmq6lWXaU8=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-odin";
};
@ -2021,12 +2033,12 @@
};
powershell = buildGrammar {
language = "powershell";
version = "0.0.0+rev=fc15514";
version = "0.0.0+rev=ebe2ab2";
src = fetchFromGitHub {
owner = "airbus-cert";
repo = "tree-sitter-powershell";
rev = "fc15514b2f1dbba9c58528d15a3708f89eda6a01";
hash = "sha256-StVnRNM0HPevLSRDIDr+Sakjo+NqXYWPPUFjI29Cowo=";
rev = "ebe2ab2f642eda2072c68c8de02e83973c26f33c";
hash = "sha256-zWJUB0lbjJGGhi3ko4fSzay9n9P8nYhVOkKLrkyr0G0=";
};
meta.homepage = "https://github.com/airbus-cert/tree-sitter-powershell";
};
@ -2288,12 +2300,12 @@
};
re2c = buildGrammar {
language = "re2c";
version = "0.0.0+rev=47aa19c";
version = "0.0.0+rev=c18a3c2";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-re2c";
rev = "47aa19cf5f7aba2ed30e2b377f7172df76e819a6";
hash = "sha256-Mwnm8kN0xfAdGG00aUYrqPU0zyWbc6QH9Zlgb4on+do=";
rev = "c18a3c2f4b6665e35b7e50d6048ea3cff770c572";
hash = "sha256-2htX4730fNAO2NKEurDOXH1OIXFd0OfuIbH1ou3a20A=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-re2c";
};
@ -2611,12 +2623,12 @@
};
sql = buildGrammar {
language = "sql";
version = "0.0.0+rev=b817500";
version = "0.0.0+rev=a8b10c7";
src = fetchFromGitHub {
owner = "derekstride";
repo = "tree-sitter-sql";
rev = "b8175006d9c8120d41cf40a4ef3711bbbbc08973";
hash = "sha256-idQB8Wqw7lvU192y7+UgFvcwlmY71/mu9jJ4hRc4ud4=";
rev = "a8b10c76759a372d0f92bb070b4f5c993e0ce5f9";
hash = "sha256-wfoov9KfIadouF3HTJ9hOpnIouCHvDffgSrXow8zQ5I=";
};
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
};
@ -2777,12 +2789,12 @@
};
tact = buildGrammar {
language = "tact";
version = "0.0.0+rev=b3710fe";
version = "0.0.0+rev=d168040";
src = fetchFromGitHub {
owner = "tact-lang";
repo = "tree-sitter-tact";
rev = "b3710fe2723bd9b285de7f3d0c0717bebf3f17bd";
hash = "sha256-FJj9kAPHyk0ZenwrwbPJJD+4rs5QTrh6KFIa4tmBr3w=";
rev = "d16804029968f53f26f5afc695166a55bb0b68b2";
hash = "sha256-naug7uJeMQ8mFje6ZgOJ/3AbPlCOrCUak0u1RQ25Ky4=";
};
meta.homepage = "https://github.com/tact-lang/tree-sitter-tact";
};
@ -2811,12 +2823,12 @@
};
templ = buildGrammar {
language = "templ";
version = "0.0.0+rev=0524da9";
version = "0.0.0+rev=80d1a04";
src = fetchFromGitHub {
owner = "vrischmann";
repo = "tree-sitter-templ";
rev = "0524da9e1f14b9b7d7d6d36608293f85a550b263";
hash = "sha256-4KFJpMZfJP9I66HGMSP5MsZU9dYN95enz4cCoMytt9M=";
rev = "80d1a04e6bf3ced1c924bcb05527aa2eaf3f6239";
hash = "sha256-BY+j+0kMWxGbtwFk96SWHZA9ugRz6E7pRZOOM5j1XKA=";
};
meta.homepage = "https://github.com/vrischmann/tree-sitter-templ";
};
@ -2867,12 +2879,12 @@
};
tlaplus = buildGrammar {
language = "tlaplus";
version = "0.0.0+rev=a9f9c13";
version = "0.0.0+rev=b9e3978";
src = fetchFromGitHub {
owner = "tlaplus-community";
repo = "tree-sitter-tlaplus";
rev = "a9f9c136baa9b73c63850be92301fb5f1fc9b2fd";
hash = "sha256-BakN8qW6IyEK2GfSpPDogiJXTZXGjRiHN0LNyVH7Z2Q=";
rev = "b9e3978f363b3f8884c886a01d15e41bd14d30bd";
hash = "sha256-xC0iA7QvU/72RoqyW5oPmbVkTszPNraacwW6N8TELwo=";
};
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
};

View File

@ -313,8 +313,8 @@ let
mktplcRef = {
name = "vscode-apollo";
publisher = "apollographql";
version = "2.3.2";
hash = "sha256-5PAmyy4RX2hLgviWxgnxGZjgeFWZaJKNiYGNdCTL0IE=";
version = "2.3.3";
hash = "sha256-pxj3BM+LJPS9KxxniEtBLT3x1FERGr4yPndxOSVLgR8=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/apollographql.vscode-apollo/changelog";

View File

@ -38,14 +38,14 @@ let
in
stdenv.mkDerivation rec {
pname = "mame";
version = "0.269";
version = "0.270";
srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
src = fetchFromGitHub {
owner = "mamedev";
repo = "mame";
rev = "mame${srcVersion}";
hash = "sha256-ECOPohrfAVz0Rx/oYBFJvo91FoS76RJuBzadfXoXB4c=";
hash = "sha256-l1mgkPhYO/U/77veC0Mpyzr6hzz/FSkn+4GMAdLSfOk=";
};
outputs = [ "out" "tools" ];

View File

@ -14,6 +14,7 @@
freetype,
SDL2,
zenity,
libGL,
builderArgs,
}:
@ -126,7 +127,8 @@ buildDubPackage (
postFixup = ''
# Add support for `open file` dialog
makeWrapper $out/share/${pname}/${pname} $out/bin/${pname} \
--prefix PATH : ${lib.makeBinPath [ zenity ]}
--prefix PATH : ${lib.makeBinPath [ zenity ]} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libGL ]}
'';
meta = {

View File

@ -1,15 +1,19 @@
{ lib
, rustPlatform
, fetchFromGitHub
, fetchNpmDeps
, npmHooks
, binaryen
, gzip
, nodejs
, rustc
, wasm-bindgen-cli
, wasm-pack
, fetchpatch
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
fetchNpmDeps,
fetchurl,
httplz,
binaryen,
gzip,
nodejs,
npmHooks,
python3,
rustc,
wasm-bindgen-cli,
wasm-pack,
}:
let
@ -20,28 +24,28 @@ let
cargoHash = "sha256-aACJ+lYNEU8FFBs158G1/JG8sc6Rq080PeKCMnwdpH0=";
};
# the lindera-unidic v0.32.2 crate uses [1] an outdated unidic-mecab fork [2] and builds it in pure rust
# [1] https://github.com/lindera/lindera/blob/v0.32.2/lindera-unidic/build.rs#L5-L11
# [2] https://github.com/lindera/unidic-mecab
lindera-unidic-src = fetchurl {
url = "https://dlwqk3ibdg1xh.cloudfront.net/unidic-mecab-2.1.2.tar.gz";
hash = "sha256-JKx1/k5E2XO1XmWEfDX6Suwtt6QaB7ScoSUUbbn8EYk=";
};
in
rustPlatform.buildRustPackage rec {
pname = "pagefind";
version = "1.1.0";
version = "1.1.1";
src = fetchFromGitHub {
owner = "cloudcannon";
repo = "pagefind";
rev = "refs/tags/v${version}";
hash = "sha256-pcgcu9zylSTjj5rxNff+afFBWVpN5sGtlpadG1wb93M=";
hash = "sha256-4NfosDp5Wwz2lnqaFNcaIbWpjWiaQ4WCL6TcKEkfPck=";
};
cargoPatches = [
(fetchpatch { # https://github.com/CloudCannon/pagefind/pull/680
name = "cargo-update-time.patch";
url = "https://github.com/CloudCannon/pagefind/commit/e6778572d225316803180db822f5cc12a936acd2.patch";
hash = "sha256-XHpHA1hPIe+wjDQ6LE9hn2jn3eMBOK9Yoo920jfH9do=";
})
];
cargoHash = "sha256-KWWln7QCRo02cOgHy5JNERGS0CvvgsPISwkTZeeNEkg=";
cargoHash = "sha256-hnT9w3j8/YuN00x0LBPr75BKGWSnIYUNFTWIgtghJP4";
env.npmDeps_web_js = fetchNpmDeps {
name = "npm-deps-web-js";
@ -78,17 +82,50 @@ rustPlatform.buildRustPackage rec {
cargoDeps=$cargoDeps_web cargoSetupPostUnpackHook
cargoDeps=$cargoDeps_web cargoSetupPostPatchHook
)
# patch a build-time dependency download
(
cd $cargoDepsCopy/lindera-unidic
oldHash=$(sha256sum build.rs | cut -d " " -f 1)
# serve lindera-unidic on localhost vacant port
httplz_port="${
if stdenv.buildPlatform.isDarwin then
''$(python -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()')''
else
"34567"
}"
mkdir .lindera-http-plz
ln -s ${lindera-unidic-src} .lindera-http-plz/unidic-mecab-2.1.2.tar.gz
httplz --port "$httplz_port" -- .lindera-http-plz/ &
echo $! >$TMPDIR/.httplz_pid
# file:// does not work
substituteInPlace build.rs --replace-fail \
"https://dlwqk3ibdg1xh.cloudfront.net/unidic-mecab-2.1.2.tar.gz" \
"http://localhost:$httplz_port/unidic-mecab-2.1.2.tar.gz"
newHash=$(sha256sum build.rs | cut -d " " -f 1)
substituteInPlace .cargo-checksum.json --replace-fail $oldHash $newHash
)
'';
nativeBuildInputs = [
binaryen
gzip
nodejs
rustc
rustc.llvmPackages.lld
wasm-bindgen-92
wasm-pack
];
__darwinAllowLocalNetworking = true;
nativeBuildInputs =
[
binaryen
gzip
nodejs
rustc
rustc.llvmPackages.lld
wasm-bindgen-92
wasm-pack
httplz
]
++ lib.optionals stdenv.isDarwin [
python3
];
# build wasm and js assets
# based on "test-and-build" in https://github.com/CloudCannon/pagefind/blob/main/.github/workflows/release.yml
@ -120,14 +157,19 @@ rustPlatform.buildRustPackage rec {
)
'';
# the file is also fetched during checkPhase
preInstall = ''
kill ${lib.optionalString stdenv.hostPlatform.isDarwin "-9"} $(cat $TMPDIR/.httplz_pid)
'';
buildFeatures = [ "extended" ];
meta = with lib; {
meta = {
description = "Generate low-bandwidth search index for your static website";
homepage = "https://pagefind.app/";
license = licenses.mit;
maintainers = with maintainers; [ pbsds ];
platforms = platforms.unix;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ pbsds ];
platforms = lib.platforms.unix;
mainProgram = "pagefind";
};
}

View File

@ -1,9 +1,9 @@
{
"version" = "1.11.77";
"version" = "1.11.79";
"hashes" = {
"desktopSrcHash" = "sha256-y7cmTSkNzA4aNY7z9sjgyIquTPVvl+nH7BHUx/2nJ5A=";
"desktopSrcHash" = "sha256-w9JWrStxmiiffu8kKVxM5h8Frxig7v4Vul3YwTnJias=";
"desktopYarnHash" = "0fwkdrfhfl6knvx552q2lpp5pd54qbzkm4kx6jvcrdwjk3x4cgqd";
"webSrcHash" = "sha256-IeBuLlcorsHZ78P6h5LVCCGHauqzwwm2Lc9B07su86Y=";
"webYarnHash" = "0nm70m37kqkb959vi69r8zidsh25nzgn1550yl46pzihzbiqm8nx";
"webSrcHash" = "sha256-rla55a0SgeWddXpgaDfsvPcL00NP4DbMDgtc25TM4dw=";
"webYarnHash" = "084nm85y2fmzi27i0050hnxa4m2bqcbl7fn33zd1yini8dwr2n7s";
};
}

View File

@ -1,6 +1,30 @@
{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, zlib, glib, libpng, freetype, openssl
, xorg, fontconfig, qtbase, qtwebengine, qtwebchannel, qtsvg, qtwebsockets, xkeyboard_config
, alsa-lib, libpulseaudio ? null, libredirect, quazip, which, unzip, perl, llvmPackages
{
lib,
stdenv,
fetchurl,
fetchzip,
makeWrapper,
makeDesktopItem,
zlib,
glib,
libpng,
freetype,
openssl,
xorg,
fontconfig,
qtbase,
qtwebengine,
qtwebchannel,
qtsvg,
qtwebsockets,
xkeyboard_config,
alsa-lib,
libpulseaudio ? null,
libredirect,
quazip,
which,
perl,
llvmPackages,
}:
let
@ -9,12 +33,33 @@ let
libDir = "lib64";
deps =
[ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl
xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsa-lib qtbase qtwebengine qtwebchannel qtsvg
qtwebsockets libpulseaudio quazip llvmPackages.libcxx
];
deps = [
zlib
glib
libpng
freetype
xorg.libSM
xorg.libICE
xorg.libXrender
openssl
xorg.libXrandr
xorg.libXfixes
xorg.libXcursor
xorg.libXinerama
xorg.libxcb
fontconfig
xorg.libXext
xorg.libX11
alsa-lib
qtbase
qtwebengine
qtwebchannel
qtsvg
qtwebsockets
libpulseaudio
quazip
llvmPackages.libcxx
];
desktopItem = makeDesktopItem {
name = "teamspeak";
@ -38,15 +83,14 @@ stdenv.mkDerivation rec {
};
# grab the plugin sdk for the desktop icon
pluginsdk = fetchurl {
url = "http://dl.4players.de/ts/client/pluginsdk/pluginsdk_3.1.1.1.zip";
sha256 = "1bywmdj54glzd0kffvr27r84n4dsd0pskkbmh59mllbxvj0qwy7f";
pluginsdk = fetchzip {
url = "https://files.teamspeak-services.com/releases/sdk/3.3.1/ts_sdk_3.3.1.zip";
hash = "sha256-wx4pBZHpFPoNvEe4xYE80KnXGVda9XcX35ho4R8QxrQ=";
};
nativeBuildInputs = [
makeWrapper
which
unzip
perl # Installer script needs `shasum`
];
@ -54,23 +98,21 @@ stdenv.mkDerivation rec {
# ++ exec
# + PAGER_PATH=
# it's looking for a dependency and didn't find it. Check the script and make sure the dep is in nativeBuildInputs.
unpackPhase =
''
echo -e '\ny' | PAGER=cat sh -xe $src
cd TeamSpeak*
'';
unpackPhase = ''
echo -e '\ny' | PAGER=cat sh -xe $src
cd TeamSpeak*
'';
buildPhase =
''
mv ts3client_linux_${arch} ts3client
echo "patching ts3client..."
patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip1-qt5.so ts3client
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath ${lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \
--force-rpath \
ts3client
'';
buildPhase = ''
mv ts3client_linux_${arch} ts3client
echo "patching ts3client..."
patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip1-qt5.so ts3client
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath ${lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \
--force-rpath \
ts3client
'';
installPhase =
''
@ -86,8 +128,7 @@ stdenv.mkDerivation rec {
# Make a desktop item
mkdir -p $out/share/applications/ $out/share/icons/hicolor/64x64/apps/
unzip ${pluginsdk}
cp pluginsdk/docs/client_html/images/logo.png $out/share/icons/hicolor/64x64/apps/teamspeak.png
cp ${pluginsdk}/doc/_static/logo.png $out/share/icons/hicolor/64x64/apps/teamspeak.png
cp ${desktopItem}/share/applications/* $out/share/applications/
# Make a symlink to the binary from bin.
@ -97,9 +138,10 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/ts3client \
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
--set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}" \
'' /* wayland is currently broken, remove when TS3 fixes that */ + ''
--set QT_QPA_PLATFORM xcb \
--set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb
'' # wayland is currently broken, remove when TS3 fixes that
+ ''
--set QT_QPA_PLATFORM xcb \
--set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb
'';
dontStrip = true;
@ -110,47 +152,17 @@ stdenv.mkDerivation rec {
homepage = "https://teamspeak.com/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = {
# See distribution-permit.txt for a confirmation that nixpkgs is allowed to distribute TeamSpeak.
fullName = "Teamspeak client license";
url = "https://www.teamspeak.com/en/privacy-and-terms/";
free = false;
};
maintainers = with maintainers; [ lhvwb lukegb atemu ];
maintainers = with maintainers; [
lhvwb
lukegb
atemu
];
mainProgram = "ts3client";
platforms = [ "x86_64-linux" ];
};
}
/*
License issues:
Date: Mon, 10 Dec 2007 19:55:16 -0500
From: TeamSpeak Sales <sales@tritoncia.com>
To: 'Marc Weber' <marco-oweber@gmx.de>
Subject: RE: teamspeak on nix?
Yes, that would be fine. As long as you are not renting servers or selling
TeamSpeak then you are more than welcome to distribute it.
Thank you,
TeamSpeak Sales Team
________________________________
e-Mail: sales@tritoncia.com
TeamSpeak: http://www.TeamSpeak.com
Account Login: https://sales.TritonCIA.com/users
-----Original Message-----
From: Marc Weber [mailto:marco-oweber@gmx.de]
Sent: Monday, December 10, 2007 5:03 PM
To: sales@tritoncia.com
Subject: teamspeak on nix?
Hello,
nix is very young software distribution system (http://nix.cs.uu.nl/)
I'd like to ask wether you permit us to add teamspeak (server/ client?)
Sincerly
Marc Weber (small nix contributor)
*/

View File

@ -0,0 +1,32 @@
License issues:
Date: Mon, 10 Dec 2007 19:55:16 -0500
From: TeamSpeak Sales <sales@tritoncia.com>
To: 'Marc Weber' <marco-oweber@gmx.de>
Subject: RE: teamspeak on nix?
Yes, that would be fine. As long as you are not renting servers or selling
TeamSpeak then you are more than welcome to distribute it.
Thank you,
TeamSpeak Sales Team
________________________________
e-Mail: sales@tritoncia.com
TeamSpeak: http://www.TeamSpeak.com
Account Login: https://sales.TritonCIA.com/users
-----Original Message-----
From: Marc Weber [mailto:marco-oweber@gmx.de]
Sent: Monday, December 10, 2007 5:03 PM
To: sales@tritoncia.com
Subject: teamspeak on nix?
Hello,
nix is very young software distribution system (http://nix.cs.uu.nl/)
I'd like to ask wether you permit us to add teamspeak (server/ client?)
Sincerly
Marc Weber (small nix contributor)

View File

@ -59,43 +59,9 @@ in stdenv.mkDerivation rec {
description = "TeamSpeak voice communication server";
homepage = "https://teamspeak.com/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
# See distribution-permit.txt for a confirmation that nixpkgs is allowed to distribute TeamSpeak.
license = licenses.unfreeRedistributable;
platforms = platforms.linux;
maintainers = with maintainers; [ arobyn gerschtli ];
};
}
/*
License issues:
Date: Mon, 10 Dec 2007 19:55:16 -0500
From: TeamSpeak Sales <sales@tritoncia.com>
To: 'Marc Weber' <marco-oweber@gmx.de>
Subject: RE: teamspeak on nix?
Yes, that would be fine. As long as you are not renting servers or selling
TeamSpeak then you are more than welcome to distribute it.
Thank you,
TeamSpeak Sales Team
________________________________
e-Mail: sales@tritoncia.com
TeamSpeak: http://www.TeamSpeak.com
Account Login: https://sales.TritonCIA.com/users
-----Original Message-----
From: Marc Weber [mailto:marco-oweber@gmx.de]
Sent: Monday, December 10, 2007 5:03 PM
To: sales@tritoncia.com
Subject: teamspeak on nix?
Hello,
nix is very young software distribution system (http://nix.cs.uu.nl/)
I'd like to ask wether you permit us to add teamspeak (server/ client?)
Sincerly
Marc Weber (small nix contributor)
*/

View File

@ -156,11 +156,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "wavebox";
version = "10.128.7-2";
version = "10.129.27-2";
src = fetchurl {
url = "https://download.wavebox.app/stable/linux/deb/amd64/wavebox_${finalAttrs.version}_amd64.deb";
hash = "sha256-MRMN/xVs80u3MfdQfALhPW7dpTZrjsVhMjEN/zl7K+U=";
hash = "sha256-SHlKsiDS0UoOxy3vzGD7Ae7h6GM+r+XzFHZ33uEuEko=";
};
nativeBuildInputs = [

View File

@ -1,665 +1,665 @@
{
version = "128.2.0esr";
version = "128.2.3esr";
sources = [
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/af/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/af/thunderbird-128.2.3esr.tar.bz2";
locale = "af";
arch = "linux-x86_64";
sha256 = "f4b3a3087afc240c9c1b4439316b1f0fda190143cca1da0d0c10d537ec47fdf2";
sha256 = "11450c70fbb9952707384ef5900ffce76c0ddc079cd02993a37393da3b6f35e1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ar/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ar/thunderbird-128.2.3esr.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
sha256 = "d49d17d785de3f9145f5640e3c835a1cd6ec7b205868be4c0a598160835bfe25";
sha256 = "99b09985161dda620e53c5afe9387357b7e8ef0f46c3af332c15167c9bfa32fc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ast/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ast/thunderbird-128.2.3esr.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
sha256 = "7d2e82951778bf97279fe5c1eb9a36010af6d28ac3eaaaec7cff6da26cb51593";
sha256 = "5cca2e4b9ce3e52625fb9442c15aa5166a836a3625c0bcc9fad0a6a888d564b8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/be/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/be/thunderbird-128.2.3esr.tar.bz2";
locale = "be";
arch = "linux-x86_64";
sha256 = "e77107193165eb5050286965e752b326fa15f33cc891e011f01ab09b90e92d91";
sha256 = "c2cbc174ef0bf8616a09cfe863dcd850722c8f0fb8bb3d071fa7af6da7088fd2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/bg/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/bg/thunderbird-128.2.3esr.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
sha256 = "f64b546fe7803e808a82de46f9bd118b897004afdfb10baa2de9a190e3572ce0";
sha256 = "92ac1d843307d3a13da2bd7eaacda090aa3ca9b26e3da33a2d8e4780ccb7affe";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/br/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/br/thunderbird-128.2.3esr.tar.bz2";
locale = "br";
arch = "linux-x86_64";
sha256 = "a64ed5e163431a5fccfa452a565b109badbc80556cbe13bf00285afdb6fa1c1f";
sha256 = "c15561c692845ab1d750dfe2fbfa0031d4b713afe5b1359644ececef0def1e3e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ca/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ca/thunderbird-128.2.3esr.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
sha256 = "b0fb10db25845009c25e1bdbb408a1cc6935dd742c8cc1acd7c398bff4a600d0";
sha256 = "efdfcf6d564b5e82f0b0e8d2bd93ba32258cbc403cefda46036e07bc813630cb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/cak/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/cak/thunderbird-128.2.3esr.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
sha256 = "74a8c917565f27eced4b9ec952fee871da7e51c2323e509225227ccdb231cb79";
sha256 = "fdbea8ea3eca0ba502c3340f02462ce4f03064498de8c37b86559a5c491a2829";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/cs/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/cs/thunderbird-128.2.3esr.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
sha256 = "63537a0b0efff24f47e9e8ea35bd28a55c6b96917c06a2dfa141d8f107f3194c";
sha256 = "34233723a02da1021520ea9630d8397d29ff135ad0f80e499d6bca3a0b8c34c2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/cy/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/cy/thunderbird-128.2.3esr.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
sha256 = "fd459d4fcd1c6143f7a03ae3069073f4e4b8d097733d504dd0221069520fcc6e";
sha256 = "0fa356291b99737024a5aae863c18456ddcbb7300369367ad083aab9a48b2dfa";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/da/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/da/thunderbird-128.2.3esr.tar.bz2";
locale = "da";
arch = "linux-x86_64";
sha256 = "7b75d5ab21254ef75a96217d715fc0a951ab38e8da61c2411820daea4b2ab979";
sha256 = "c7f51211239bcc5265e2ab81d257b8a6ff0811aa5294b7bce68c08f2fa8e3524";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/de/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/de/thunderbird-128.2.3esr.tar.bz2";
locale = "de";
arch = "linux-x86_64";
sha256 = "cb05aa781c9cb360b23c597ab4566954e2506c01e214b14b0f7e863b2d5cadc0";
sha256 = "a128e567f8701ae72fd82e329d660603c2c30963b80a88e646e00254312d5141";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/dsb/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/dsb/thunderbird-128.2.3esr.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
sha256 = "0d79340c7ae3af1e3be717ec92fe1ee14a53a680991ee2fb092dc9d4894b62c3";
sha256 = "869b352a024d9ceec41ba4d4c6d70085e8e9986dc9733da691abdd41e5d57389";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/el/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/el/thunderbird-128.2.3esr.tar.bz2";
locale = "el";
arch = "linux-x86_64";
sha256 = "58049b7f1224ed79f63e053c1dabf795f851e6441c09044e6b7272074cbaeb15";
sha256 = "623d36518dbc976b50e8a6fc7e14240eff158dde50fafe1ecaead4d6ad5554af";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/en-CA/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/en-CA/thunderbird-128.2.3esr.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
sha256 = "338d69c084b4a9dcf93b0536417ab8a3dfa258647229e74e2f6b487a3d381900";
sha256 = "321b39bc363f058e04742a4bf64e66a3d36abdbf5876ccec21657b69f1abc6a4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/en-GB/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/en-GB/thunderbird-128.2.3esr.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
sha256 = "cc87b7ea712cc7f426129245a32d26724047932c12c4f5ac262e52ca551d7378";
sha256 = "c40566dd51219c4373af3b476b8ec4189c8ca6de34befd84d76dcd9af1badc52";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/en-US/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/en-US/thunderbird-128.2.3esr.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
sha256 = "4200c48e8b57bddde15c7ad6757077e560d2f52a29da1902a35bcce945e751aa";
sha256 = "e1886acd969d75f1030f9dc68d3f360548b15e7ff6260182ebeaffcde53d11d2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/es-AR/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/es-AR/thunderbird-128.2.3esr.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
sha256 = "a1cf08ad3e0a80b90814c779e031a97aa9dba9797b02acf8c2e45fb1e994d54f";
sha256 = "04f3275d8aa8cf68618e84bbf12df8974e63acd50e799d06032c96931a1f3c8c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/es-ES/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/es-ES/thunderbird-128.2.3esr.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
sha256 = "2e0a4a2d9001c587b9f61478de6611a94de912ab8fe1ed3bace2959f3bfb57ee";
sha256 = "a879e7d4a0791ca53bb1904b7a162119ce2271d9d7d33a1fcacf4b92338ec58e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/es-MX/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/es-MX/thunderbird-128.2.3esr.tar.bz2";
locale = "es-MX";
arch = "linux-x86_64";
sha256 = "e47fb45e3c8e05a0027bff1bf2b9a9fe07b73c28144beeceef5fe40b40fbd5a0";
sha256 = "2367511c520bc2a10e9ca986e56f0fa79d77af710a97367c30a8a963a932d060";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/et/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/et/thunderbird-128.2.3esr.tar.bz2";
locale = "et";
arch = "linux-x86_64";
sha256 = "c45c5801a736a578c06993f3e061e0df5c798fefc49f415d5ed1196c93d3b07f";
sha256 = "256167062672846e90962e3a7a3c60c04c34c18c35c8b3b47b98663922b2421e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/eu/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/eu/thunderbird-128.2.3esr.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
sha256 = "f709c4440888772dca99dd6cc667a9d72d20a6e1eb5c84dfbb0a7a8e488a6f74";
sha256 = "4b5928bd99c088366b08c09de01b7d5dc5f1f11deb5ad48db29f0e266f3790e0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/fi/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/fi/thunderbird-128.2.3esr.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
sha256 = "e6f32dfc0095065326ce886f0ccc46259a13ae4339f609b2519f74226cf88e02";
sha256 = "878cc0b6831e75f80408ab25629b6dc97d993be97f0144b87dee331019119124";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/fr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/fr/thunderbird-128.2.3esr.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
sha256 = "92ba3a5b2ebddd5e6f60c52e948f3336360e69fb3c21ca97f5629f16b6c74158";
sha256 = "ebf090c97372ace2ab04ce43545b05328ae50b7e7ccfe4f1bae0abc6bf7bf18f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/fy-NL/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/fy-NL/thunderbird-128.2.3esr.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
sha256 = "7f905d1e7d17dd314f3e58286bdac0f4fcfacdddf1df809dd95a80a992f3ac03";
sha256 = "945f072fc92cd3db1e2ce9de0fc5c8fc08e13a8764db54f9494a896fd4add7c7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ga-IE/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ga-IE/thunderbird-128.2.3esr.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
sha256 = "10421949c685172e8c842fa99ab11ee249a4e8357b9595a10d9a93659d5f45b5";
sha256 = "556a3a879c173038f829c5a94f659b3fe86848465498b6cd287aace380409a7f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/gd/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/gd/thunderbird-128.2.3esr.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
sha256 = "8861ac36c0c65b00e15fbe3ecb6b288c612b4226bc06d688189548e95abe46f7";
sha256 = "614ef8d8f5229e7c153fb239e056002bfde8a1920cffc3e317dbafd0b486b8f7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/gl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/gl/thunderbird-128.2.3esr.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
sha256 = "44259d867c523488b62c06b41a340e5efdceda7e42faa98564643249c6409110";
sha256 = "b81c0470717d21cc95412e938c651aceef010bd771a90b6b1b2166c56a064bee";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/he/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/he/thunderbird-128.2.3esr.tar.bz2";
locale = "he";
arch = "linux-x86_64";
sha256 = "56b6152345ae31bf2e721aa1c4256493214969d1e6237bb3d861b784d0ff61d1";
sha256 = "22885a85a65c0be0d292ac9c7275ef07c6c04c79a9d8b383d17e2d23d5f78e8b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/hr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hr/thunderbird-128.2.3esr.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
sha256 = "64c7bf327329149f0f8f0138db5759fd0d2f032d58ea795b95f23c44e6cd2124";
sha256 = "a8f2235ac630a23d1e00d670caaa9ccb0f939d97171449554fe59be6c9051510";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/hsb/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hsb/thunderbird-128.2.3esr.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
sha256 = "b23577fb06f2813a6b8a0a0e8b76d029ec0d129758814696de4b5679e8b46d3f";
sha256 = "341f8c2753ff38c0e9d61a634ef448a1f2c91cdba9a7d7c494748ec6918da6d2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/hu/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hu/thunderbird-128.2.3esr.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
sha256 = "9f2a7bb6990dfdd7b35922132701ead5505343ad53b12ef44743fffef8d4878e";
sha256 = "b3ae6f2fc7cce5cb2bb2634e261c0b73f218bb50ca0b81d8afe588b83a0e601d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/hy-AM/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/hy-AM/thunderbird-128.2.3esr.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
sha256 = "176130e7a7701022fdb308edfa8504c432639794e2582c214807d9496583de95";
sha256 = "23c25370fa8c9822fd4f34bced4df5f889375d487709698e7a81154152b54583";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/id/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/id/thunderbird-128.2.3esr.tar.bz2";
locale = "id";
arch = "linux-x86_64";
sha256 = "80d9b02e4125d1e8f59cb7384c2ea6559c77a517675c84e286f8574d86459aeb";
sha256 = "989719255963ca2d3550022c43c724368a7c48e484b4557c300311237902eea2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/is/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/is/thunderbird-128.2.3esr.tar.bz2";
locale = "is";
arch = "linux-x86_64";
sha256 = "677d0f4bc43d2efefc1fb052706cf7307ccf7b8bd529c76c1860e6f121daaf2e";
sha256 = "afae9e8d124da04903874a35879b20bb45e9f03c0aeba78108e3765bb0803b63";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/it/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/it/thunderbird-128.2.3esr.tar.bz2";
locale = "it";
arch = "linux-x86_64";
sha256 = "f7160c5183922bdcecdaf87100b1556081072dc31c2436690ac707e47511d36b";
sha256 = "f55d86350731c4b89eafde39d7badd228c22ae7d250d51f1f922632b27d9c66c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ja/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ja/thunderbird-128.2.3esr.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
sha256 = "9b1144c1911f0186d4ad6b1b4526d55aad0a6de2157e02cd8bf593c827ac28f3";
sha256 = "54315aaeb33ff3b1b795545e5c7cdabb32a3fb6b36a0b0175cf7e770fece96a6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ka/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ka/thunderbird-128.2.3esr.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
sha256 = "1dbc9c8419f6f7d131c00851d54bab714ca30f75be97529bf5f679a859014050";
sha256 = "881373f2c3903b72b3f626a7ae245921f235e00b23943b9379e589e6c01b178c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/kab/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/kab/thunderbird-128.2.3esr.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
sha256 = "fe5fbf0b7c3e5f10846a0ab019baf5ddddc7b7bbb04b32e56cfca6bde5d92fb6";
sha256 = "2f01762ab42c86c65d0a88034c6f931fa599411a3cc705772a9bedef139191f4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/kk/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/kk/thunderbird-128.2.3esr.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
sha256 = "77055d3004bbe6fce489cb4ea8c9e6f75d19ad35d0015caceb24920d372036f3";
sha256 = "60202a6ae70d4c83b65c46803d0cd7cb2fe1b4524be63544c18a83f980cf470a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ko/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ko/thunderbird-128.2.3esr.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
sha256 = "1711d530249728789931831680cb3062c1da2addd90482a195d27ccb2d69cb33";
sha256 = "69e259e3737e4f759be6cc069acaa58c5a36e20eefb6712c4c75936e7b6aa509";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/lt/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/lt/thunderbird-128.2.3esr.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
sha256 = "e3fd07e0bf2c1c6586b5826c92e4aa2341faea04791e686c8e6213a0d0f4e00c";
sha256 = "74e750b692f59232f96094af91bf9053df8a680774e20dad34c6436dee10f9e9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/lv/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/lv/thunderbird-128.2.3esr.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
sha256 = "432cce43817a60790d8295c49b6e04b5d595811a3bf5024d733302ea755ab1c3";
sha256 = "3e2fbc8693718ce8c4cab0bb1b8ec973d84a95342a6a7783cf5518a5fb3cf459";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ms/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ms/thunderbird-128.2.3esr.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
sha256 = "110ea1d59a3d00d45198505ecb15100d9cbcc77bfba69fb9000ecdfcc9db1d4c";
sha256 = "b98245ec7b41493883fd06af08f94d350b22e61e36ad3f289af2239cba5e84d8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/nb-NO/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/nb-NO/thunderbird-128.2.3esr.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
sha256 = "7d7bac855a4e27055e0a8561172cde744058e74aa8233554504d87dfc68f29f6";
sha256 = "e40f4b73190e85cd2c60c9a87336669e3a36d599642ab4415097fd4485287ede";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/nl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/nl/thunderbird-128.2.3esr.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
sha256 = "4820f08e4979e9eddc4182fea39d023defcb450e7edac9c8a2d3b09c62669959";
sha256 = "c76ae2e8e46d062964c913d57742a1195768af6eb273e01b5488f692dc40a7a8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/nn-NO/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/nn-NO/thunderbird-128.2.3esr.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
sha256 = "835b1befa30afa3d8cd50f4cd9a2922cb63815ac1c9b240c491d114f4e8542cf";
sha256 = "b1c25025a407d698a45e6e0077a74aba3fb80389ec9fc7cefb2f847adcec7c40";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/pa-IN/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pa-IN/thunderbird-128.2.3esr.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
sha256 = "cee9b2f3aee4e978772222f2946c99986ce36695f34e51708cae928bc66ab6ef";
sha256 = "4c8ddacd077e71f005e02c2c4c1553c6d83a96b4df1b15705dd75a302d7f6cee";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/pl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pl/thunderbird-128.2.3esr.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
sha256 = "ba29593feccd45c43605c6aaaddaa99afd25308e810e6059ca873a162a054eae";
sha256 = "4f8acd938e09f5fbe1a61d22ea93935e44a94ce00b416da48e8e74cbfcd8b2e6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/pt-BR/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pt-BR/thunderbird-128.2.3esr.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
sha256 = "5e1bb94d66d757a62e093835f91b097586980702985931813d2825bf7b90f5c6";
sha256 = "1cb2d1eb626c9784555f3dce178b4b4e119213af1c9181b829442b9fb935f0ef";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/pt-PT/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/pt-PT/thunderbird-128.2.3esr.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
sha256 = "f437bdc00cc4cd70995000c4a23dc7407f8b0b42dd42d3e536e95ea6d79f0ebf";
sha256 = "d44ed828ddf0b6ea644470dd90e332be92893d6a37abd5cdba0bec4bdafcfef9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/rm/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/rm/thunderbird-128.2.3esr.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
sha256 = "b068a55935501994c69390b2d45b3592e2d3f7fb8e270fb058aec8882a353e90";
sha256 = "77d56c77323ed0cf994f79bd9a81aa516b183542794a3ca5e4fb15f11595fa37";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ro/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ro/thunderbird-128.2.3esr.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
sha256 = "6f6fce04d2676a21dad81a77f0b875a3730e996810f249452fd49d277d13b39a";
sha256 = "8080b95078f732104df47d426cd353468fa743dc98682dfd83d72091a6701d12";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/ru/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/ru/thunderbird-128.2.3esr.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
sha256 = "2044141931cb4735ef1236b8c000aeed718266cbbd3c28b5d3fd3ddda4f64317";
sha256 = "2ddd6a04de6b15e439c43435772c09823e7814561d9228db63b17fcd6c00a6c1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/sk/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sk/thunderbird-128.2.3esr.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
sha256 = "bdf6d92e16397237d5c9168d3d5f14d0ffc8df04e9b435a5f1e7a49138cf593f";
sha256 = "ed9f68ac0accc5ae9a4e86fc723a2d4128255ffd48264e0290a63792b5171c8a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/sl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sl/thunderbird-128.2.3esr.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
sha256 = "21aa9cd554c5a5d6f23f433c4697e47e3fca90d957f9a413d3b7aeb030055544";
sha256 = "d85ef11dc6f123696a0d9b021ebc1b78b606e9cc372b92ecdbf227d3fd275c3b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/sq/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sq/thunderbird-128.2.3esr.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
sha256 = "f8bfdbb24d67341cd5d3e88012883835a2d48f18e0d6efe33c1b726431bc279b";
sha256 = "59bb9dcb795ce15413c836ec671ba0760eba831741ecd94d181199171d26d3b3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/sr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sr/thunderbird-128.2.3esr.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
sha256 = "f906ca1bd4391ccad57eed53d247d32fd62b3328a005e034e5f76e74ea37aa4b";
sha256 = "257e912ea0396a95681fc72a4f8db2248250defbb0a146c8618a067e582f14c6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/sv-SE/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/sv-SE/thunderbird-128.2.3esr.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
sha256 = "697c1c80cc743f5446c3d6744cfac640bf5968d9b8322697546af9a4cffe6517";
sha256 = "4d1fb17a41af616be0e357e4accb2757adfc6d81ca586136f93dc44144b30c4b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/th/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/th/thunderbird-128.2.3esr.tar.bz2";
locale = "th";
arch = "linux-x86_64";
sha256 = "62bf8a81688e3405ebde85623df7cbb9c87a41ed0b86ef32f791c1a3b383c185";
sha256 = "e52c7d23fa7c8ab9e1868eda178ae82ab0d9c86f3a8bb1b112817692e05fcc24";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/tr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/tr/thunderbird-128.2.3esr.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
sha256 = "af3b01def0092f1abd3dc7517ac68e41d92fa816ff0ee0045a14fffd257dc732";
sha256 = "ffa0651c001df67568e7e87b5755943894a9f55f4a8f67d7e10d08dd49a635a6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/uk/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/uk/thunderbird-128.2.3esr.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
sha256 = "0b5c83c3e28b59c7feeba5ce953b0b60d115f33f567e7942d450c804e4f0d236";
sha256 = "b208ef12f677ad325d460b9a67d68e9b78a0ba4b7cd9c4eff6b2a25ba0e1f051";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/uz/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/uz/thunderbird-128.2.3esr.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
sha256 = "45091cbd6336995b86d3e2b5e0ef82792dc5484a90ca94de905526d3122853c2";
sha256 = "7a11f1ae369d4dc1805d9221184718011533b8a657ebbc7205a60526ce1d7b97";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/vi/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/vi/thunderbird-128.2.3esr.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
sha256 = "448a8ed43b80448994b918f3f91c3de3698b106f578b776efbaa7b4e4c4d3fc1";
sha256 = "057b2458a6b6759833c86f5e7019b3495a70e2656ad7089f1491c0dfda28e689";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/zh-CN/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/zh-CN/thunderbird-128.2.3esr.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
sha256 = "53cbdf5039e2f6d724b45ecf948c63af367e7df4f7766e628fb945fce33734f8";
sha256 = "74d44042e2ac9e95336f1d13930424dc420f5bcef9f0308e2f19a6fc34c97dda";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-x86_64/zh-TW/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-x86_64/zh-TW/thunderbird-128.2.3esr.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
sha256 = "147e2983179d906c7878a889a4e05be792fb54336f029b7c4c7f26f115ed9217";
sha256 = "5ccf633ad828fffc3c9e352c78d245df61f2c56eea49e8bda021645d1425e85a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/af/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/af/thunderbird-128.2.3esr.tar.bz2";
locale = "af";
arch = "linux-i686";
sha256 = "282558d2d07b3c44de23c5684771e8f2eab9f67f5fef844f569f84474687da04";
sha256 = "997ac3091e641305cf282723590d48204fd542376d0227ce98cd9a7bf24230c0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ar/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ar/thunderbird-128.2.3esr.tar.bz2";
locale = "ar";
arch = "linux-i686";
sha256 = "972d674e174433e6dd91627942a1d2e3e06b16c9fcc5288b9ab1f92a0a2526f8";
sha256 = "f5f0564d607ff19d51508dd17f908e38d8d4f53bb4241b4e828a5bba2c1b8eee";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ast/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ast/thunderbird-128.2.3esr.tar.bz2";
locale = "ast";
arch = "linux-i686";
sha256 = "bb7c12421185c2a1db8e94bcd7d0c7b9d461272652ab22fa5a05f08e83a226c3";
sha256 = "2e585288ae394f9f32038ae75ae47398857c21c88af68cac8d3c7801f2b6b55b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/be/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/be/thunderbird-128.2.3esr.tar.bz2";
locale = "be";
arch = "linux-i686";
sha256 = "0a731f7c5caa910719d3efbf8d65a8d7149a3195631263de13e0ccdc51eb5268";
sha256 = "0379fbb7416bb4c92ba77403f5769cc810387c3b5f9518b1061ed2f2e3f179a1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/bg/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/bg/thunderbird-128.2.3esr.tar.bz2";
locale = "bg";
arch = "linux-i686";
sha256 = "af55dd242ea2edceb2b7faabcf26f1c976efb9f8b5ff76d5b07cfbd9c6eb55d5";
sha256 = "1a07ca44cd3071c4adc640a53ff2f0e9b66b8b4a2855b8ba1a491e98d14ec3e0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/br/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/br/thunderbird-128.2.3esr.tar.bz2";
locale = "br";
arch = "linux-i686";
sha256 = "b5b249a78710ba4c7d1bc696fccfa7a63a517d537ac4f011ba7a22f2d3fffb0a";
sha256 = "cd47f44426a82afd286064963782403eaaccabf40fc43335761770c7595c6776";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ca/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ca/thunderbird-128.2.3esr.tar.bz2";
locale = "ca";
arch = "linux-i686";
sha256 = "2dc876760e6520cd3ace249943e37d363f98388e799c0e0fb2d51e751404de40";
sha256 = "51009f72230f084d005fe9424d5e4f161a1428e650e7b9cd396132a64352ecfd";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/cak/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/cak/thunderbird-128.2.3esr.tar.bz2";
locale = "cak";
arch = "linux-i686";
sha256 = "836350ae188d39899231a26d7e10eaa029559c83a3395b7c74536d37f73d795f";
sha256 = "27d392a801b4727cc002685248f2b9abdd6a7987fedb88e1f6dd5a237f3a2f0b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/cs/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/cs/thunderbird-128.2.3esr.tar.bz2";
locale = "cs";
arch = "linux-i686";
sha256 = "1b3bdd19f3e880bab7428e831f490c0ce69fe1db20b8699402e956f09b77c5ff";
sha256 = "1de78102a09e564cae08bcf4228aa06ee191abe89975e0e5936cdd98b82d6919";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/cy/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/cy/thunderbird-128.2.3esr.tar.bz2";
locale = "cy";
arch = "linux-i686";
sha256 = "b1153a70b2bcf6e9f0deaaaf175a5085921f7d1e1a1f319136c94ce57bef54ed";
sha256 = "fdc84d26c11acbd6d92d3ac2104e15317eb82fdec3c3d0fa8a5c31ce023ad039";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/da/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/da/thunderbird-128.2.3esr.tar.bz2";
locale = "da";
arch = "linux-i686";
sha256 = "a2eb8ba6175dd4b7336ab05fe4834527a31ab5e13abb0381f187e91f836031e3";
sha256 = "eb0a2cd1d6113d8e0bfa2233adf3b00dfa950ebf2fc3319fe1b6afa75a616c98";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/de/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/de/thunderbird-128.2.3esr.tar.bz2";
locale = "de";
arch = "linux-i686";
sha256 = "1c23af1559f2e8f090cc651c827d4130e74f7141daae585ddc43c0287b8b0e0a";
sha256 = "4953cae2c051b63f360964c8efbe7ab4f682e06e4058382b959b6ce843418c96";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/dsb/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/dsb/thunderbird-128.2.3esr.tar.bz2";
locale = "dsb";
arch = "linux-i686";
sha256 = "341d6a892f5b79836bb18fcd97df1b2fab695791a50af6ded0d966f1d0439008";
sha256 = "88381b5b23427bce3b53893aef9d334b54101cd30b2af501cc87fcb319f43c3b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/el/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/el/thunderbird-128.2.3esr.tar.bz2";
locale = "el";
arch = "linux-i686";
sha256 = "8eb920d8e41cc1ca8607580f124061f9c10a549377b591ac5cfb53b2859248d9";
sha256 = "8b5d6484cc05473b039dd74edbc30184e9ab83e40f2ed3193638dde0da7f2eca";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/en-CA/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/en-CA/thunderbird-128.2.3esr.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
sha256 = "ca2c7d3eee2129e3da7bc4a7d25db4b867c23408084a9438c4a600c1d35c9853";
sha256 = "b5c9adc111b62a9ba3d4b06c9d79953edd00a25df424ebc6ee8f9263923e6333";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/en-GB/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/en-GB/thunderbird-128.2.3esr.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
sha256 = "f8f1aeddf0b5711e10ae4a4d785380230a9f8871d73baebe95ae43f3bf4b2a45";
sha256 = "4cc02fc3f7417620256357927e9fb199ffd081996b2d08a149ebe57f4156d932";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/en-US/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/en-US/thunderbird-128.2.3esr.tar.bz2";
locale = "en-US";
arch = "linux-i686";
sha256 = "c89cda02e8a17ff8e455085ef22c1a14f8d42217239e68133ab0d3076a4df170";
sha256 = "ade6909367c4311c478d50a16fffdf2aadab51dbe59a5a7df0203adbc93d4846";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/es-AR/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/es-AR/thunderbird-128.2.3esr.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
sha256 = "30b6d06405cdc824d2ea2e8ae3352403d631e02d182621035c9c4b89a2f5d3e8";
sha256 = "461c5f11d7ae6145bb7e9779cd44c8c7107d779d30d3a20621d046b2ba092fd9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/es-ES/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/es-ES/thunderbird-128.2.3esr.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
sha256 = "4a52ee0cad2c6adb85a5e847b71761fa931f2baa34f310c2135249a1f74d1e81";
sha256 = "09bc297bcb61f8fb4216147fc360ee3071349f213f642edd5ccbab3d86ff2cb1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/es-MX/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/es-MX/thunderbird-128.2.3esr.tar.bz2";
locale = "es-MX";
arch = "linux-i686";
sha256 = "5e3ee38af26a47df39c542da9cad4f0f5fcd761b93cc25aa3b3e484afea342a2";
sha256 = "bb4332ab92aefd60e3ccad37049e1a908449c7d9809cc67343149634fa451a66";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/et/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/et/thunderbird-128.2.3esr.tar.bz2";
locale = "et";
arch = "linux-i686";
sha256 = "bad8263e3754045770662250327c14ea50a11d46d786fcf0d41f761e0cc2c60f";
sha256 = "b567ac1b9703db4c4b56b4c05d587a5c7d298f8b76858f26b2ca528a375d805b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/eu/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/eu/thunderbird-128.2.3esr.tar.bz2";
locale = "eu";
arch = "linux-i686";
sha256 = "8433875ae5b054541f6fc70ef566482acabc9f013a0010d4d3125c09acbd4e2c";
sha256 = "2d8f103540ca51ea231de0f6885b8b717eb4055016cd54d7b10849f52db3723c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/fi/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/fi/thunderbird-128.2.3esr.tar.bz2";
locale = "fi";
arch = "linux-i686";
sha256 = "4a077df147a2a27eff7cae97bf33c1d2ed92c11f6f6f6e71307bda9951137fe7";
sha256 = "7b170156acbf6a4fb315e78ad08c173d7ddcf00714ce7b40e64f9198297ed715";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/fr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/fr/thunderbird-128.2.3esr.tar.bz2";
locale = "fr";
arch = "linux-i686";
sha256 = "4373edef98045ff52146a9899159f4d0614cefc0a49740c538ea52692097d45b";
sha256 = "43972b7689800f1c2e69edca8a907d179c99ac8778931be912daefeb331a36bb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/fy-NL/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/fy-NL/thunderbird-128.2.3esr.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
sha256 = "0397b53ac71755e8ce65a946d3aa1eb2d025ee3e211857d31519f13d560e99f7";
sha256 = "5f2296663581feee2c24906bd479681fe4380c725bbdff9f299c4217b2f744ae";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ga-IE/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ga-IE/thunderbird-128.2.3esr.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
sha256 = "ea0f51dce8b5f51cb857c112eda213599a0cf85f03de718c3cccb575afe8c311";
sha256 = "c478695ffca7d13bbdd415259304f3e2c4adc52cdc16d27fb3130c6332f9360b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/gd/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/gd/thunderbird-128.2.3esr.tar.bz2";
locale = "gd";
arch = "linux-i686";
sha256 = "4f2f2d90b84349889b93be998eadff420dc547b36ed2e232c3cdf6a4269a7c1e";
sha256 = "eac3e5806ef6c62a45a0fe6e7fd3ef2d6bafc7665d70501536fa4cd0c1b745b7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/gl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/gl/thunderbird-128.2.3esr.tar.bz2";
locale = "gl";
arch = "linux-i686";
sha256 = "8737b1b7a116da2e2a7054c579d5898ecca15abff78a179d86734ea9a58e717e";
sha256 = "204f8cf41b39d991634bb79bcb0260b2f403ea93522a1fa907ad3311a5bb96c1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/he/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/he/thunderbird-128.2.3esr.tar.bz2";
locale = "he";
arch = "linux-i686";
sha256 = "2260a9384ac575b3232dc5ceed92e76d56ffd44072784d26f4efaa30a7c4d33c";
sha256 = "f2df6508f6e9caa6647cd4b6eaadde869ee4001afa438d596932c2bd49d927d8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/hr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hr/thunderbird-128.2.3esr.tar.bz2";
locale = "hr";
arch = "linux-i686";
sha256 = "30ffe91315ac17eaecbe112d4f7db5482c464843c80dcf45f2cb7739b6f957c2";
sha256 = "1c632e191f37f8e63692d4f4b8dbdf831148f8ef29ba44fde7b2cfd52e6d9cf0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/hsb/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hsb/thunderbird-128.2.3esr.tar.bz2";
locale = "hsb";
arch = "linux-i686";
sha256 = "4ab8a3ad84614e9b5efeb953e34a7258cdad035235d4de1e802351c04d135889";
sha256 = "c3f3acb8c5e45a2ccf97d25eee4c3c0e9af00785e55d8d8a5ada3edb2761cefa";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/hu/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hu/thunderbird-128.2.3esr.tar.bz2";
locale = "hu";
arch = "linux-i686";
sha256 = "e710ec3beb0656fb14962cfae06b29be24d30f5c2cefd1cbb4e8e09471193d54";
sha256 = "10bcb2f4d27a065d72d6d6a4b88dfc826f974faf5b2b1bcffb8e723c0d0d29ac";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/hy-AM/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/hy-AM/thunderbird-128.2.3esr.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
sha256 = "18941e2454d60b17aeebdc95aad7854b989e71c4e928b0147c0beb36eff54f3f";
sha256 = "267a887612e3fa82ed92ca98b97976fe3baf0ede1fc47ad30d8c4939c4d54a33";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/id/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/id/thunderbird-128.2.3esr.tar.bz2";
locale = "id";
arch = "linux-i686";
sha256 = "029c210861312a5d2d3c59f69b692692b133296b27d125367ac2cc2419e0a8d5";
sha256 = "a7ecdfcd9bfcfc17c2a32c697ec0afb0370e8f5ca066e2224ebc540d8bc61f0f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/is/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/is/thunderbird-128.2.3esr.tar.bz2";
locale = "is";
arch = "linux-i686";
sha256 = "bdc4447638fc299cf5974adf5ca268d6d4a46f6d1b22b51e54b2de46f1c266c8";
sha256 = "64d6dbbec1d876b614ca601a58faa4baca7680a4045a9c54b4331b5bd104b86a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/it/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/it/thunderbird-128.2.3esr.tar.bz2";
locale = "it";
arch = "linux-i686";
sha256 = "b3a39203e13635e59b6f58fbd053ebe630c5da786325c48f62f2493e00237d32";
sha256 = "106a92c15da3e96903b511ee7759e764b3378713b54f13437713b9c02982798a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ja/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ja/thunderbird-128.2.3esr.tar.bz2";
locale = "ja";
arch = "linux-i686";
sha256 = "d684e3c5423710c07f5f6918257acabff6ee3c7fa685fb19269f482a6c6f9c61";
sha256 = "a65e9f47fd722de2281d151c95ede105cb912c8b62d3348fab904a4fdcb6579a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ka/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ka/thunderbird-128.2.3esr.tar.bz2";
locale = "ka";
arch = "linux-i686";
sha256 = "5363ebecae103a8b5d37dbd0011e6bdc284e28beb4a32dae17314d3ab420cd22";
sha256 = "af553455b4ab549cba61e23baab72524716bd166baf8de9a0e6bb01697acceba";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/kab/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/kab/thunderbird-128.2.3esr.tar.bz2";
locale = "kab";
arch = "linux-i686";
sha256 = "06a8be9cd3cdd3a7b6dd1c9d854a92858c3bde93a1ec49986a9e9325d883527a";
sha256 = "4efed1d221fcedb3151f686d4b19cb5cb18e5d90e0ff23506bcb98144724c185";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/kk/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/kk/thunderbird-128.2.3esr.tar.bz2";
locale = "kk";
arch = "linux-i686";
sha256 = "48f9e2bb1efd842fa78cd593305771b43c80d25bbc5ae3336123af43a50a8676";
sha256 = "b02d3630206093a381dc252b8839c6d5e0e11ba36e0beb34f0e764f41d51faca";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ko/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ko/thunderbird-128.2.3esr.tar.bz2";
locale = "ko";
arch = "linux-i686";
sha256 = "09c25ebf06fb2524b3717f17a63c4ffc95925a626d0f102ce926108ba1fb4f0e";
sha256 = "c87297bec4f3865ef06aa313bfc8fe2f7d12d7a44bc4d83f47769f65b629b2f7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/lt/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/lt/thunderbird-128.2.3esr.tar.bz2";
locale = "lt";
arch = "linux-i686";
sha256 = "721c02bd8e8016494d7a32465cb69cac923fb8ba48bd32dbedde6c7e3d88a1be";
sha256 = "a7c131b03b732030a2c887bcd9931b92aacc8e620d46bae6d4e30a54f76523ec";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/lv/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/lv/thunderbird-128.2.3esr.tar.bz2";
locale = "lv";
arch = "linux-i686";
sha256 = "2f60dcfa5fbadb856aeb15b3542f27952469aa8b333fcb91d3d1e7f69cb9b3a2";
sha256 = "7641f0b0168b66a18ebda4598d6b039cff57cbea38fe25e467b35cdc28040476";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ms/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ms/thunderbird-128.2.3esr.tar.bz2";
locale = "ms";
arch = "linux-i686";
sha256 = "cdf054772acb4130e300ba0aac0e803298387e775af0d890476239e3d7be7c05";
sha256 = "ffd61330b4945c626093ae1a20b3a7ace51e4d93e32346da53cd27b0df9d1da5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/nb-NO/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/nb-NO/thunderbird-128.2.3esr.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
sha256 = "1c56b63aff8096f946388498eee83ba509c46b2f8a609665eded59f13b729d22";
sha256 = "4927bd51e18922d4f6b3ec2d6134d33943f5daa61ae0a80529a3aea3345bade6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/nl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/nl/thunderbird-128.2.3esr.tar.bz2";
locale = "nl";
arch = "linux-i686";
sha256 = "d93de2c117308f4843d9c9377ad336730834132ce823d2d0a1f49c40160c0933";
sha256 = "b3010b541469aae57a0909d6f72c0f76482782d85cceef4e1dc970d36e53ae3a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/nn-NO/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/nn-NO/thunderbird-128.2.3esr.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
sha256 = "4f183fe49f3725defcd1c2b4ae65bd95a5ff135b5f2ba0ef348fdecf04c2f7d4";
sha256 = "60c0c4cdd0f0b7a2f892206c1e7adcaa4e32e8cf2b29d55a2dfce0881e66096f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/pa-IN/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pa-IN/thunderbird-128.2.3esr.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
sha256 = "f9c8787bd95bdedc4e21fb9ee13b2d4ce7bb051bc3890d104b805b5f859ab922";
sha256 = "a59494d8eb43583d5e70a2c0c92aa9373edab5903435e337383c93aae848ff60";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/pl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pl/thunderbird-128.2.3esr.tar.bz2";
locale = "pl";
arch = "linux-i686";
sha256 = "f536ba3b737d23dc9e0b0f9bf6d0bef06c08c35f37ae92e8f56ce49760422614";
sha256 = "73fc938c2eb420aef5fbc023dd8d1834cf08325a18d23515155cb311198239ff";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/pt-BR/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pt-BR/thunderbird-128.2.3esr.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
sha256 = "5d7a8b873affd479fcefbe88db6677fdbe616ad67031ccf7fdeee4e740e99653";
sha256 = "fa203684e790a9529f34398763fe2410a6bf8d56b887fb9c1dca91fdca624c7d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/pt-PT/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/pt-PT/thunderbird-128.2.3esr.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
sha256 = "999f812b3ca0cec36503a425b0d756555bc159e2a1cd952a06d65034d28aa0f9";
sha256 = "63b53d16d3a1ddd88455a2eae7fe185d7abde743f284ac634d3e63bdb38d88b8";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/rm/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/rm/thunderbird-128.2.3esr.tar.bz2";
locale = "rm";
arch = "linux-i686";
sha256 = "081809c7c14f8056db296ff3ac97e2a9aaaf56302a40ffb8ede62d83e17fc944";
sha256 = "5cd0a65ea1e41e6d1a9c833edf75c5a67ce77ec9bb85107d1ba282f2abe91fde";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ro/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ro/thunderbird-128.2.3esr.tar.bz2";
locale = "ro";
arch = "linux-i686";
sha256 = "61ffe80eb8d740dda615ced1365b96f6a453947cd174bc3e96577538e3ffb8b3";
sha256 = "a000256b2ae3a67ccf6f805fbb6c122fd624448021312a7311773a59f412c5ae";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/ru/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/ru/thunderbird-128.2.3esr.tar.bz2";
locale = "ru";
arch = "linux-i686";
sha256 = "c71adef5e11819e3cb7d8ba9c4081058e76f5e3a07e57f8e6c66dd4baf53945c";
sha256 = "531a05a5e7b5e4c1de4968a5b3e29aa28e7cb36358d8ffb2dd39f0e1a47738ab";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/sk/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sk/thunderbird-128.2.3esr.tar.bz2";
locale = "sk";
arch = "linux-i686";
sha256 = "28f2ead6651a8fd9d2e75ad3eca88161e93aa13b0ab4e4efa22a5b4e0f77804d";
sha256 = "178ff0a5f05544cf8b2275bc96328055dab6250fb6b4292a51a8295981340d05";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/sl/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sl/thunderbird-128.2.3esr.tar.bz2";
locale = "sl";
arch = "linux-i686";
sha256 = "ace141250862bd1ed339e2a808c059e453ee48cc655e1fec00539c44c12fc77a";
sha256 = "5750677fa4c9fa04d9c91a93962eb5ee701deab20889adb3bf7c913832358d87";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/sq/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sq/thunderbird-128.2.3esr.tar.bz2";
locale = "sq";
arch = "linux-i686";
sha256 = "4463332d93d5f055a39aefefee061c496e4df909c5f605e561bdad524df0ec8b";
sha256 = "1d64734c7b31fd002978dfb08cb058310638bddbe55bab225bd9e2015e7b7f86";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/sr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sr/thunderbird-128.2.3esr.tar.bz2";
locale = "sr";
arch = "linux-i686";
sha256 = "c6b2bc17a929cce1f829809870cbee9be414c0847ce00a51afa923977a1e0bb7";
sha256 = "ce5dae0a9ba5be012eb5e44ce06a7b4c18f4b137caca1b19dbc4bdad32d777a9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/sv-SE/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/sv-SE/thunderbird-128.2.3esr.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
sha256 = "71241892935c67e156ea3b37e46056896ac9e60ec90f328ff6fbde1d3fc15bff";
sha256 = "418e5fbbd04816de06031f56fe73033dbc72df70de688f80604fc5a16275c304";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/th/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/th/thunderbird-128.2.3esr.tar.bz2";
locale = "th";
arch = "linux-i686";
sha256 = "23a404e4f2ad01295a8a6b8439e6a4a733b4ee26eeb709c71ef76a6fb859a244";
sha256 = "4ca1e251bb36653242a8061491304f345f016c2582a68726869453ce2047df8c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/tr/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/tr/thunderbird-128.2.3esr.tar.bz2";
locale = "tr";
arch = "linux-i686";
sha256 = "e418a2be53df374d9ea08fd64a890dbe076e420d9b0e2db3dd58035433801d57";
sha256 = "2934a095eddd73b84a3fe2fba2d8273e36c1b853cf8f00951fb58ab96ef142f5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/uk/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/uk/thunderbird-128.2.3esr.tar.bz2";
locale = "uk";
arch = "linux-i686";
sha256 = "0185113bbdda3bf7fc03578ff8cd7c2cabf691608d3ff67e598bb669c60690fb";
sha256 = "ff82f18e9ba352df0d395534f306fc78b696341f193619c5e3de03dba8dde09a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/uz/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/uz/thunderbird-128.2.3esr.tar.bz2";
locale = "uz";
arch = "linux-i686";
sha256 = "dda399a258e14ce9f38b5b1c4b9c366c52ed0d3158ae8eda45da3e28648bba6e";
sha256 = "679ecaa3f670e49cc741ce113280db9d55d9bbf3798337f9959e1e2e0f6ccf06";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/vi/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/vi/thunderbird-128.2.3esr.tar.bz2";
locale = "vi";
arch = "linux-i686";
sha256 = "fadfa641fd7363d82856b2957645a619c9f8f582c9bda78b6a74a825729aec91";
sha256 = "753006173e67f07c87066915be9312826547fb7ee500a1aafffc1d56ba56c34c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/zh-CN/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/zh-CN/thunderbird-128.2.3esr.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
sha256 = "667e7244f358e12973df794afd4077bb1ceb7e4cbaee88f0832cb2c25d151d1d";
sha256 = "0eb18aba4976e0b17de9584773e4bb66883c1624423fec104e8b893132f24bac";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.0esr/linux-i686/zh-TW/thunderbird-128.2.0esr.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/128.2.3esr/linux-i686/zh-TW/thunderbird-128.2.3esr.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
sha256 = "becf451ca9483fb8a8d0b9d76942eac71df2d4ea063ff8f5411e84d9b8392898";
sha256 = "e28e778c121abc8259445bbee5e5bd0b787f21faac556b7c77452096d60fb219";
}
];
}

View File

@ -28,15 +28,14 @@ let
in
stdenv.mkDerivation rec {
pname = "qbittorrent"
+ lib.optionalString (guiSupport && qtVersion == "5") "-qt5"
+ lib.optionalString (!guiSupport) "-nox";
version = "4.6.7";
version = "5.0.0";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qBittorrent";
rev = "release-${version}";
hash = "sha256-vUC8YIuyoGnl46FajfJG/XFXG+2lM9EaHWl2Hfo3T7c=";
hash = "sha256-iwqJaRfwJTL6SimWTNqqqFPXxSKrgo6whYY70llZyGs";
};
nativeBuildInputs = [
@ -62,9 +61,7 @@ stdenv.mkDerivation rec {
python3
];
cmakeFlags = lib.optionals (qtVersion == "6") [
"-DQT6=ON"
] ++ lib.optionals (!guiSupport) [
cmakeFlags = lib.optionals (!guiSupport) [
"-DGUI=OFF"
"-DSYSTEMD=ON"
"-DSYSTEMD_SERVICES_INSTALL_DIR=${placeholder "out"}/lib/systemd/system"

View File

@ -57,7 +57,7 @@ assert withQt -> qt6 != null;
stdenv.mkDerivation rec {
pname = "wireshark-${if withQt then "qt" else "cli"}";
version = "4.2.6";
version = "4.2.7";
outputs = [ "out" "dev" ];
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
repo = "wireshark";
owner = "wireshark";
rev = "v${version}";
hash = "sha256-zlFTUgsEKraE9crS5SZ13r93JJzUb6eyBhusJbbGwsE=";
hash = "sha256-0tBAmZz8tQfcTtKZf0TZ+I3aaarUCxlpaBXM4zNzkxM=";
};
patches = [

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "morgen";
version = "3.5.6";
version = "3.5.9";
src = fetchurl {
url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb";
hash = "sha256-knguIcvGCwlI83DIaX/EYt/15azMoxEWNtFIXYqLops=";
hash = "sha256-ZKlj/QuQnrqQepsJY6KCROC2fXK/4Py5tmI/FVnRi9w=";
};
nativeBuildInputs = [

View File

@ -1,30 +1,60 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libminc, bicpl, itk, fftwFloat, gsl }:
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
perl,
libminc,
bicpl,
itk_5_2,
fftwFloat,
gsl,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "EZminc";
version = "unstable-2019-03-12";
version = "2.2.00-unstable-2023-10-06";
src = fetchFromGitHub {
owner = "BIC-MNI";
repo = pname;
rev = "5e3333ee356f914d34d66d33ea8df809c7f7fa51";
sha256 = "0wy8cppf5xpgfqvgb3mqs1cjh81n6qzkk6zxv29wvng8nar9wsy4";
owner = "BIC-MNI";
repo = "EZminc";
rev = "5fdf112e837000d155891e423041d7065ea13c3f";
hash = "sha256-0KdFIWRHnIHrau0ysGMVpg3oz01UdIvna1y2I4YEWJw=";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ itk libminc bicpl fftwFloat gsl ];
postPatch = ''
patchShebangs scripts/*
'';
cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake"
"-DEZMINC_BUILD_TOOLS=TRUE"
"-DEZMINC_BUILD_MRFSEG=TRUE"
"-DEZMINC_BUILD_DD=TRUE" ];
nativeBuildInputs = [
cmake
pkg-config
];
meta = with lib; {
homepage = "https://github.com/BIC-MNI/${pname}";
buildInputs = [
itk_5_2
libminc
bicpl
fftwFloat
gsl
perl
];
cmakeFlags = [
"-DLIBMINC_DIR=${libminc}/lib/cmake"
"-DEZMINC_BUILD_TOOLS=TRUE"
"-DEZMINC_BUILD_MRFSEG=TRUE"
# "-DEZMINC_BUILD_DD=TRUE" # numerous compilation issues
];
doCheck = false; # test programs/data exist but no actual test harness
meta = {
homepage = "https://github.com/BIC-MNI/EZminc";
description = "Collection of Perl and shell scripts for processing MINC files";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix;
license = licenses.free;
broken = true; # ITK5 compatibility issue (https://github.com/BIC-MNI/EZminc/issues/15)
maintainers = with lib.maintainers; [ bcdarwin ];
platforms = lib.platforms.linux; # can't detect opengl on Darwin
license = lib.licenses.free;
};
}
})

View File

@ -13,13 +13,13 @@
, extraPkgs ? [ ]
}:
let
version = "8.3.7";
version = "8.3.18";
cbangSrc = fetchFromGitHub {
owner = "cauldrondevelopmentllc";
repo = "cbang";
rev = "bastet-v${version}";
sha256 = "sha256-acAImItdkgo6PBFL6Vu/caIdcnvp/3VEW2lgVDgKy9g=";
sha256 = "sha256-BQNomjz6Bhod3FOC5iICwt1rPrZgIxGQ08yspSvAnJc=";
};
fah-client = stdenv.mkDerivation {
@ -30,7 +30,7 @@ let
owner = "FoldingAtHome";
repo = "fah-client-bastet";
rev = "v${version}";
sha256 = "sha256-d+LY/R4TAko+2e2W76KEBQ8fXj0hzzmBOm+c4tksXMA=";
sha256 = "sha256-lqpC1fAMFb8iX02daVre/pE0c7DkwswlFigJS3ZGEjM=";
};
nativeBuildInputs = [ scons re2 libevent git ];

View File

@ -56,7 +56,7 @@
stdenv.mkDerivation rec {
pname = "root";
version = "6.32.04";
version = "6.32.06";
passthru = {
tests = import ./tests { inherit callPackage; };
@ -64,15 +64,15 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
hash = "sha256-Ey8Saq59MO+8zX3NmRt62hiQrleYDvMAwWQh+dTQfqg=";
hash = "sha256-P8Ay2T/oSN6lrbG0fY8KhieVIyk/7gqis81Sof+rckc=";
};
clad_src = fetchgit {
url = "https://github.com/vgvassilev/clad";
# Make sure that this is the same tag as in the ROOT build files!
# https://github.com/root-project/root/blob/master/interpreter/cling/tools/plugins/clad/CMakeLists.txt#L76
rev = "refs/tags/v1.6";
hash = "sha256-Fv3i84lgoifxtyWKhQjj1c4bR9wSl5SPzUh0ZhZBxFI=";
rev = "refs/tags/v1.7";
hash = "sha256-iKrZsuUerrlrjXBrxcTsFu/t0Pb0sa4UlfSwd1yhg3g=";
};
nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
@ -124,22 +124,22 @@ stdenv.mkDerivation rec {
fi
done
substituteInPlace cmake/modules/SearchInstalledSoftware.cmake \
--replace 'set(lcgpackages ' '#set(lcgpackages '
--replace-fail 'set(lcgpackages ' '#set(lcgpackages '
# We have to bypass the connection check, because it would disable clad.
# This should probably be fixed upstream with a flag to disable the
# connectivity check!
substituteInPlace CMakeLists.txt \
--replace 'if(clad AND NO_CONNECTION)' 'if(FALSE)'
--replace-fail 'if(clad AND NO_CONNECTION)' 'if(FALSE)'
# Make sure that clad is not downloaded when building
substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \
--replace 'UPDATE_COMMAND ""' 'SOURCE_DIR ${clad_src} DOWNLOAD_COMMAND "" UPDATE_COMMAND ""'
--replace-fail 'UPDATE_COMMAND ""' 'SOURCE_DIR ${clad_src} DOWNLOAD_COMMAND "" UPDATE_COMMAND ""'
# Make sure that clad is finding the right llvm version
substituteInPlace interpreter/cling/tools/plugins/clad/CMakeLists.txt \
--replace '-DLLVM_DIR=''${LLVM_BINARY_DIR}' '-DLLVM_DIR=${llvm_16.dev}/lib/cmake/llvm'
--replace-fail '-DLLVM_DIR=''${LLVM_BINARY_DIR}' '-DLLVM_DIR=${llvm_16.dev}/lib/cmake/llvm'
substituteInPlace interpreter/llvm-project/clang/tools/driver/CMakeLists.txt \
--replace 'add_clang_symlink(''${link} clang)' ""
--replace-fail 'add_clang_symlink(''${link} clang)' ""
# Don't require textutil on macOS
: > cmake/modules/RootCPack.cmake
@ -152,7 +152,7 @@ stdenv.mkDerivation rec {
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
# Eliminate impure reference to /System/Library/PrivateFrameworks
substituteInPlace core/macosx/CMakeLists.txt \
--replace "-F/System/Library/PrivateFrameworks " ""
--replace-fail "-F/System/Library/PrivateFrameworks " ""
'' + lib.optionalString (stdenv.hostPlatform.isDarwin && lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
MACOSX_DEPLOYMENT_TARGET=10.16
'';

View File

@ -0,0 +1,19 @@
diff --git a/osdep/mac/input_helper.swift b/osdep/mac/input_helper.swift
index 0acec6bd40..0ec5837864 100644
--- a/osdep/mac/input_helper.swift
+++ b/osdep/mac/input_helper.swift
@@ -18,6 +18,14 @@
import Cocoa
import Carbon.HIToolbox
+extension NSCondition {
+ fileprivate func withLock<T>(_ body: () throws -> T) rethrows -> T {
+ self.lock()
+ defer { self.unlock() }
+ return try body()
+ }
+}
+
class InputHelper: NSObject {
var option: OptionHelper?
var lock = NSCondition()

View File

@ -151,6 +151,11 @@ stdenv'.mkDerivation (finalAttrs: {
hash = "sha256-BOGh+QBTO7hrHohh+RqjSF8eHQH8jVBPjG/k4eyFaaM=";
};
patches = [
# Fix build with Darwin SDK 11
./0001-fix-darwin-build.patch
];
postPatch = lib.concatStringsSep "\n" [
# Don't reference compile time dependencies or create a build outputs cycle
# between out and dev
@ -308,6 +313,8 @@ stdenv'.mkDerivation (finalAttrs: {
pushd ../TOOLS
cp mpv_identify.sh umpv $out/bin/
popd
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
pushd $out/share/applications
sed -e '/Icon=/ ! s|mpv|umpv|g; s|^Exec=.*|Exec=umpv %U|' \

View File

@ -25,7 +25,7 @@ versionDefinition:
ncurses,
ocamlPackages,
perl,
python311Packages,
python3Packages,
systemdMinimal,
xz,
yajl,
@ -323,6 +323,7 @@ stdenv.mkDerivation (finalAttrs: {
"doc" # The full Xen documentation in HTML format.
"dev" # Development headers.
"boot" # xen.gz kernel, policy file if Flask is enabled, xen.efi if EFI is enabled.
# TODO: Python package to be in separate output/package.
];
# Main Xen source.
@ -345,10 +346,11 @@ stdenv.mkDerivation (finalAttrs: {
flex
pandoc
pkg-config
python3Packages.setuptools
]
++ lib.lists.optionals withInternalQEMU [
ninja
python311Packages.sphinx
python3Packages.sphinx
];
buildInputs =
[
@ -362,7 +364,7 @@ stdenv.mkDerivation (finalAttrs: {
lzo
ncurses
perl
python311Packages.python
python3Packages.python
xz
yajl
zlib
@ -373,7 +375,7 @@ stdenv.mkDerivation (finalAttrs: {
ocamlPackages.ocaml
# Python Fixes
python311Packages.wrapPython
python3Packages.wrapPython
]
++ lib.lists.optionals withInternalQEMU [
glib

View File

@ -1,6 +1,12 @@
{ callPackage }:
{
python3Packages,
python311Packages,
callPackage,
}:
let
standard = {
# Broken with python 3.12+ when using internal QEMU due to https://github.com/NixOS/nixpkgs/issues/253751
python3Packages = python311Packages;
meta = {
description = "Standard";
longDescription = ''
@ -13,6 +19,7 @@ let
};
};
slim = {
inherit python3Packages;
meta = {
description = "Without Internal Components";
longDescription = ''
@ -27,30 +34,38 @@ let
in
# TODO: generalise this to automatically generate both Xen variants for each ./<version>/default.nix.
rec {
xen_4_19 = callPackage ./4.19/default.nix { inherit (standard) meta; };
xen_4_19 = callPackage ./4.19/default.nix {
inherit (standard) meta python3Packages;
};
xen_4_19-slim = xen_4_19.override {
withInternalQEMU = false;
withInternalSeaBIOS = false;
withInternalOVMF = false;
withInternalIPXE = false;
inherit (slim) meta;
inherit (slim) meta python3Packages;
};
xen_4_18 = callPackage ./4.18/default.nix { inherit (standard) meta; };
xen_4_18 = callPackage ./4.18/default.nix {
inherit (standard) meta python3Packages;
};
xen_4_18-slim = xen_4_18.override {
withInternalQEMU = false;
withInternalSeaBIOS = false;
withInternalOVMF = false;
withInternalIPXE = false;
inherit (slim) meta;
inherit (slim) meta python3Packages;
};
xen_4_17 = callPackage ./4.17/default.nix { inherit (standard) meta; };
xen_4_17 = callPackage ./4.17/default.nix {
inherit (standard) meta python3Packages;
};
xen_4_17-slim = xen_4_17.override {
withInternalQEMU = false;
withInternalSeaBIOS = false;
withInternalOVMF = false;
withInternalIPXE = false;
inherit (slim) meta;
# Broken with python 3.12+ due to distutils missing.
python3Packages = python311Packages;
};
}

View File

@ -1,8 +1,12 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, openssl
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
darwin,
libiconv,
}:
let
pname = "asm-lsp";
@ -18,13 +22,14 @@ rustPlatform.buildRustPackage {
hash = "sha256-0GB3tXZuCu3syh+RG+eXoliZVHMPOhYC3RchSSx4u5w=";
};
nativeBuildInputs = [
pkg-config
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [
openssl
];
buildInputs =
[ openssl ]
++ lib.optionals stdenv.buildPlatform.isDarwin [
darwin.apple_sdk.frameworks.SystemConfiguration
libiconv
];
cargoHash = "sha256-AtCnYOOtViMpg+rz8miuBZg1pENBPaf9kamSPaVUyiw=";
@ -37,8 +42,11 @@ rustPlatform.buildRustPackage {
description = "Language server for NASM/GAS/GO Assembly";
homepage = "https://github.com/bergercookie/asm-lsp";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ NotAShelf ];
maintainers = with lib.maintainers; [
NotAShelf
CaiqueFigueiredo
];
mainProgram = "asm-lsp";
platforms = lib.platforms.linux;
platforms = lib.platforms.unix;
};
}

View File

@ -8,16 +8,16 @@
buildGoModule rec {
pname = "athens";
version = "0.15.1";
version = "0.15.2";
src = fetchFromGitHub {
owner = "gomods";
repo = "athens";
rev = "v${version}";
hash = "sha256-JERyECQ3/pI+ApWyWvUwZqkGBmA+6pP7Uj+RfpUGsOw=";
hash = "sha256-Ikm9nznJhd5ZrkJyh3ny1SZeuWVs5xgT4fpWKhVbuDA=";
};
vendorHash = "sha256-tCpwiqJHGRo9vqUh00k+tg4X6WNPnnknV7zjPkgs6Zs=";
vendorHash = "sha256-cK23BIGh/BK1OHHrI++PD1h7lCN7NZfV1Yfirs8vC5A=";
CGO_ENABLED = "0";
ldflags = [

View File

@ -13,13 +13,13 @@
}:
let
version = "1.18.0";
version = "1.18.2";
src = fetchFromGitHub {
owner = "detachhead";
repo = "basedpyright";
rev = "refs/tags/v${version}";
hash = "sha256-o2MHZMUuVnVjdv2b+GLIMjK1FT8KfLUzo7+zH7OU7HI=";
hash = "sha256-nYbxgrNFhQ576rN8W+Hf/Keohy1N8tihOeTQHItKPRc=";
};
# To regenerate the patched package-lock.json, copy the patched package.json
@ -51,7 +51,7 @@ let
pname = "pyright-internal";
inherit version src;
sourceRoot = "${src.name}/packages/pyright-internal";
npmDepsHash = "sha256-pavURV/smWxYUWpRjVM08pJqfdNl/fULds66miC2iwg=";
npmDepsHash = "sha256-Md17EF3a1GBfnHD2fnLGS76r0xiWYJmBBTzZWRc0j5c=";
dontNpmBuild = true;
# Uncomment this flag when using unreleased peer dependencies
# npmFlags = [ "--legacy-peer-deps" ];

View File

@ -1,26 +1,28 @@
{ lib
, stdenv
, fetchurl
, SDL2
, curl
, darwin
, docbook_xml_dtd_45
, docbook_xsl
, gtk3
, libGL
, libGLU
, libX11
, libXpm
, libtool
, ncurses
, pkg-config
, readline
, wget
, wxGTK32
, enableSDL2 ? true
, enableTerm ? true
, enableWx ? !stdenv.hostPlatform.isDarwin
, enableX11 ? !stdenv.hostPlatform.isDarwin
{
lib,
SDL2,
curl,
darwin,
docbook_xml_dtd_45,
docbook_xsl,
fetchurl,
gtk3,
libGL,
libGLU,
libX11,
libXpm,
libtool,
ncurses,
pkg-config,
readline,
stdenv,
wget,
wxGTK32,
# Boolean flags
enableSDL2 ? true,
enableTerm ? true,
enableWx ? !stdenv.hostPlatform.isDarwin,
enableX11 ? !stdenv.hostPlatform.isDarwin,
}:
stdenv.mkDerivation (finalAttrs: {
@ -39,98 +41,110 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
];
buildInputs = [
curl
readline
wget
] ++ lib.optionals enableSDL2 [
SDL2
] ++ lib.optionals enableTerm [
ncurses
] ++ lib.optionals enableWx [
gtk3
wxGTK32
] ++ lib.optionals enableX11 [
libGL
libGLU
libX11
libXpm
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.libobjc
];
buildInputs =
[
curl
readline
wget
]
++ lib.optionals enableSDL2 [
SDL2
]
++ lib.optionals enableTerm [
ncurses
]
++ lib.optionals enableWx [
gtk3
wxGTK32
]
++ lib.optionals enableX11 [
libGL
libGLU
libX11
libXpm
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.libobjc
];
configureFlags = [
"--with-rfb=no"
"--with-vncsrv=no"
"--with-nogui"
configureFlags =
[
(lib.withFeature false "rfb")
(lib.withFeature false "vncsrv")
(lib.withFeature true "nogui")
# These will always be "yes" on NixOS
"--enable-ltdl-install=yes"
"--enable-readline=yes"
"--enable-all-optimizations=yes"
"--enable-logging=yes"
"--enable-xpm=yes"
# These will always be "yes" on NixOS
(lib.enableFeature true "ltdl-install")
(lib.enableFeature true "readline")
(lib.enableFeature true "all-optimizations")
(lib.enableFeature true "logging")
(lib.enableFeature true "xpm")
# ... whereas these, always "no"!
"--enable-cpp=no"
"--enable-instrumentation=no"
# ... whereas these, always "no"!
(lib.enableFeature false "cpp")
(lib.enableFeature false "instrumentation")
"--enable-docbook=no" # Broken - it requires docbook2html
(lib.enableFeature false "docbook") # Broken - it requires docbook2html
# Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
"--enable-3dnow=no"
"--enable-monitor-mwait=no"
"--enable-raw-serial=no"
# Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
(lib.enableFeature false "3dnow")
(lib.enableFeature false "monitor-mwait")
(lib.enableFeature false "raw-serial")
# These are completely configurable, and they don't depend of external tools
"--enable-a20-pin"
"--enable-avx"
"--enable-busmouse"
"--enable-cdrom"
"--enable-clgd54xx"
"--enable-configurable-msrs"
"--enable-cpu-level=6" # from 3 to 6
"--enable-debugger" #conflicts with gdb-stub option
"--enable-debugger-gui"
"--enable-evex"
"--enable-fpu"
"--enable-gdb-stub=no" # conflicts with debugger option
"--enable-handlers-chaining"
"--enable-idle-hack"
"--enable-iodebug"
"--enable-large-ramfile"
"--enable-largefile"
"--enable-pci"
"--enable-repeat-speedups"
"--enable-show-ips"
"--enable-smp"
"--enable-vmx=2"
"--enable-svm"
"--enable-trace-linking"
"--enable-usb"
"--enable-usb-ehci"
"--enable-usb-ohci"
"--enable-usb-xhci"
"--enable-voodoo"
"--enable-x86-64"
"--enable-x86-debugger"
] ++ lib.optionals enableSDL2 [
"--with-sdl2"
] ++ lib.optionals enableTerm [
"--with-term"
] ++ lib.optionals enableWx [
"--with-wx"
] ++ lib.optionals enableX11 [
"--with-x"
"--with-x11"
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
"--enable-e1000"
"--enable-es1370"
"--enable-ne2000"
"--enable-plugins"
"--enable-pnic"
"--enable-sb16"
];
# These are completely configurable, and they don't depend of external tools
(lib.enableFeature true "a20-pin")
(lib.enableFeature true "avx")
(lib.enableFeature true "busmouse")
(lib.enableFeature true "cdrom")
(lib.enableFeature true "clgd54xx")
(lib.enableFeature true "configurable-msrs")
(lib.enableFeatureAs true "cpu-level" "6") # from 3 to 6
(lib.enableFeature true "debugger") # conflicts with gdb-stub option
(lib.enableFeature true "debugger-gui")
(lib.enableFeature true "evex")
(lib.enableFeature true "fpu")
(lib.enableFeature false "gdb-stub") # conflicts with debugger option
(lib.enableFeature true "handlers-chaining")
(lib.enableFeature true "idle-hack")
(lib.enableFeature true "iodebug")
(lib.enableFeature true "large-ramfile")
(lib.enableFeature true "largefile")
(lib.enableFeature true "pci")
(lib.enableFeature true "repeat-speedups")
(lib.enableFeature true "show-ips")
(lib.enableFeature true "smp")
(lib.enableFeatureAs true "vmx" "2")
(lib.enableFeature true "svm")
(lib.enableFeature true "trace-linking")
(lib.enableFeature true "usb")
(lib.enableFeature true "usb-ehci")
(lib.enableFeature true "usb-ohci")
(lib.enableFeature true "usb-xhci")
(lib.enableFeature true "voodoo")
(lib.enableFeature true "x86-64")
(lib.enableFeature true "x86-debugger")
]
++ lib.optionals enableSDL2 [
(lib.withFeature true "sdl2")
]
++ lib.optionals enableTerm [
(lib.withFeature true "term")
]
++ lib.optionals enableWx [
(lib.withFeature true "wx")
]
++ lib.optionals enableX11 [
(lib.withFeature true "x")
(lib.withFeature true "x11")
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
(lib.enableFeature true "e1000")
(lib.enableFeature true "es1370")
(lib.enableFeature true "ne2000")
(lib.enableFeature true "plugins")
(lib.enableFeature true "pnic")
(lib.enableFeature true "sb16")
];
enableParallelBuilding = true;

View File

@ -0,0 +1,44 @@
{
buildNpmPackage,
fetchFromGitHub,
git,
lib,
nix,
unstableGitUpdater,
}:
buildNpmPackage rec {
pname = "bower2nix";
version = "3.2.0-unstable-2024-06-25";
src = fetchFromGitHub {
owner = "rvl";
repo = "bower2nix";
rev = "b5da44f055c7561ed7a46226b3be0070e07d80e6";
hash = "sha256-da+m2UWQ83tW1o0P1qvw35KpsXL/BDTeShg4KxL+7Ck=";
};
npmDepsHash = "sha256-TK1sqF2J/hQuP3bgGA4MolLA7LWWuYNnqf4gDyU154k=";
npmBuildScript = "prepare";
makeWrapperArgs = [
"--prefix PATH : ${
lib.makeBinPath [
git
nix
]
}"
];
passthru.updateScript = unstableGitUpdater { tagPrefix = "v"; };
meta = {
changelog = "https://github.com/rvl/bower2nix/releases/tag/v${version}";
description = "Generate nix expressions to fetch bower dependencies";
homepage = "https://github.com/rvl/bower2nix";
license = lib.licenses.gpl3Only;
mainProgram = "bower2nix";
maintainers = [ ];
};
}

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-make";
version = "0.37.16";
version = "0.37.18";
src = fetchFromGitHub {
owner = "sagiegurari";
repo = "cargo-make";
rev = version;
hash = "sha256-OC1HzoEb9OyusYGC5jmEC4qW4U3oGApYvpy5XkZttSg=";
hash = "sha256-fiS4Z+Ao3DHyIal1GNXsCEgbLy1fsjbOdLcr7jNvhzA=";
};
cargoHash = "sha256-voa456NCuOVEcLlJeUD1G3phzLufqfE0R88aYxcd3ew=";
cargoHash = "sha256-GyHaVcrrq3v/d1WJmpteGwVkB9mLk+OIRDSkwR+aPMI=";
nativeBuildInputs = [ pkg-config ];

View File

@ -4,18 +4,15 @@
fetchurl,
appimageTools,
makeWrapper,
writeShellApplication,
curl,
yq,
common-updater-scripts,
writeScript,
}:
let
pname = "cursor";
version = "0.41.1";
version = "0.41.3";
appKey = "230313mzl4w4u92";
src = fetchurl {
url = "https://download.todesktop.com/${appKey}/cursor-0.41.1-build-2409189xe3envg5-x86_64.AppImage";
hash = "sha256-9zqktOR5UOMLkKLD1uJ8eNSujWnnyKAN9H8ejrgcfVU=";
url = "https://download.todesktop.com/230313mzl4w4u92/cursor-0.41.3-build-240925fkhcqg263-x86_64.AppImage";
hash = "sha256-WtfyiNGnUn8g1HR0TQPyn3SMJmjqe+otAYeyokMIO+w=";
};
appimageContents = appimageTools.extractType2 { inherit version pname src; };
in
@ -46,23 +43,21 @@ stdenvNoCC.mkDerivation {
runHook postInstall
'';
passthru = {
updateScript = lib.getExe (writeShellApplication {
name = "update-cursor";
runtimeInputs = [
curl
yq
common-updater-scripts
];
text = ''
set -o errexit
latestLinux="$(curl -s https://download.todesktop.com/${appKey}/latest-linux.yml)"
version="$(echo "$latestLinux" | yq -r .version)"
filename="$(echo "$latestLinux" | yq -r '.files[] | .url | select(. | endswith(".AppImage"))')"
update-source-version code-cursor "$version" "" "https://download.todesktop.com/${appKey}/$filename" --source-key=src.src
'';
});
};
passthru.updateScript = writeScript "update.sh" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl yq coreutils gnused common-updater-scripts
set -eu -o pipefail
latestLinux="$(curl -s https://download.todesktop.com/${appKey}/latest-linux.yml)"
version="$(echo "$latestLinux" | yq -r .version)"
filename="$(echo "$latestLinux" | yq -r '.files[] | .url | select(. | endswith(".AppImage"))')"
url="https://download.todesktop.com/${appKey}/$filename"
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; code-cursor.version or (lib.getVersion code-cursor)" | tr -d '"')
if [[ "$version" != "$currentVersion" ]]; then
hash=$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url "$url")")
update-source-version code-cursor "$version" "$hash" "$url" --source-key=src.src
fi
'';
meta = {
description = "AI-powered code editor built on vscode";

View File

@ -0,0 +1,117 @@
{
lib,
flutter324,
fetchFromGitHub,
webkitgtk,
sqlite,
libayatana-appindicator,
makeDesktopItem,
copyDesktopItems,
imagemagick,
makeWrapper,
xdg-user-dirs,
}:
let
# fetch simple-icons directly to avoid cloning with submodules,
# which would also clone a whole copy of flutter
simple-icons = fetchFromGitHub (lib.importJSON ./simple-icons.json);
in
flutter324.buildFlutterApplication rec {
pname = "ente-auth";
version = "4.0.2";
src = fetchFromGitHub {
owner = "ente-io";
repo = "ente";
sparseCheckout = [ "auth" ];
rev = "auth-v${version}";
hash = "sha256-me+fT79vwqBBNsRWWo58GdzBf58LNB4Mk+pmCLvn/ik=";
};
sourceRoot = "${src.name}/auth";
pubspecLock = lib.importJSON ./pubspec.lock.json;
patchPhase = ''
rmdir assets/simple-icons
ln -s ${simple-icons} assets/simple-icons
'';
gitHashes = {
desktop_webview_window = "sha256-jdNMpzFBgw53asWlGzWUS+hoPdzcL6kcJt2KzjxXf2E=";
ente_crypto_dart = "sha256-XBzQ268E0cYljJH6gDS5O0Pmie/GwuhMDlQPfopSqJM=";
flutter_local_authentication = "sha256-r50jr+81ho+7q2PWHLf4VnvNJmhiARZ3s4HUpThCgc0=";
flutter_secure_storage_linux = "sha256-x45jrJ7pvVyhZlpqRSy3CbwT4Lna6yi/b2IyAilWckg=";
sqflite = "sha256-TdvCtEO7KL1R2oOSwGWllmS5kGCIU5CkvvUqUJf3tUc=";
};
nativeBuildInputs = [
copyDesktopItems
imagemagick
makeWrapper
];
buildInputs = [
webkitgtk
sqlite
libayatana-appindicator
];
# Based on https://github.com/ente-io/ente/blob/main/auth/linux/packaging/rpm/make_config.yaml
# and https://github.com/ente-io/ente/blob/main/auth/linux/packaging/ente_auth.appdata.xml
desktopItems = makeDesktopItem {
name = "ente_auth";
exec = "ente_auth";
icon = "ente-auth";
desktopName = "Ente Auth";
genericName = "Ente Authentication";
comment = "Open source 2FA authenticator, with end-to-end encrypted backups";
categories = [ "Utility" ];
keywords = [
"Authentication"
"2FA"
];
mimeTypes = [ "x-scheme-handler/enteauth" ];
startupNotify = false;
};
postInstall = ''
FAV=$out/app/data/flutter_assets/assets/icons/auth-icon.png
ICO=$out/share/icons
install -D $FAV $ICO/ente-auth.png
for size in 24 32 42 64 128 256 512; do
D=$ICO/hicolor/''${size}x''${size}/apps
mkdir -p $D
magick $FAV -resize ''${size}x''${size} $D/ente-auth.png
done
install -Dm444 linux/packaging/ente_auth.appdata.xml -t $out/share/metainfo
wrapProgram $out/bin/ente_auth \
--prefix PATH : ${lib.makeBinPath [ xdg-user-dirs ]}
'';
passthru.updateScript = ./update.sh;
meta = {
description = "End-to-end encrypted, cross platform and free app for storing your 2FA codes with cloud backups";
longDescription = ''
Ente's 2FA app. An end-to-end encrypted, cross platform and free app for storing your 2FA codes with cloud backups. Works offline. You can even use it without signing up for an account if you don't want the cloud backups or multi-device sync.
'';
homepage = "https://ente.io/auth/";
changelog = "https://github.com/ente-io/ente/releases/tag/auth-v${version}";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
niklaskorz
schnow265
zi3m5f
gepbird
];
mainProgram = "ente_auth";
platforms = [
"x86_64-linux"
"aarch64-linux"
];
};
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
{
"owner": "simple-icons",
"repo": "simple-icons",
"rev": "bffc992b7d1365ee44b1683f8397e9f7a44d0c2c",
"hash": "sha256-aqX6X/UsXXprWYU0xYK+wM9vWULYI8enCbVFebEM0yw="
}

View File

@ -0,0 +1,35 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gojq nix-prefetch-github common-updater-scripts
set -eou pipefail
pkg_dir="$(dirname "$0")"
gh-curl () {
curl --silent ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "$1"
}
version="$(gh-curl "https://api.github.com/repos/ente-io/ente/releases" | gojq 'map(select(.draft == false and .prerelease == false and (.tag_name | startswith("auth-v")))) | first | .tag_name' --raw-output)"
short_version="${version:6}"
if [[ "$short_version" == "$UPDATE_NIX_OLD_VERSION" ]]; then
echo "ente-auth is already up-to-date: $short_version"
exit 0
fi
echo "Updating to $short_version"
# Subtree needed for lockfile and icons
auth_tree="$(gh-curl "https://api.github.com/repos/ente-io/ente/git/trees/$version" | gojq '.tree[] | select(.path == "auth") | .url' --raw-output)"
# Get lockfile, filter out incompatible sqlite dependency and convert to JSON
echo "Updating lockfile"
pubspec_lock="$(gh-curl "$auth_tree" | gojq '.tree[] | select(.path == "pubspec.lock") | .url' --raw-output)"
gh-curl "$pubspec_lock" | gojq '.content | @base64d' --raw-output | gojq --yaml-input 'del(.packages.sqlite3_flutter_libs)' > "$pkg_dir/pubspec.lock.json"
# Get rev and hash of simple-icons submodule
echo "Updating icons"
assets_tree="$(gh-curl "$auth_tree" | gojq '.tree[] | select(.path == "assets") | .url' --raw-output)"
simple_icons_rev="$(gh-curl "$assets_tree" | gojq '.tree[] | select(.path == "simple-icons") | .sha' --raw-output)"
nix-prefetch-github --rev "$simple_icons_rev" simple-icons simple-icons > "$pkg_dir/simple-icons.json"
# Update package version and hash
echo "Updating package source"
update-source-version ente-auth "$short_version" --file="$pkg_dir/package.nix"

View File

@ -5,10 +5,10 @@
let
pname = "fflogs";
version = "8.13.5";
version = "8.14.0";
src = fetchurl {
url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
hash = "sha256-xEOTEU7biTw/bgmGs99Nobo8tYHnIkLghddX4BDY/o8=";
hash = "sha256-hHgPtr25X2vZY+MKQn9FgkMLrF5vgklMQHzx4ksGrDk=";
};
extracted = appimageTools.extractType2 { inherit pname version src; };
in

View File

@ -5,13 +5,13 @@
buildGoModule rec {
pname = "flarectl";
version = "0.104.0";
version = "0.105.0";
src = fetchFromGitHub {
owner = "cloudflare";
repo = "cloudflare-go";
rev = "v${version}";
hash = "sha256-XHvWdSqkVEM/0FWkvSZDLEh8W2h8f+12ROrZSgmZS1k=";
hash = "sha256-xUITOBXBy5Jt0DFRNffX7sRhAtgUPMEJOHa2SbjM1n0=";
};
vendorHash = "sha256-KMCwbbDpj4QAgvKLlOPDKSlrDyf+K/tGTMM/GBlvyuc=";

View File

@ -1,12 +1,12 @@
diff --git a/common/flatpak-run.c b/common/flatpak-run.c
index e3f031d4..ed131c0b 100644
--- a/common/flatpak-run.c
+++ b/common/flatpak-run.c
@@ -571,6 +571,7 @@ static const ExportData default_exports[] = {
@@ -571,6 +571,8 @@ static const ExportData default_exports[] = {
{"XKB_CONFIG_ROOT", NULL},
{"GIO_EXTRA_MODULES", NULL},
{"GDK_BACKEND", NULL},
+ {"GDK_PIXBUF_MODULE_FILE", NULL},
+ {"TZDIR", NULL},
{"VK_ADD_DRIVER_FILES", NULL},
{"VK_ADD_LAYER_PATH", NULL},
{"VK_DRIVER_FILES", NULL},

View File

@ -0,0 +1,117 @@
{
lib,
bison,
buildPackages,
fetchurl,
installShellFiles,
pkgsBuildTarget,
stdenv,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ftjam";
version = "2.5.2";
src = fetchurl {
url = "https://downloads.sourceforge.net/project/freetype/ftjam/${finalAttrs.version}/ftjam-${finalAttrs.version}.tar.bz2";
hash = "sha256-6JdzUAqSkS3pGOn+v/q+S2vOedaa8ZRDX04DK4ptZqM=";
};
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [
bison
installShellFiles
];
# Doesn't understand how to cross compile once bootstrapped, so we'll just use
# the Makefile for the bootstrapping portion
configurePlatforms = [
"build"
"target"
];
configureFlags = [
"CC=${buildPackages.stdenv.cc.targetPrefix}cc"
"--host=${stdenv.buildPlatform.config}"
];
makeFlags = [
"CC=${buildPackages.stdenv.cc.targetPrefix}cc"
];
env = {
LOCATE_TARGET = "bin.unix";
# Jam uses c89 conventions
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-std=c89";
};
enableParallelBuilding = true;
strictDeps = true;
# Jambase expects ar to have flags.
preConfigure = ''
export AR="$AR rc"
'';
# When cross-compiling, we need to set the preprocessor macros
# OSMAJOR/OSMINOR/OSPLAT to the values from the target platform, not the host
# platform. This looks a little ridiculous because the vast majority of build
# tools don't embed target-specific information into their binary, but in this
# case we behave more like a compiler than a make(1)-alike.
postPatch =
''
substituteInPlace Jamfile \
--replace "strip" "${stdenv.cc.targetPrefix}strip"
''
+ lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) ''
cat >>jam.h <<EOF
#undef OSMAJOR
#undef OSMINOR
#undef OSPLAT
$(
${pkgsBuildTarget.targetPackages.stdenv.cc}/bin/${pkgsBuildTarget.targetPackages.stdenv.cc.targetPrefix}cc -E -dM jam.h | grep -E '^#define (OSMAJOR|OSMINOR|OSPLAT) '
)
EOF
'';
buildPhase = ''
runHook preBuild
make $makeFlags jam0
./jam0 -j$NIX_BUILD_CORES -sCC=${buildPackages.stdenv.cc.targetPrefix}cc jambase.c
./jam0 -j$NIX_BUILD_CORES
runHook postBuild
'';
# The configure script does not recognize --docdir; because of it, the outputs
# can't be split
installPhase = ''
runHook preInstall
installBin bin.unix/jam
install -Dm644 -t ''${!outputDoc}/share/doc/jam-${finalAttrs.version}/ *.html
runHook postInstall
'';
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "jam -v";
};
};
meta = {
homepage = "https://freetype.org/jam/";
description = "FreeType's enhanced, backwards-compatible Jam clone";
license = lib.licenses.free;
mainProgram = "jam";
maintainers = with lib.maintainers; [
impl
AndersonTorres
];
platforms = lib.platforms.unix;
};
})

View File

@ -1,35 +1,56 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch
, autoreconfHook, intltool
, gtk, pkg-config, flex }:
{
lib,
autoreconfHook,
fetchFromGitHub,
fetchpatch2,
flex,
gtk3,
intltool,
pkg-config,
stdenv,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "galculator";
version = "2.1.4";
src = fetchFromGitHub {
owner = "galculator";
repo = "galculator";
rev = "v${version}";
sha256 = "0q0hb62f266709ncyq96bpx4a40a1i6dc5869byvd7x285sx1c2w";
rev = "v${finalAttrs.version}";
hash = "sha256-XLDQdUGin7b9SgYV1kwMChBF+l0mYc9sAscY4YRZEGA=";
};
patches = [
# Pul patch pending upstream inclusion for -fno-common toolchain support:
# https://github.com/galculator/galculator/pull/45
(fetchpatch {
(fetchpatch2 {
name = "fno-common.patch";
url = "https://github.com/galculator/galculator/commit/501a9e3feeb2e56889c0ff98ab6d0ab20348ccd6.patch";
sha256 = "08c9d2b49a1mizgk7v37dp8r96x389zc13mzv4dcy16x448lhp67";
hash = "sha256-qVJHcfJTtl0hK8pzSp6MjhYAh1NbIIWr3rBDodIYBvk=";
})
];
nativeBuildInputs = [ autoreconfHook intltool pkg-config ];
buildInputs = [ gtk flex ];
nativeBuildInputs = [
autoreconfHook
flex
intltool
pkg-config
];
meta = with lib; {
description = "GTK 2/3 algebraic and RPN calculator";
buildInputs = [
gtk3
];
# BUG: when set as true, complains with:
# configure.in:76: error: possibly undefined macro: AM_GLIB_GNU_GETTEXT
strictDeps = false;
meta = {
homepage = "http://galculator.sourceforge.net/";
description = "GTK algebraic and RPN calculator";
longDescription = ''
galculator is a GTK 2 / GTK 3 based calculator. Its main features include:
galculator is a GTK-based calculator. Its main features include:
- Algebraic, RPN (Reverse Polish Notation), Formula Entry and Paper modes;
- Basic and Scientific Modes
@ -40,10 +61,9 @@ stdenv.mkDerivation rec {
- Binary arithmetic of configurable bit length and signedness
- Quad-precision floating point arithmetic, and 112-bit binary arithmetic
'';
homepage = "http://galculator.sourceforge.net/";
license = licenses.gpl2Plus;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
license = lib.licenses.gpl2Plus;
mainProgram = "galculator";
maintainers = with lib.maintainers; [ AndersonTorres ];
inherit (gtk3.meta) platforms;
};
}
})

View File

@ -7,16 +7,16 @@
rustPlatform.buildRustPackage rec {
pname = "gimoji";
version = "1.1.0";
version = "1.1.1";
src = fetchFromGitHub {
owner = "zeenix";
repo = "gimoji";
rev = version;
hash = "sha256-0mLFrFxMbX9Gl72W3EC7kfXHqDBo5QU+ut+1psntphY=";
hash = "sha256-X1IiDnnRXiZBL/JBDfioKc/724TnVKaEjZLrNwX5SoA=";
};
cargoHash = "sha256-pKHhYWEF9L0UX9hc2Ga3WOUWzISA8ONwn3rcI9u2/n0=";
cargoHash = "sha256-4B+IRYnqwIqkxjRjlxER8O414Zd/8Are4fu1OxA+dWI=";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.AppKit

View File

@ -10,15 +10,15 @@
rustPlatform.buildRustPackage rec {
pname = "gitlab-ci-ls";
version = "0.21.2";
version = "0.21.3";
src = fetchFromGitHub {
owner = "alesbrelih";
repo = "gitlab-ci-ls";
rev = "${version}";
hash = "sha256-wkL6ko43oWrpyscEpCMuoFamDMJk9+xI3qYOs+DgI8g=";
hash = "sha256-3PqGnknP5ilwPCDsD8GwIEamZC24lEnuQhipTo8RDI0=";
};
cargoHash = "sha256-H/p29QbCaZRa81g+5eUsG47tUJPVgB1J9zZYY5/n5Vk=";
cargoHash = "sha256-c31madEElZpHbzyKHqUDyPW/maVrkNKlldX24Y3iFGQ=";
nativeBuildInputs = [ pkg-config ];
buildInputs =

View File

@ -8,12 +8,12 @@
}:
let
version = "0.21.0";
version = "0.23.0";
gitSrc = fetchFromGitHub {
owner = "glasskube";
repo = "glasskube";
rev = "refs/tags/v${version}";
hash = "sha256-MRmT7DqD6Tlej5Y/LVr++RcMjWlGA9xFe3FNYgxIPvM=";
hash = "sha256-X9XXQ/Ke3toXLIkSCzGrypd1lKDfslpJ96zmDHBDbl8=";
};
web-bundle = buildNpmPackage rec {
inherit version;
@ -21,7 +21,7 @@ let
src = gitSrc;
npmDepsHash = "sha256-246xQz1eI3WmJxSrKe6Q/oUQtZMjpa4mYwOIqSukyo8=";
npmDepsHash = "sha256-9BicZfnrJEFrtaJ0uGmLnnY99KplnL8qdmG5FMo70uI=";
dontNpmInstall = true;
@ -41,7 +41,7 @@ in buildGo123Module rec {
src = gitSrc;
vendorHash = "sha256-RUUDIPuCxV+JwPLNxLALEmRIJ68XSNPtfwchuAJJYn0=";
vendorHash = "sha256-xpN/5VmRPFQegP+ORpb875N/+AKgxiqyZWk4Px+SCZ4=";
CGO_ENABLED = 0;

View File

@ -4,20 +4,22 @@
buildGoModule,
}:
let
version = "1.11.0";
version = "1.12.0";
in
buildGoModule {
pname = "gotestsum";
inherit version;
# move back to stable releases when build is successful
version = "${version}-unstable-2024-09-17";
src = fetchFromGitHub {
owner = "gotestyourself";
repo = "gotestsum";
rev = "v${version}";
hash = "sha256-Sq0ejnX7AJoPf3deBge8PMOq1NlMbw+Ljn145C5MQ+s=";
rev = "2f61a73f997821b2e5a1823496e8362630e213f9";
hash = "sha256-5zgchATcpoM4g5Mxex9wYanzrR0Pie9GYqx48toORkM=";
};
vendorHash = "sha256-zUqa6xlDV12ZV4N6+EZ7fLPsL8U+GB7boQ0qG9egvm0=";
vendorHash = "sha256-DR4AyEhgD71hFFEAnPfSxaWYFFV7FlPugZBHUjDynEE=";
doCheck = false;

View File

@ -58,9 +58,6 @@ python3Packages.buildPythonApplication rec {
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion {
package = harlequin;
};
};
nativeCheckInputs = [

View File

@ -18,14 +18,14 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "home-manager";
version = "0-unstable-2024-09-21";
version = "0-unstable-2024-09-26";
src = fetchFromGitHub {
name = "home-manager-source";
owner = "nix-community";
repo = "home-manager";
rev = "14929f7089268481d86b83ed31ffd88713dcd415";
hash = "sha256-Gkc7pwTVLKj4HSvRt8tXNvosl8RS9hrBAEhOjAE0Tt4=";
rev = "ffe2d07e771580a005e675108212597e5b367d2d";
hash = "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,113 @@
{
lib,
bison,
buildPackages,
fetchurl,
installShellFiles,
pkgsBuildTarget,
stdenv,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "jam";
version = "2.6.1";
src = fetchurl {
url = "https://swarm.workshop.perforce.com/downloads/guest/perforce_software/jam/jam-${finalAttrs.version}.tar";
hash = "sha256-rOayJ8GpmFk0/RPJwK5Pf/RBccbe2Lg7s9p15u/cs6c=";
};
outputs = [
"out"
"doc"
];
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [
bison
installShellFiles
];
makeFlags = [
"CC=${buildPackages.stdenv.cc.targetPrefix}cc"
];
env = {
LOCATE_TARGET = "bin.unix";
# Jam uses c89 conventions
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-std=c89";
};
enableParallelBuilding = true;
strictDeps = true;
# Jambase expects ar to have flags.
preConfigure = ''
export AR="$AR rc"
'';
# When cross-compiling, we need to set the preprocessor macros
# OSMAJOR/OSMINOR/OSPLAT to the values from the target platform, not the host
# platform. This looks a little ridiculous because the vast majority of build
# tools don't embed target-specific information into their binary, but in this
# case we behave more like a compiler than a make(1)-alike.
postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) ''
cat >>jam.h <<EOF
#undef OSMAJOR
#undef OSMINOR
#undef OSPLAT
$(
${pkgsBuildTarget.targetPackages.stdenv.cc}/bin/${pkgsBuildTarget.targetPackages.stdenv.cc.targetPrefix}cc -E -dM jam.h | grep -E '^#define (OSMAJOR|OSMINOR|OSPLAT) '
)
EOF
'';
buildPhase = ''
runHook preBuild
make $makeFlags jam0
./jam0 -j$NIX_BUILD_CORES -sCC=${buildPackages.stdenv.cc.targetPrefix}cc jambase.c
./jam0 -j$NIX_BUILD_CORES
runHook postBuild
'';
installPhase = ''
runHook preInstall
installBin bin.unix/jam
install -Dm644 -t ''${!outputDoc}/share/doc/jam-${finalAttrs.version}/ *.html
runHook postInstall
'';
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "jam -v";
};
};
meta = {
homepage = "https://swarm.workshop.perforce.com/projects/perforce_software-jam";
description = "Just Another Make";
longDescription = ''
Jam is a program construction tool, like make(1).
Jam recursively builds target files from source files, using dependency
information and updating actions expressed in the Jambase file, which is
written in jam's own interpreted language. The default Jambase is compiled
into jam and provides a boilerplate for common use, relying on a
user-provide file "Jamfile" to enumerate actual targets and sources.
'';
license = lib.licenses.free;
mainProgram = "jam";
maintainers = with lib.maintainers; [
impl
orivej
AndersonTorres
];
platforms = lib.platforms.unix;
};
})

View File

@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "jawiki-all-titles-in-ns0";
version = "0-unstable-2024-09-11";
version = "0-unstable-2024-10-01";
src = fetchFromGitHub {
owner = "musjj";
repo = "jawiki-archive";
rev = "d205f63665e351ea853edc72157f14daa22a227f";
hash = "sha256-Jj2vH8UMhgSzWv+RnOipnVNSdeOF6jttcLN/kVYa4D4=";
rev = "1e26e5efa36eea5322f55b178a5c4d5a5439feb9";
hash = "sha256-8jzsECzrrcHeMvV2K89WagSiCXHjEDEfUwLDanVVuas=";
};
installPhase = ''

View File

@ -13,16 +13,16 @@
buildGoModule rec {
pname = "jira-cli-go";
version = "1.5.1";
version = "1.5.2";
src = fetchFromGitHub {
owner = "ankitpokhrel";
repo = "jira-cli";
rev = "refs/tags/v${version}";
hash = "sha256-edytj9hB8lDwy3qGSyLudu5G4DSRGKhD0vDoWz5eUgs=";
hash = "sha256-Wp6uDvnTiNixn8GyEn8SeKPdXanUNN3b7yr9dT1D6uo=";
};
vendorHash = "sha256-DAdzbANqr0fa4uO8k/yJFoirgbZiKOQhOH8u8d+ncao=";
vendorHash = "sha256-a11ZO/iV/Yhaq/cu504p2C/OkKJ04PeMMSoHrl7edvM=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -7,15 +7,15 @@
stdenvNoCC.mkDerivation {
pname = "jp-zip-code";
version = "0-unstable-2024-09-01";
version = "0-unstable-2024-10-01";
# This package uses a mirror as the source because the
# original provider uses the same URL for updated content.
src = fetchFromGitHub {
owner = "musjj";
repo = "jp-zip-codes";
rev = "995d7cce9ae68a31efe4b5882137dd67ac26f7ff";
hash = "sha256-VnzczwIbYPUpWpWLMm2TYGqiDxzZaDDKs7xh4F3xA0E=";
rev = "94ddc993224a6e2c65480f9109564f7f68125665";
hash = "sha256-/2f/HXxrxKc6dv5E67S59xIpdJUkh0fX0lyTuo2y1N4=";
};
installPhase = ''

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "labwc-tweaks-gtk";
version = "0-unstable-2024-05-22";
version = "0-unstable-2024-09-30";
src = fetchFromGitHub {
owner = "labwc";
repo = "labwc-tweaks-gtk";
rev = "485961aaaaa3c0158b6b31efd6e504db3c58dc27";
hash = "sha256-+X/inkxVPN26AYMqtq3uvfGPlVVhxQpEtF1A9uYAmfY=";
rev = "19ae222b6bab778d0f8a900d39c25ab020e33631";
hash = "sha256-coA8gU2AKeHs6OENxBWholk5sEL/oketxNFLd8M1kTM=";
};
nativeBuildInputs = [

View File

@ -6,7 +6,7 @@
let
pname = "lefthook";
version = "1.7.16";
version = "1.7.17";
in
buildGoModule {
inherit pname version;
@ -15,7 +15,7 @@ buildGoModule {
owner = "evilmartians";
repo = "lefthook";
rev = "v${version}";
hash = "sha256-SAFrtiSISW5QhFq9fow0CA5qvBY1RIfzZGvvfhOqxbY=";
hash = "sha256-r7Tss0NHdEfjfDunWSTxpaV1B5KHGYu0xj9nnyhk8tQ=";
};
vendorHash = "sha256-rJdtax3r5Nwew+ptY4kIAUtxqPguwrFMMRk78zrZUcU=";

4264
pkgs/by-name/ls/lsp-ai/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,88 @@
{
lib,
rustPlatform,
fetchFromGitHub,
stdenv,
darwin,
pkg-config,
cmake,
openssl,
zlib,
perl,
gitUpdater,
}:
rustPlatform.buildRustPackage rec {
pname = "lsp-ai";
version = "0.7.1";
src = fetchFromGitHub {
owner = "SilasMarvin";
repo = "lsp-ai";
rev = "refs/tags/v${version}";
hash = "sha256-mBbaJn4u+Wlu/Y4G4a6YUBWnmN143INAGm0opiAjnIk=";
};
checkFlags = [
# These integ tests require an account and network usage to work
"--skip=transformer_backends::open_ai::test::open_ai_completion_do_generate"
"--skip=transformer_backends::mistral_fim::test::mistral_fim_do_generate"
"--skip=transformer_backends::anthropic::test::anthropic_chat_do_generate"
"--skip=transformer_backends::open_ai::test::open_ai_chat_do_generate"
"--skip=transformer_backends::gemini::test::gemini_chat_do_generate"
"--skip=transformer_backends::ollama::test::ollama_chat_do_generate"
"--skip=transformer_backends::ollama::test::ollama_completion_do_generate"
"--skip=embedding_models::ollama::test::ollama_embeding"
"--skip=transformer_worker::tests::test_do_completion"
"--skip=transformer_worker::tests::test_do_generate"
"--skip=memory_backends::vector_store::tests::can_open_document"
"--skip=memory_backends::vector_store::tests::can_rename_document"
"--skip=memory_backends::vector_store::tests::can_build_prompt"
"--skip=memory_backends::vector_store::tests::can_change_document"
# These integ test require a LLM server to be running over the network
"--skip=lsp_ai::transformer_worker"
"--skip=lsp_ai::memory_worker"
"--skip=test_chat_sequence"
"--skip=test_completion_action_sequence"
"--skip=test_chat_completion_sequence"
"--skip=test_completion_sequence"
"--skip=test_fim_completion_sequence"
"--skip=test_refactor_action_sequence"
];
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"hf-hub-0.3.2" = "sha256-1AcishEVkTzO3bU0/cVBI2hiCFoQrrPduQ1diMHuEwo=";
"tree-sitter-zig-0.0.1" = "sha256-UXJCh8GvXzn+sssTrIsLViXD3TiBZhLFABYCKM+fNMQ=";
};
};
nativeBuildInputs = [
pkg-config
cmake
perl
];
buildInputs =
[
openssl
zlib
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.SystemConfiguration
darwin.apple_sdk.frameworks.CoreServices
];
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = {
description = "Open-source language server that serves as a backend for AI-powered functionality";
homepage = "https://github.com/SilasMarvin/lsp-ai";
mainProgram = "lsp-ai";
changelog = "https://github.com/SilasMarvin/lsp-ai/releases/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ projectinitiative ];
};
}

View File

@ -6,11 +6,11 @@
appimageTools.wrapType2 rec {
pname = "lunarclient";
version = "3.2.18";
version = "3.2.19";
src = fetchurl {
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
hash = "sha512-gIkxplIDtbJSxWM4EXzXSy1G8c8x3jWWvqzGSM140Wu5pcSrVYf+QSMAPrzgBwQD7wUHdBuW92BA2X+/9Q1TmA=";
hash = "sha512-OLXp355IxMmhLtsxNVj0/ykl2lGJtwu1Ti3TOJZ1dwTsx/Y+tdeFT+WeDAju9fMC2AssciUnAeqqdp76sHxUgw==";
};
nativeBuildInputs = [ makeWrapper ];

View File

@ -0,0 +1,67 @@
{
lib,
fetchFromGitHub,
stdenv,
rustPlatform,
pkg-config,
cmake,
openssl,
autoconf,
automake,
darwin,
unstableGitUpdater,
sqlite,
}:
rustPlatform.buildRustPackage rec {
pname = "hebbot";
version = "2.1-unstable-2024-09-20";
src = fetchFromGitHub {
owner = "haecker-felix";
repo = "hebbot";
rev = "4c7152a3ce88ecfbac06f823abd4fd849e0c30d1";
hash = "sha256-y+KpxiEzVAggFoPvTOy0IEmAo2V6mOpM0VzEScUOtsM=";
};
cargoHash = "sha256-7AEWQIUHpeK4aNFzzU10YeJErD0fJ6yQSHwFe4utOFo=";
nativeBuildInputs =
[
pkg-config
cmake
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
autoconf
automake
];
buildInputs =
[
openssl
]
++ lib.optional stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
];
env = {
OPENSSL_NO_VENDOR = 1;
};
NIX_CFLAGS_LINK = [
"-L${lib.getLib openssl}/lib"
"-L${lib.getLib sqlite}/lib"
];
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Matrix bot which can generate \"This Week in X\" like blog posts ";
homepage = "https://github.com/haecker-felix/hebbot";
changelog = "https://github.com/haecker-felix/hebbot/releases/tag/v${version}";
license = with lib.licenses; [ agpl3Only ];
mainProgram = "hebbot";
maintainers = with lib.maintainers; [ a-kenji ];
};
}

View File

@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "mold";
version = "2.33.0";
version = "2.34.0";
src = fetchFromGitHub {
owner = "rui314";
repo = "mold";
rev = "v${version}";
hash = "sha256-685Tn2/XFhGSk7Onnw1W9VfgDSFNwDETc3KoiKMCS3M=";
hash = "sha256-QH9mtigVqt9ZrVBUyQcgUMW/8jtXHSYDWz6pprt6Hlk=";
};
nativeBuildInputs = [

View File

@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "mozcdic-ut-jawiki";
version = "0-unstable-2024-09-21";
version = "0-unstable-2024-09-27";
src = fetchFromGitHub {
owner = "utuhiro78";
repo = "mozcdic-ut-jawiki";
rev = "c7bec6a8df7a3f893646bb8c017033499a8350be";
hash = "sha256-fjIOGT3SYKLtL31QfZVNT4vKMNuHy1YAKFVjf82BWMQ=";
rev = "773cc08e71c4daa3c06fc577853f715a2bb4d9aa";
hash = "sha256-TDZvB8/ZrUtkAbCr3vMfyFfhQ4v5SYWEqPNjuGB1Ve4=";
};
installPhase = ''

View File

@ -18,18 +18,18 @@
stdenv.mkDerivation (finalAttrs: {
pname = "n8n";
version = "1.60.1";
version = "1.61.0";
src = fetchFromGitHub {
owner = "n8n-io";
repo = "n8n";
rev = "n8n@${finalAttrs.version}";
hash = "sha256-G//+9Mucm/yH8XlA8/OO09lg9mKlo1S+Pyfmsp5MQhk=";
hash = "sha256-9hIwpid/uly7wUcrBgLkSw+Aah8OQ66MgrMQbs/5v1Y=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "sha256-61xRNwJUFQrj7aw/+SqMABb8W+sJsVZ6aTgU9N7ssDo=";
hash = "sha256-OUZpPXXGWW7ceWxpHqjQolCr+OVeVO4DgRwsU8VvgWo=";
};
nativeBuildInputs = [

View File

@ -14,13 +14,13 @@
}:
stdenv.mkDerivation rec {
pname = "narsil";
version = "1.3.0-187-g96d6b3bbd";
version = "1.3.0-234-g228c4f0cb";
src = fetchFromGitHub {
owner = "NickMcConnell";
repo = "NarSil";
rev = version;
hash = "sha256-vrYkA/kYQRXMcULVIZ9EaQOI0L4aQWVVp1M38Net0Fc=";
hash = "sha256-82ph8LTtaruaV97gdnqSQI8IfqO9wzYbR7WTGx086pQ=";
};
passthru.updateScript = nix-update-script { };

View File

@ -1,14 +1,15 @@
{ lib
, stdenv
, fetchFromGitHub
, doxygen
, pkg-config
, python3
, python3Packages
, wafHook
, boost179
, openssl
, sqlite
{
lib,
stdenv,
fetchFromGitHub,
doxygen,
pkg-config,
python3,
python3Packages,
wafHook,
boost,
openssl,
sqlite,
}:
stdenv.mkDerivation rec {
@ -18,18 +19,28 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "named-data";
repo = "ndn-cxx";
rev = "${pname}-${version}";
rev = "ndn-cxx-${version}";
sha256 = "sha256-u9+QxqdCET1f5B54HF+Jk/YuQvhcYWsPNIVHi5l0XTM=";
};
nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx wafHook ];
nativeBuildInputs = [
doxygen
pkg-config
python3
python3Packages.sphinx
wafHook
];
buildInputs = [ boost179 openssl sqlite ];
buildInputs = [
boost
openssl
sqlite
];
wafConfigureFlags = [
"--with-openssl=${openssl.dev}"
"--boost-includes=${boost179.dev}/include"
"--boost-libs=${boost179.out}/lib"
"--boost-includes=${boost.dev}/include"
"--boost-libs=${boost.out}/lib"
"--with-tests"
];
@ -58,6 +69,9 @@ stdenv.mkDerivation rec {
'';
license = licenses.lgpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ sjmackenzie bertof ];
maintainers = with maintainers; [
sjmackenzie
bertof
];
};
}

View File

@ -1,39 +1,37 @@
{ lib
, stdenv
, boost
, fetchFromGitHub
, libpcap
, ndn-cxx
, openssl
, pkg-config
, sphinx
, wafHook
{
lib,
stdenv,
boost ? ndn-cxx.boost,
fetchFromGitHub,
libpcap,
ndn-cxx,
openssl,
pkg-config,
sphinx,
wafHook,
}:
stdenv.mkDerivation rec {
pname = "ndn-tools";
version = "22.12";
version = "24.07";
src = fetchFromGitHub {
owner = "named-data";
repo = pname;
repo = "ndn-tools";
rev = "ndn-tools-${version}";
sha256 = "sha256-28sPgo2nq5AhIzZmvDz38echGPzKDzNm2J6iIao4yL8=";
sha256 = "sha256-rzGd+8SkztrkXRXcEcQm6rOtAGnF7h/Jg8jaBb7FP9w=";
};
# Hacky workaround for new pcap-config.
postPatch = ''
patch -p1 <<EOF
--- a/tools/dump/wscript
+++ b/tools/dump/wscript
@@ -5 +5 @@
- conf.check_cfg(package='libpcap', uselib_store='PCAP',
+ conf.check_cfg(package="", uselib_store='PCAP',
EOF
'';
nativeBuildInputs = [ pkg-config sphinx wafHook ];
buildInputs = [ libpcap ndn-cxx openssl ];
nativeBuildInputs = [
pkg-config
sphinx
wafHook
];
buildInputs = [
libpcap
ndn-cxx
openssl
];
wafConfigureFlags = [
"--boost-includes=${boost.dev}/include"

View File

@ -0,0 +1,55 @@
{
lib,
stdenv,
boost,
fetchFromGitHub,
libpcap,
ndn-cxx,
openssl,
pkg-config,
sphinx,
systemd,
wafHook,
websocketpp,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
withWebSocket ? true,
}:
stdenv.mkDerivation rec {
pname = "nfd";
version = "24.07";
src = fetchFromGitHub {
owner = "named-data";
repo = "NFD";
rev = "NFD-${version}";
hash = "sha256-HbKPO3gwQWOZf4QZE+N7tAiqsNl1GrcwE4EUGjWmf5s=";
};
prePatch = lib.optional withWebSocket ''
ln -s ${websocketpp}/include/websocketpp websocketpp
'';
nativeBuildInputs = [
pkg-config
sphinx
wafHook
];
buildInputs = [
libpcap
ndn-cxx
openssl
] ++ lib.optional withWebSocket websocketpp ++ lib.optional withSystemd systemd;
wafConfigureFlags = [
"--boost-includes=${boost.dev}/include"
"--boost-libs=${boost.out}/lib"
] ++ lib.optional (!withWebSocket) "--without-websocket";
meta = with lib; {
homepage = "https://named-data.net/";
description = "Named Data Networking (NDN) Forwarding Daemon";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ bertof ];
};
}

View File

@ -16,23 +16,23 @@ let
src = fetchFromGitHub {
owner = "numtide";
repo = "hwinfo";
rev = "42b014495b2de8735eeec950bc2d3afbefc65ec4";
hash = "sha256-OXbGF8M1r8GSgqeY4TqfjF+IO0SXXB/dX2jE2JtkPUk=";
rev = "a559f34934098d54096ed2078e750a8245ae4044";
hash = "sha256-3abkWPr98qXXQ17r1Z43gh2M5hl/DHjW2hfeWl+GSAs=";
};
};
in
buildGoModule rec {
pname = "nixos-facter";
version = "0.1.0";
version = "0.1.1";
src = fetchFromGitHub {
owner = "numtide";
repo = "nixos-facter";
rev = "v${version}";
hash = "sha256-TBSzIaOuD/IEObgwSx0UwFFAkqF1pAAWhDrNDtQShdY=";
hash = "sha256-vlPmvCrgX64dcf//BPtQszBt7dkq35JpgQg+/LW0AqM=";
};
vendorHash = "sha256-8yQO7topYvXL6bP0oSVN1rApiPjse4Q2bjFNM5jVl8c=";
vendorHash = "sha256-5leiTNp3FJmgFd0SKhu18hxYZ2G9SuQPhZJjki2SDVs=";
CGO_ENABLED = 1;

View File

@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "nomnatong";
version = "5.11";
version = "5.12";
src = fetchFromGitHub {
owner = "nomfoundation";
repo = "font";
rev = "v${finalAttrs.version}";
hash = "sha256-LaMggMZIehQynA6tokOte28bbV3H0kagJRsbE8ZczsM=";
hash = "sha256-DMKL5a830V07U4Pogp2EQtGQUJ26d3F4u7ce5aWPAI8=";
};
nativeBuildInputs = [

View File

@ -6,13 +6,13 @@
stdenvNoCC.mkDerivation rec {
pname = "nuclei-templates";
version = "10.0.0";
version = "10.0.1";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "nuclei-templates";
rev = "refs/tags/v${version}";
hash = "sha256-FGhq1KgHvHkyBXAWdG3OBuNJHj+epLeRw+T241bUSeY=";
hash = "sha256-unQ/c3S1uJGSE7DoDsKnnI0n7YGe7s8F0g+yUNB4xH4=";
};
installPhase = ''

View File

@ -6,13 +6,13 @@
buildGoModule rec {
pname = "oh-my-posh";
version = "23.14.1";
version = "23.15.0";
src = fetchFromGitHub {
owner = "jandedobbeleer";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-yOp4DnPfigdpz32/78w+pjFXpsXEAK9N4Bvv2tmT6iI=";
hash = "sha256-gZCR7cDSI0gRaTnYADOLpyHe26URo27JXJjnNxr4Jwc=";
};
vendorHash = "sha256-EBLfbdTV15wSTOThzBY0d2KrSJzRaB8vNH53Uwc+XfM=";

View File

@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "pgmoneta";
version = "0.14.0";
version = "0.14.1";
src = fetchFromGitHub {
owner = "pgmoneta";
repo = "pgmoneta";
rev = version;
hash = "sha256-iAAL9aPoehRSVPLzeBN2KaeF+p+2T8tHvG+ouJ9YU6k=";
hash = "sha256-gB6iArOYwOh8UPGl4x5Tf3H2FSxSXxpfKrwvgmtFFcs=";
};
nativeBuildInputs = [

View File

@ -1,4 +1,4 @@
From fa51c56049a99ef17d86b0327bcf66f47338da45 Mon Sep 17 00:00:00 2001
From e82f2949b86d127aec908d90d872dfd6feb509e5 Mon Sep 17 00:00:00 2001
From: Morgan Helton <mhelton@gmail.com>
Date: Sun, 26 May 2024 12:17:01 -0500
Subject: [PATCH] envoy: allow specification of external binary
@ -8,7 +8,7 @@ Subject: [PATCH] envoy: allow specification of external binary
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/pkg/envoy/envoy.go b/pkg/envoy/envoy.go
index 62f2d34c..879001cd 100644
index 6639d4bd..c6ca198f 100644
--- a/pkg/envoy/envoy.go
+++ b/pkg/envoy/envoy.go
@@ -8,9 +8,9 @@ import (
@ -35,7 +35,7 @@ index 62f2d34c..879001cd 100644
type serverOptions struct {
services string
logLevel config.LogLevel
@@ -58,17 +62,16 @@ type Server struct {
@@ -59,17 +63,16 @@ type Server struct {
// NewServer creates a new server with traffic routed by envoy.
func NewServer(ctx context.Context, src config.Source, builder *envoyconfig.Builder) (*Server, error) {
@ -59,5 +59,5 @@ index 62f2d34c..879001cd 100644
grpcPort: src.GetConfig().GRPCPort,
httpPort: src.GetConfig().HTTPPort,
--
2.44.1
2.46.0

View File

@ -1,4 +1,4 @@
{ buildGoModule
{ buildGo123Module
, fetchFromGitHub
, lib
, envoy
@ -11,17 +11,17 @@
let
inherit (lib) concatStringsSep concatMap id mapAttrsToList;
in
buildGoModule rec {
buildGo123Module rec {
pname = "pomerium";
version = "0.26.1";
version = "0.27.1";
src = fetchFromGitHub {
owner = "pomerium";
repo = "pomerium";
rev = "v${version}";
hash = "sha256-lMI6dVCTInqHsz4N0HsOVUQo8TkheAwr54FW46r+DUA=";
hash = "sha256-+RKWl/weUYktS7jUB1lYpZCBKEfh7RMfKgRDbYV8Bjs=";
};
vendorHash = "sha256-AHlnhAh4RBz8aJoFJjbX/MUDHq81xK7b7gvCyuV3gjU=";
vendorHash = "sha256-/iYUZp6EASDGApLymNuR10395PH8D3zPU+TlmmAN8Zc=";
ui = mkYarnPackage {
inherit version;

View File

@ -0,0 +1 @@
0bdrczn8mj5iidmba7xzkcyvsnwmbvcvrc1vgks2x4pxqbfyxaiv

View File

@ -1,34 +1,32 @@
{
lib,
borgmatic,
fetchFromGitHub,
python3Packages,
borgmatic,
}:
python3Packages.buildPythonApplication rec {
pname = "prometheus-borgmatic-exporter";
version = "0.2.5";
pyproject = true;
pyproject = true;
src = fetchFromGitHub {
owner = "maxim-mityutko";
repo = "borgmatic-exporter";
rev = "v${version}";
rev = "refs/tags/v${version}";
hash = "sha256-SgP1utu4Eqs9214pYOT9wP0Ms7AUQH1A3czQF8+qBRo=";
};
nativeCheckInputs = with python3Packages; [
pytestCheckHook
pytest-mock
];
pythonRelaxDeps = [ "prometheus-client" ];
buildInputs = [python3Packages.poetry-core];
build-system = with python3Packages; [ poetry-core ];
propagatedBuildInputs =
[ borgmatic ]
++ (with python3Packages; [
flask
arrow
click
flask
loguru
pretty-errors
prometheus-client
@ -36,9 +34,15 @@ python3Packages.buildPythonApplication rec {
waitress
]);
nativeCheckInputs = with python3Packages; [
pytestCheckHook
pytest-mock
];
meta = with lib; {
description = "Prometheus exporter for Borgmatic";
homepage = "https://github.com/maxim-mityutko/borgmatic-exporter";
changelog = "https://github.com/maxim-mityutko/borgmatic-exporter/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ flandweber ];
mainProgram = "borgmatic-exporter";

View File

@ -1,23 +1,30 @@
{ lib
, stdenv
, cmake
, fetchFromGitHub
, testers
, texinfo
{
lib,
cmake,
fetchFromGitHub,
stdenv,
testers,
texinfo,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "quickjs-ng";
version = "0.6.0";
version = "0.6.1";
src = fetchFromGitHub {
owner = "quickjs-ng";
repo = "quickjs";
rev = "v${finalAttrs.version}";
hash = "sha256-gULpJhOOmhzq2Ydl4soNBiiONtdt2T4sgcSqIBCo3SM=";
hash = "sha256-7IAkmlzgiPVd8yRv7LU5a7HWCB+eQk1Ur1KwZupwty0=";
};
outputs = [ "bin" "out" "dev" "doc" "info" ];
outputs = [
"out"
"bin"
"dev"
"doc"
"info"
];
nativeBuildInputs = [
cmake
@ -25,18 +32,28 @@ stdenv.mkDerivation (finalAttrs: {
];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
(lib.cmakeBool "BUILD_STATIC_QJS_EXE" stdenv.hostPlatform.isStatic)
];
env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
"-Wno-error=stringop-overflow"
]);
env.NIX_CFLAGS_COMPILE = toString (
lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
"-Wno-error=stringop-overflow"
]
);
strictDeps = true;
postBuild = ''
pushd ../doc
makeinfo *texi
popd
'';
postInstall = ''
(cd ../doc
makeinfo --output quickjs.info quickjs.texi
install -Dt $info/share/info/ quickjs.info)
pushd ../doc
install -Dm644 -t ''${!outputInfo}/share/info *info
popd
'';
passthru.tests = {
@ -46,12 +63,12 @@ stdenv.mkDerivation (finalAttrs: {
};
};
meta = with lib; {
description = "Mighty JavaScript engine";
meta = {
homepage = "https://github.com/quickjs-ng/quickjs";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.all;
description = "Mighty JavaScript engine";
license = lib.licenses.mit;
mainProgram = "qjs";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.all;
};
})

View File

@ -1,62 +1,130 @@
{ lib
, stdenv
, fetchurl
, texinfo
{
lib,
fetchurl,
stdenv,
testers,
texinfo,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "quickjs";
version = "2024-01-13";
src = fetchurl {
url = "https://bellard.org/quickjs/quickjs-${version}.tar.xz";
url = "https://bellard.org/quickjs/quickjs-${finalAttrs.version}.tar.xz";
hash = "sha256-PEv4+JW/pUvrSGyNEhgRJ3Hs/FrDvhA2hR70FWghLgM=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace Makefile --replace "CONFIG_LTO=y" ""
'';
makeFlags = [ "PREFIX=${placeholder "out"}" ];
enableParallelBuilding = true;
outputs = [
"out"
"info"
];
nativeBuildInputs = [
texinfo
];
makeFlags = [ "PREFIX=$(out)" ];
doInstallCheck = true;
enableParallelBuilding = true;
strictDeps = true;
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace Makefile \
--replace "CONFIG_LTO=y" ""
'';
postBuild = ''
(cd doc
makeinfo *texi)
pushd doc
makeinfo *texi
popd
'';
postInstall = ''
(cd doc
install -Dt $out/share/doc *texi *info)
pushd doc
install -Dm644 -t ''${!outputInfo}/share/info *info
popd
'';
doInstallCheck = true;
installCheckPhase = ''
PATH="$out/bin:$PATH"
installCheckPhase = lib.concatStringsSep "\n" [
''
runHook preInstallCheck
''
''
PATH="$out/bin:$PATH"
''
# Programs exit with code 1 when testing help, so grep for a string
set +o pipefail
qjs --help 2>&1 | grep "QuickJS version"
qjscalc --help 2>&1 | grep "QuickJS version"
set -o pipefail
''
set +o pipefail
qjs --help 2>&1 | grep "QuickJS version"
qjscalc --help 2>&1 | grep "QuickJS version"
set -o pipefail
''
temp=$(mktemp).js
echo "console.log('Output from compiled program');" > "$temp"
set -o verbose
out=$(mktemp) && qjsc -o "$out" "$temp" && "$out" | grep -q "Output from compiled program"
out=$(mktemp) && qjsc -flto -o "$out" "$temp" && "$out" | grep -q "Output from compiled program"
'';
''
temp=$(mktemp).js
echo "console.log('Output from compiled program');" > "$temp"
set -o verbose
out=$(mktemp) && qjsc -o "$out" "$temp" && "$out" | grep -q "Output from compiled program"
out=$(mktemp) && qjsc -flto -o "$out" "$temp" && "$out" | grep -q "Output from compiled program"
''
meta = with lib; {
description = "Small and embeddable Javascript engine";
homepage = "https://bellard.org/quickjs/";
maintainers = with maintainers; [ stesie AndersonTorres ];
platforms = platforms.unix;
license = licenses.mit;
mainProgram = "qjs";
''
runHook postInstallCheck
''
];
passthru.tests = {
version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "qjs --help || true";
};
};
}
meta = {
homepage = "https://bellard.org/quickjs/";
description = "Small and embeddable Javascript engine";
longDescription = ''
QuickJS is a small and embeddable Javascript engine. It supports the
ES2023 specification including modules, asynchronous generators, proxies
and BigInt.
It optionally supports mathematical extensions such as big decimal
floating point numbers (BigDecimal), big binary floating point numbers
(BigFloat) and operator overloading.
Main Features:
- Small and easily embeddable: just a few C files, no external
dependency, 210 KiB of x86 code for a simple hello world program.
- Fast interpreter with very low startup time: runs the 76000 tests of
the ECMAScript Test Suite in less than 2 minutes on a single core of a
desktop PC. The complete life cycle of a runtime instance completes in
less than 300 microseconds.
- Almost complete ES2023 support including modules, asynchronous
generators and full Annex B support (legacy web compatibility).
- Passes nearly 100% of the ECMAScript Test Suite tests when selecting
the ES2023 features. A summary is available at Test262 Report.
- Can compile Javascript sources to executables with no external dependency.
- Garbage collection using reference counting (to reduce memory usage and
have deterministic behavior) with cycle removal.
- Mathematical extensions: BigDecimal, BigFloat, operator overloading,
bigint mode, math mode.
- Command line interpreter with contextual colorization implemented in
Javascript.
- Small built-in standard library with C library wrappers.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
stesie
AndersonTorres
];
mainProgram = "qjs";
platforms = lib.platforms.all;
};
})

View File

@ -11,25 +11,28 @@ let
in
python3.pkgs.buildPythonApplication rec {
pname = "smassh";
version = "3.1.4";
version = "3.1.6";
pyproject = true;
src = fetchFromGitHub {
owner = "kraanzu";
repo = "smassh";
rev = "v${version}";
hash = "sha256-MeLub6zeviY7yyPP2FI9b37nUwHZbxW6onuFXSkmvqk";
hash = "sha256-P0fZHSsaKIwJspEBxM5MEK3Z4kemXJWlIOQI9cmvlF4=";
};
nativeBuildInputs = with python3.pkgs; [ poetry-core ];
pythonRelaxDeps = [ "textual" ];
pythonRelaxDeps = [
"platformdirs"
"textual"
];
propagatedBuildInputs = with python3.pkgs; [
textual
appdirs
click
platformdirs
requests
textual
];
# No tests available
@ -38,6 +41,7 @@ python3.pkgs.buildPythonApplication rec {
passthru.tests.version = testers.testVersion {
package = smassh;
command = "HOME=$(mktemp -d) smassh --version";
version = "smassh - v${version}";
};
meta = with lib; {
@ -45,7 +49,10 @@ python3.pkgs.buildPythonApplication rec {
homepage = "https://github.com/kraanzu/smassh";
changelog = "https://github.com/kraanzu/smassh/blob/main/CHANGELOG.md";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ aimpizza ];
maintainers = with maintainers; [
aimpizza
kraanzu
];
mainProgram = "smassh";
};
}

View File

@ -5,14 +5,14 @@
}:
rustPlatform.buildRustPackage rec {
pname = "spl";
version = "0.3.2";
version = "0.4.0";
src = fetchgit {
url = "https://git.tudbut.de/tudbut/spl";
rev = "v${version}";
hash = "sha256-thTKM07EtgAVvjpIx8pVssTmN0jPK/OrPYhRfwp7T+U=";
hash = "sha256-/WjrQeE3zI71pvCil2yE9ZMaWkmyRG/tNmZ+XFF0nYw=";
};
cargoHash = "sha256-7MYwWA3F7uJewmBRR0iQD4iXJZokHqIt9Q9dMoj6JVs=";
cargoHash = "sha256-8xv7tXVklJDewnHqoRIMefsNWTD28+5WyV5ZI9imOh0=";
meta = {
description = "Simple, concise, concatenative scripting language";

View File

@ -22,7 +22,7 @@
let
pname = "spotube";
version = "3.8.1";
version = "3.8.2";
meta = {
description = "Open source, cross-platform Spotify client compatible across multiple platforms";
@ -56,7 +56,7 @@ let
src = fetchArtifact {
filename = "Spotube-macos-universal.dmg";
hash = "sha256-NbKFvg50n/GByVU6/vNLmTTV9bhIhl3AxlwAcG60KVY=";
hash = "sha256-2nqWHQDxJ0PcwTiLAa8YZffqwsdnepMpXvpqRPX5JxM=";
};
sourceRoot = ".";
@ -80,7 +80,7 @@ let
src = fetchArtifact {
filename = "Spotube-linux-x86_64.deb";
hash = "sha256-R/yHXx29T/7NNc1L1AmevzXp1k98qnmvOEd3cfSlJuA=";
hash = "sha256-kDPNWbspmORClVMH91Lt3dLVsRwGxiBtB49CHSHxQxI=";
};
nativeBuildInputs = [

View File

@ -8,7 +8,7 @@
testers,
}:
let
version = "0.6.2";
version = "0.6.3";
in
rustPlatform.buildRustPackage {
pname = "stu";
@ -18,10 +18,10 @@ rustPlatform.buildRustPackage {
owner = "lusingander";
repo = "stu";
rev = "v${version}";
hash = "sha256-fxVnOftYkl4G6H+jMSy6r/YQgmK15EjKAjdf8MdoaS0=";
hash = "sha256-+hncQQSCYpVuRBQSHMNsfD89K+vL1LUJrCqrBIaRW1E=";
};
cargoHash = "sha256-/a91ONvKG6aRFAnHDkpOQQFtfGlO1WahWM9LdPs75iw=";
cargoHash = "sha256-tWgUVe8VLmEfroF4O3YfzU9yPerpKizuICWeSzsbV38=";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.AppKit

View File

@ -2,8 +2,10 @@
lib,
stdenv,
fetchFromGitHub,
glibmm,
gtk4-layer-shell,
gtkmm4,
libevdev,
nix-update-script,
pkg-config,
wireplumber,
@ -12,13 +14,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "syshud";
version = "0-unstable-2024-08-27";
version = "0-unstable-2024-09-26";
src = fetchFromGitHub {
owner = "System64fumo";
repo = "syshud";
rev = "aa2c153f6aa15962c6b97a77dbe8c45708155fe0";
hash = "sha256-SBpufr37K6LC4yc9ircUEBrzuRCKmJzD3C17N34qNGk=";
rev = "0b6e4958d8ea66b54bc67f0b5aa005fa3eaa4f6f";
hash = "sha256-cyE7ZxesAmnepW7kI6b9Gp7R/v+yG2//EQAj4/X6c+c=";
};
postPatch = ''
@ -32,8 +34,10 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
glibmm
gtk4-layer-shell
gtkmm4
libevdev
wireplumber
];

View File

@ -1,21 +1,21 @@
{ stdenv
, lib
, fetchzip
, dpkg
, makeWrapper
, callPackage
, addDriverRunpath
, electron
, withTetrioPlus ? false
, tetrio-plus ? null
{
stdenv,
lib,
fetchzip,
dpkg,
makeWrapper,
addDriverRunpath,
electron,
withTetrioPlus ? false,
tetrio-plus,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tetrio-desktop";
version = "9.0.0";
version = "9";
src = fetchzip {
url = "https://tetr.io/about/desktop/builds/${lib.versions.major finalAttrs.version}/TETR.IO%20Setup.deb";
url = "https://tetr.io/about/desktop/builds/${finalAttrs.version}/TETR.IO%20Setup.deb";
hash = "sha256-TgegFy+sHjv0ILaiLO1ghyUhKXoj8v43ACJOJhKyI0c=";
nativeBuildInputs = [ dpkg ];
};
@ -26,20 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
installPhase =
let
tetrio-plus' =
if tetrio-plus == null
then
callPackage ./tetrio-plus.nix
{
tetrio-src = finalAttrs.src;
tetrio-version = finalAttrs.version;
}
else tetrio-plus;
asarPath =
if withTetrioPlus
then "${tetrio-plus'}/app.asar"
else "opt/TETR.IO/resources/app.asar";
asarPath = if withTetrioPlus then tetrio-plus else "opt/TETR.IO/resources/app.asar";
in
''
runHook preInstall
@ -59,22 +46,25 @@ stdenv.mkDerivation (finalAttrs: {
postFixup = ''
makeShellWrapper '${lib.getExe electron}' $out/bin/tetrio \
--prefix LD_LIBRARY_PATH : ${addDriverRunpath.driverLink}/lib \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime}}" \
--add-flags $out/share/TETR.IO/app.asar
'';
meta = {
changelog = "https://tetr.io/about/desktop/history/";
description = "TETR.IO desktop client";
description = "Desktop client for TETR.IO, an online stacker game";
downloadPage = "https://tetr.io/about/desktop/";
homepage = "https://tetr.io";
license = lib.licenses.unfree;
longDescription = ''
TETR.IO is a modern yet familiar online stacker.
Play against friends and foes all over the world, or claim a spot on the leaderboards - the stacker future is yours!
TETR.IO is a free-to-win modern yet familiar online stacker.
Play multiplayer games against friends and foes all over the world, or claim a spot on the leaderboards - the stacker future is yours!
'';
mainProgram = "tetrio";
maintainers = with lib.maintainers; [ wackbyte huantian ];
maintainers = with lib.maintainers; [
wackbyte
huantian
];
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
};

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