Project import generated by Copybara.

GitOrigin-RevId: 82155ff501c7622cb2336646bb62f7624261f6d7
This commit is contained in:
Default email 2021-10-01 17:20:50 +08:00
parent 9543354213
commit f61cd259d4
459 changed files with 14355 additions and 5053 deletions

View file

@ -72,6 +72,15 @@ in
...
```
You can also specify what JDK your JRE should be based on, for example
selecting a 'headless' build to avoid including a link to GTK+:
```nix
my_jre = pkgs.jre_minimal.override {
jdk = jdk11_headless;
};
```
Note all JDKs passthru `home`, so if your application requires
environment variables like `JAVA_HOME` being set, that can be done in a
generic fashion with the `--set` argument of `makeWrapper`:

View file

@ -197,6 +197,30 @@ rec {
*/
toYAML = {}@args: toJSON args;
withRecursion =
args@{
/* If this option is not null, the given value will stop evaluating at a certain depth */
depthLimit
/* If this option is true, an error will be thrown, if a certain given depth is exceeded */
, throwOnDepthLimit ? true
}:
assert builtins.isInt depthLimit;
let
transform = depth:
if depthLimit != null && depth > depthLimit then
if throwOnDepthLimit
then throw "Exceeded maximum eval-depth limit of ${toString depthLimit} while trying to evaluate with `generators.withRecursion'!"
else const "<unevaluated>"
else id;
mapAny = with builtins; depth: v:
let
evalNext = x: mapAny (depth + 1) (transform (depth + 1) x);
in
if isAttrs v then mapAttrs (const evalNext) v
else if isList v then map evalNext v
else transform (depth + 1) v;
in
mapAny 0;
/* Pretty print a value, akin to `builtins.trace`.
* Should probably be a builtin as well.
@ -208,7 +232,8 @@ rec {
allowPrettyValues ? false,
/* If this option is true, the output is indented with newlines for attribute sets and lists */
multiline ? true
}@args: let
}@args:
let
go = indent: v: with builtins;
let isPath = v: typeOf v == "path";
introSpace = if multiline then "\n${indent} " else " ";

View file

@ -240,6 +240,11 @@ in mkLicense lset) ({
fullName = "CeCILL Free Software License Agreement v2.0";
};
cecill21 = {
spdxId = "CECILL-2.1";
fullName = "CeCILL Free Software License Agreement v2.1";
};
cecill-b = {
spdxId = "CECILL-B";
fullName = "CeCILL-B Free Software License Agreement";

View file

@ -162,13 +162,24 @@ rec {
baseMsg = "The option `${showOption (prefix ++ firstDef.prefix)}' does not exist. Definition values:${showDefs [ firstDef ]}";
in
if attrNames options == [ "_module" ]
then throw ''
${baseMsg}
then
let
optionName = showOption prefix;
in
if optionName == ""
then throw ''
${baseMsg}
However there are no options defined in `${showOption prefix}'. Are you sure you've
declared your options properly? This can happen if you e.g. declared your options in `types.submodule'
under `config' rather than `options'.
''
It seems as if you're trying to declare an option by placing it into `config' rather than `options'!
''
else
throw ''
${baseMsg}
However there are no options defined in `${showOption prefix}'. Are you sure you've
declared your options properly? This can happen if you e.g. declared your options in `types.submodule'
under `config' rather than `options'.
''
else throw baseMsg
else null;

View file

@ -247,7 +247,9 @@ rec {
showDefs = defs: concatMapStrings (def:
let
# Pretty print the value for display, if successful
prettyEval = builtins.tryEval (lib.generators.toPretty {} def.value);
prettyEval = builtins.tryEval
(lib.generators.toPretty { }
(lib.generators.withRecursion { depthLimit = 10; throwOnDepthLimit = false; } def.value));
# Split it into its lines
lines = filter (v: ! isList v) (builtins.split "\n" prettyEval.value);
# Only display the first 5 lines, and indent them for better visibility

View file

@ -529,6 +529,25 @@ runTests {
};
};
testToPrettyLimit =
let
a.b = 1;
a.c = a;
in {
expr = generators.toPretty { } (generators.withRecursion { throwOnDepthLimit = false; depthLimit = 2; } a);
expected = "{\n b = 1;\n c = {\n b = \"<unevaluated>\";\n c = {\n b = \"<unevaluated>\";\n c = \"<unevaluated>\";\n };\n };\n}";
};
testToPrettyLimitThrow =
let
a.b = 1;
a.c = a;
in {
expr = (builtins.tryEval
(generators.toPretty { } (generators.withRecursion { depthLimit = 2; } a))).success;
expected = false;
};
testToPrettyMultiline = {
expr = mapAttrs (const (generators.toPretty { })) rec {
list = [ 3 4 [ false ] ];

View file

@ -2599,6 +2599,10 @@
githubId = 202798;
name = "Pierre Bourdon";
};
delta = {
email = "d4delta@outlook.fr";
name = "Delta";
};
deltaevo = {
email = "deltaduartedavid@gmail.com";
github = "DeltaEvo";
@ -3251,6 +3255,12 @@
githubId = 13485450;
name = "Emmanuel Rosa";
};
emptyflask = {
email = "jon@emptyflask.dev";
github = "emptyflask";
githubId = 28287;
name = "Jon Roberts";
};
endgame = {
email = "jack@jackkelly.name";
github = "endgame";
@ -4671,6 +4681,12 @@
githubId = 36193715;
name = "Lassi Haasio";
};
ilkecan = {
email = "ilkecan@protonmail.com";
github = "ilkecan";
githubId = 40234257;
name = "ilkecan bozdogan";
};
illegalprime = {
email = "themichaeleden@gmail.com";
github = "illegalprime";

View file

@ -437,7 +437,7 @@ printBuildSummary
<> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime)
<> "*"
]
brokenLine (name, rdeps) = "[" <> name <> "](https://search.nixos.org/packages?channel=unstable&show=haskellPackages." <> name <> "&query=haskellPackages." <> name <> ") :arrow_heading_up: " <> Text.pack (show rdeps)
brokenLine (name, rdeps) = "[" <> name <> "](https://packdeps.haskellers.com/reverse/" <> name <> ") :arrow_heading_up: " <> Text.pack (show rdeps) <> " "
numSummary = statusToNumSummary summary
jobsByState predicate = Map.filter (predicate . worstState) summary
worstState = foldl' min Success . fmap state . summaryBuilds
@ -464,8 +464,8 @@ printBuildSummary
if' (isNothing mergeableJob) "No `mergeable` job found." <>
if' (isNothing maintainedJob) "No `maintained` job found." <>
if' (Unfinished > maybe Success worstState mergeableJob) "`mergeable` jobset failed." <>
if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too much outstanding jobs on x86_64-linux." <>
if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too much outstanding jobs on aarch64-linux."
if' (outstandingJobs (Platform "x86_64-linux") > 100) "Too many outstanding jobs on x86_64-linux." <>
if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too many outstanding jobs on aarch64-linux."
if' p e = if p then [e] else mempty
outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m
maintainedJob = Map.lookup "maintained" summary

View file

@ -75,6 +75,10 @@ fi
echo "Merging https://github.com/NixOS/nixpkgs/pull/${curr_haskell_updates_pr_num}..."
gh pr merge --repo NixOS/nixpkgs --merge "$curr_haskell_updates_pr_num"
# Update the list of Haskell package versions in NixOS on Hackage.
echo "Updating list of Haskell package versions in NixOS on Hackage..."
./maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh
# Update stackage, Hackage hashes, and regenerate Haskell package set
echo "Updating Stackage..."
./maintainers/scripts/haskell/update-stackage.sh --do-commit
@ -84,7 +88,7 @@ echo "Regenerating Hackage packages..."
./maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit
# Push these new commits to the haskell-updates branch
echo "Pushing commits just created to the haskell-updates branch"
echo "Pushing commits just created to the remote haskell-updates branch..."
git push
# Open new PR
@ -93,7 +97,7 @@ new_pr_body=$(cat <<EOF
This PR is the regular merge of the \`haskell-updates\` branch into \`master\`.
This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates.
This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. You may be able to find an up-to-date Hydra build report at [cdepillabout/nix-haskell-updates-status](https://github.com/cdepillabout/nix-haskell-updates-status).
We roughly aim to merge these \`haskell-updates\` PRs at least once every two weeks. See the @NixOS/haskell [team calendar](https://cloud.maralorn.de/apps/calendar/p/Mw5WLnzsP7fC4Zky) for who is currently in charge of this branch.
@ -114,5 +118,5 @@ This is the follow-up to #${curr_haskell_updates_pr_num}. Come to [#haskell:nixo
EOF
)
echo "Opening a PR for the next haskell-updates merge cycle"
echo "Opening a PR for the next haskell-updates merge cycle..."
gh pr create --repo NixOS/nixpkgs --base master --head haskell-updates --title "haskellPackages: update stackage and hackage" --body "$new_pr_body"

View file

@ -19,3 +19,4 @@ package_list="$(nix-build -A haskell.package-list)/nixos-hackage-packages.csv"
username=$(grep "^username:" ~/.cabal/config | sed "s/^username: //")
password_command=$(grep "^password-command:" ~/.cabal/config | sed "s/^password-command: //")
curl -u "$username:$($password_command | head -n1)" --digest -H "Content-type: text/csv" -T "$package_list" http://hackage.haskell.org/distro/NixOS/packages.csv
echo

View file

@ -99,7 +99,15 @@
<para>
<link xlink:href="https://github.com/xrelkd/clipcat/">clipcat</link>,
an X11 clipboard manager written in Rust. Available at
[services.clipcat](options.html#o pt-services.clipcat.enable).
<link xlink:href="options.html#opt-services.clipcat.enable">services.clipcat</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/dexidp/dex">dex</link>,
an OpenID Connect (OIDC) identity and OAuth 2.0 provider.
Available at
<link xlink:href="options.html#opt-services.dex.enable">services.dex</link>.
</para>
</listitem>
<listitem>
@ -1051,6 +1059,16 @@ Superuser created successfully.
changelog</link>.
</para>
</listitem>
<listitem>
<para>
<literal>opencv2</literal> no longer includes the non-free
libraries by default, and consequently
<literal>pfstools</literal> no longer includes OpenCV support
by default. Both packages now support an
<literal>enableUnfree</literal> option to re-enable this
functionality.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">
@ -1070,6 +1088,40 @@ Superuser created successfully.
<literal>linuxPackages_latest</literal>) remain untouched.
</para>
</listitem>
<listitem>
<para>
In NixOS virtual machines (QEMU), the
<literal>virtualisation</literal> module has been updated with
new options to configure:
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
IPv4 port forwarding
(<link xlink:href="options.html#opt-virtualisation.forwardPorts"><literal>virtualisation.forwardPorts</literal></link>),
</para>
</listitem>
<listitem>
<para>
shared host directories
(<link xlink:href="options.html#opt-virtualisation.sharedDirectories"><literal>virtualisation.sharedDirectories</literal></link>),
</para>
</listitem>
<listitem>
<para>
screen resolution
(<link xlink:href="options.html#opt-virtualisation.resolution"><literal>virtualisation.resolution</literal></link>).
</para>
</listitem>
</itemizedlist>
<para>
In addition, the default
<link xlink:href="options.html#opt-virtualisation.msize"><literal>msize</literal></link>
parameter in 9P filesystems (including /nix/store and all
shared directories) has been increased to 16K for improved
performance.
</para>
</listitem>
<listitem>
<para>
The setting
@ -1235,6 +1287,73 @@ Superuser created successfully.
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
The
<link xlink:href="options.html#opt-networking.wireless.enable">networking.wireless</link>
module (based on wpa_supplicant) has been heavily reworked,
solving a number of issues and adding useful features:
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
The automatic discovery of wireless interfaces at boot has
been made reliable again (issues
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/101963">#101963</link>,
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/23196">#23196</link>).
</para>
</listitem>
<listitem>
<para>
WPA3 and Fast BSS Transition (802.11r) are now enabled by
default for all networks.
</para>
</listitem>
<listitem>
<para>
Secrets like pre-shared keys and passwords can now be
handled safely, meaning without including them in a
world-readable file
(<literal>wpa_supplicant.conf</literal> under /nix/store).
This is achieved by storing the secrets in a secured
<link xlink:href="options.html#opt-networking.wireless.environmentFile">environmentFile</link>
and referring to them though environment variables that
are expanded inside the configuration.
</para>
</listitem>
<listitem>
<para>
With multiple interfaces declared, independent
wpa_supplicant daemons are started, one for each interface
(the services are named
<literal>wpa_supplicant-wlan0</literal>,
<literal>wpa_supplicant-wlan1</literal>, etc.).
</para>
</listitem>
<listitem>
<para>
The generated <literal>wpa_supplicant.conf</literal> file
is now formatted for easier reading.
</para>
</listitem>
<listitem>
<para>
A new
<link xlink:href="options.html#opt-networking.wireless.scanOnLowSignal">scanOnLowSignal</link>
option has been added to facilitate fast roaming between
access points (enabled by default).
</para>
</listitem>
<listitem>
<para>
A new
<link xlink:href="options.html#opt-networking.wireless.networks._name_.authProtocols">networks.&lt;name&gt;.authProtocols</link>
option has been added to change the authentication
protocols used when connecting to a network.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
The

View file

@ -32,8 +32,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
- [clipcat](https://github.com/xrelkd/clipcat/), an X11 clipboard manager written in Rust. Available at [services.clipcat](options.html#o
pt-services.clipcat.enable).
- [clipcat](https://github.com/xrelkd/clipcat/), an X11 clipboard manager written in Rust. Available at [services.clipcat](options.html#opt-services.clipcat.enable).
- [dex](https://github.com/dexidp/dex), an OpenID Connect (OIDC) identity and OAuth 2.0 provider. Available at [services.dex](options.html#opt-services.dex.enable).
- [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
@ -330,11 +331,21 @@ In addition to numerous new and upgraded packages, this release has the followin
respectively. As a result `services.datadog-agent` has had breaking changes to the
configuration file. For details, see the [upstream changelog](https://github.com/DataDog/datadog-agent/blob/main/CHANGELOG.rst).
- `opencv2` no longer includes the non-free libraries by default, and consequently `pfstools` no longer includes OpenCV support by default. Both packages now support an `enableUnfree` option to re-enable this functionality.
## Other Notable Changes {#sec-release-21.11-notable-changes}
- The linux kernel package infrastructure was moved out of `all-packages.nix`, and restructured. Linux related functions and attributes now live under the `pkgs.linuxKernel` attribute set.
In particular the versioned `linuxPackages_*` package sets (such as `linuxPackages_5_4`) and kernels from `pkgs` were moved there and now live under `pkgs.linuxKernel.packages.*`. The unversioned ones (such as `linuxPackages_latest`) remain untouched.
- In NixOS virtual machines (QEMU), the `virtualisation` module has been updated with new options to configure:
- IPv4 port forwarding ([`virtualisation.forwardPorts`](options.html#opt-virtualisation.forwardPorts)),
- shared host directories ([`virtualisation.sharedDirectories`](options.html#opt-virtualisation.sharedDirectories)),
- screen resolution ([`virtualisation.resolution`](options.html#opt-virtualisation.resolution)).
In addition, the default [`msize`](options.html#opt-virtualisation.msize) parameter in 9P filesystems (including /nix/store and all shared directories) has been increased to 16K for improved performance.
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
However, if [`services.fail2ban.enable`](options.html#opt-services.fail2ban.enable) is `true`, the `fail2ban` will override the verbosity to `"VERBOSE"`, so that `fail2ban` can observe the failed login attempts from the SSH logs.
@ -381,6 +392,16 @@ In addition to numerous new and upgraded packages, this release has the followin
`myhostname`, but before `dns` should use the default priority
- NSS modules which should come after `dns` should use mkAfter.
- The [networking.wireless](options.html#opt-networking.wireless.enable) module (based on wpa_supplicant) has been heavily reworked, solving a number of issues and adding useful features:
- The automatic discovery of wireless interfaces at boot has been made reliable again (issues [#101963](https://github.com/NixOS/nixpkgs/issues/101963), [#23196](https://github.com/NixOS/nixpkgs/issues/23196)).
- WPA3 and Fast BSS Transition (802.11r) are now enabled by default for all networks.
- Secrets like pre-shared keys and passwords can now be handled safely, meaning without including them in a world-readable file (`wpa_supplicant.conf` under /nix/store).
This is achieved by storing the secrets in a secured [environmentFile](options.html#opt-networking.wireless.environmentFile) and referring to them though environment variables that are expanded inside the configuration.
- With multiple interfaces declared, independent wpa_supplicant daemons are started, one for each interface (the services are named `wpa_supplicant-wlan0`, `wpa_supplicant-wlan1`, etc.).
- The generated `wpa_supplicant.conf` file is now formatted for easier reading.
- A new [scanOnLowSignal](options.html#opt-networking.wireless.scanOnLowSignal) option has been added to facilitate fast roaming between access points (enabled by default).
- A new [networks.&lt;name&gt;.authProtocols](options.html#opt-networking.wireless.networks._name_.authProtocols) option has been added to change the authentication protocols used when connecting to a network.
- The [networking.wireless.iwd](options.html#opt-networking.wireless.iwd.enable) module has a new [networking.wireless.iwd.settings](options.html#opt-networking.wireless.iwd.settings) option.
- The [services.syncoid.enable](options.html#opt-services.syncoid.enable) module now properly drops ZFS permissions after usage. Before it delegated permissions to whole pools instead of datasets and didn't clean up after execution. You can manually look this up for your pools by running `zfs allow your-pool-name` and use `zfs unallow syncoid your-pool-name` to clean this up.

View file

@ -4,15 +4,14 @@
, # Ignored
config ? null
, # Nixpkgs, for qemu, lib and more
pkgs
pkgs, lib
, # !!! See comment about args in lib/modules.nix
specialArgs ? {}
, # NixOS configuration to add to the VMs
extraConfigurations ? []
}:
with pkgs.lib;
with import ../lib/qemu-flags.nix { inherit pkgs; };
with lib;
rec {
@ -93,8 +92,9 @@ rec {
"${config.networking.hostName}\n"));
virtualisation.qemu.options =
forEach interfacesNumbered
({ fst, snd }: qemuNICFlags snd fst m.snd);
let qemu-common = import ../lib/qemu-common.nix { inherit lib pkgs; };
in flip concatMap interfacesNumbered
({ fst, snd }: qemu-common.qemuNICFlags snd fst m.snd);
};
}
)

View file

@ -1,12 +1,12 @@
# QEMU flags shared between various Nix expressions.
{ pkgs }:
# QEMU-related utilities shared between various Nix expressions.
{ lib, pkgs }:
let
zeroPad = n:
pkgs.lib.optionalString (n < 16) "0" +
lib.optionalString (n < 16) "0" +
(if n > 255
then throw "Can't have more than 255 nets or nodes!"
else pkgs.lib.toHexString n);
else lib.toHexString n);
in
rec {
@ -14,7 +14,7 @@ rec {
qemuNICFlags = nic: net: machine:
[ "-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac net machine}"
"-netdev vde,id=vlan${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}"
''-netdev vde,id=vlan${toString nic},sock="$QEMU_VDE_SOCKET_${toString net}"''
];
qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"

View file

@ -217,7 +217,7 @@ rec {
nodes = qemu_pkg:
let
build-vms = import ./build-vms.nix {
inherit system pkgs minimal specialArgs;
inherit system lib pkgs minimal specialArgs;
extraConfigurations = extraConfigurations ++ [(
{
virtualisation.qemu.package = qemu_pkg;
@ -257,7 +257,6 @@ rec {
inherit test driver driverInteractive nodes;
};
abortForFunction = functionName: abort ''The ${functionName} function was
removed because it is not an essential part of the NixOS testing
infrastructure. It had no usage in NixOS or Nixpkgs and it had no designated

View file

@ -6,7 +6,11 @@ let
cfg = config.documentation;
manualModules = baseModules ++ optionals cfg.nixos.includeAllModules (extraModules ++ modules);
manualModules =
baseModules
# Modules for which to show options even when not imported
++ [ ../virtualisation/qemu-vm.nix ]
++ optionals cfg.nixos.includeAllModules (extraModules ++ modules);
/* For the purpose of generating docs, evaluate options with each derivation
in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".

View file

@ -43,6 +43,9 @@ in {
The format is described in
<citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>.
To disable automatic updates, set to <literal>"never"</literal>
and run <command>updatedb</command> manually.
'';
};
@ -192,6 +195,18 @@ in {
{ LOCATE_PATH = cfg.output;
};
environment.etc = {
# write /etc/updatedb.conf for manual calls to `updatedb`
"updatedb.conf" = {
text = ''
PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
PRUNE_BIND_MOUNTSFR="${lib.boolToString cfg.pruneBindMounts}"
'';
};
};
warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component"
++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
@ -238,7 +253,7 @@ in {
serviceConfig.ReadWritePaths = dirOf cfg.output;
};
systemd.timers.update-locatedb =
systemd.timers.update-locatedb = mkIf (cfg.interval != "never")
{ description = "Update timer for locate database";
partOf = [ "update-locatedb.service" ];
wantedBy = [ "timers.target" ];

View file

@ -963,6 +963,7 @@
./services/web-apps/calibre-web.nix
./services/web-apps/convos.nix
./services/web-apps/cryptpad.nix
./services/web-apps/dex.nix
./services/web-apps/discourse.nix
./services/web-apps/documize.nix
./services/web-apps/dokuwiki.nix
@ -990,6 +991,7 @@
./services/web-apps/nextcloud.nix
./services/web-apps/nexus.nix
./services/web-apps/node-red.nix
./services/web-apps/pict-rs.nix
./services/web-apps/plantuml-server.nix
./services/web-apps/plausible.nix
./services/web-apps/pgpkeyserver-lite.nix

View file

@ -310,7 +310,7 @@ in
# the service - therefore we sleep in a loop until we can ping the
# endpoint.
preStart = ''
while ! ping -q -c 1 v1-0-0-server.tarsnap.com &> /dev/null; do sleep 3; done
while ! ping -4 -q -c 1 v1-0-0-server.tarsnap.com &> /dev/null; do sleep 3; done
'';
script = let

View file

@ -65,7 +65,7 @@ in {
unitConfig.Documentation = [ "man:lircd(8)" ];
serviceConfig = {
RuntimeDirectory = "lirc";
RuntimeDirectory = ["lirc" "lirc/lock"];
# Service runtime directory and socket share same folder.
# Following hacks are necessary to get everything right:

View file

@ -66,7 +66,7 @@ in
RestrictNamespaces = "yes";
RestrictRealtime = "yes";
RestrictSUIDSGID = "yes";
MemoryDenyWriteExecute = "yes";
MemoryDenyWriteExecute = "no"; # v8 JIT requires memory segments to be Writable-Executable.
LockPersonality = "yes";
};
};

View file

@ -20,10 +20,16 @@ let
++ optional cfg.scanOnLowSignal ''bgscan="simple:30:-70:3600"''
++ optional (cfg.extraConfig != "") cfg.extraConfig);
configIsGenerated = with cfg;
networks != {} || extraConfig != "" || userControlled.enable;
# the original configuration file
configFile =
if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable
if configIsGenerated
then pkgs.writeText "wpa_supplicant.conf" generatedConfig
else "/etc/wpa_supplicant.conf";
# the config file with environment variables replaced
finalConfig = ''"$RUNTIME_DIRECTORY"/wpa_supplicant.conf'';
# Creates a network block for wpa_supplicant.conf
mkNetwork = ssid: opts:
@ -56,8 +62,8 @@ let
let
deviceUnit = optional (iface != null) "sys-subsystem-net-devices-${utils.escapeSystemdPath iface}.device";
configStr = if cfg.allowAuxiliaryImperativeNetworks
then "-c /etc/wpa_supplicant.conf -I ${configFile}"
else "-c ${configFile}";
then "-c /etc/wpa_supplicant.conf -I ${finalConfig}"
else "-c ${finalConfig}";
in {
description = "WPA Supplicant instance" + optionalString (iface != null) " for interface ${iface}";
@ -69,12 +75,25 @@ let
stopIfChanged = false;
path = [ package ];
serviceConfig.RuntimeDirectory = "wpa_supplicant";
serviceConfig.RuntimeDirectoryMode = "700";
serviceConfig.EnvironmentFile = mkIf (cfg.environmentFile != null)
(builtins.toString cfg.environmentFile);
script =
''
if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]; then
echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
fi
${optionalString configIsGenerated ''
if [ -f /etc/wpa_supplicant.conf ]; then
echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
fi
''}
# substitute environment variables
${pkgs.gawk}/bin/awk '{
for(varname in ENVIRON)
gsub("@"varname"@", ENVIRON[varname])
print
}' "${configFile}" > "${finalConfig}"
iface_args="-s ${optionalString cfg.dbusControlled "-u"} -D${cfg.driver} ${configStr}"
@ -155,6 +174,44 @@ in {
'';
};
environmentFile = mkOption {
type = types.nullOr types.path;
default = null;
example = "/run/secrets/wireless.env";
description = ''
File consisting of lines of the form <literal>varname=value</literal>
to define variables for the wireless configuration.
See section "EnvironmentFile=" in <citerefentry>
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
</citerefentry> for a syntax reference.
Secrets (PSKs, passwords, etc.) can be provided without adding them to
the world-readable Nix store by defining them in the environment file and
referring to them in option <option>networking.wireless.networks</option>
with the syntax <literal>@varname@</literal>. Example:
<programlisting>
# content of /run/secrets/wireless.env
PSK_HOME=mypassword
PASS_WORK=myworkpassword
</programlisting>
<programlisting>
# wireless-related configuration
networking.wireless.environmentFile = "/run/secrets/wireless.env";
networking.wireless.networks = {
home.psk = "@PSK_HOME@";
work.auth = '''
eap=PEAP
identity="my-user@example.com"
password="@PASS_WORK@"
''';
};
</programlisting>
'';
};
networks = mkOption {
type = types.attrsOf (types.submodule {
options = {
@ -165,10 +222,14 @@ in {
The network's pre-shared key in plaintext defaulting
to being a network without any authentication.
Be aware that these will be written to the nix store
in plaintext!
<warning><para>
Be aware that this will be written to the nix store
in plaintext! Use an environment variable instead.
</para></warning>
Mutually exclusive with <varname>pskRaw</varname>.
<note><para>
Mutually exclusive with <varname>pskRaw</varname>.
</para></note>
'';
};
@ -179,7 +240,14 @@ in {
The network's pre-shared key in hex defaulting
to being a network without any authentication.
Mutually exclusive with <varname>psk</varname>.
<warning><para>
Be aware that this will be written to the nix store
in plaintext! Use an environment variable instead.
</para></warning>
<note><para>
Mutually exclusive with <varname>psk</varname>.
</para></note>
'';
};
@ -231,7 +299,7 @@ in {
example = ''
eap=PEAP
identity="user@example.com"
password="secret"
password="@EXAMPLE_PASSWORD@"
'';
description = ''
Use this option to configure advanced authentication methods like EAP.
@ -242,7 +310,15 @@ in {
</citerefentry>
for example configurations.
Mutually exclusive with <varname>psk</varname> and <varname>pskRaw</varname>.
<warning><para>
Be aware that this will be written to the nix store
in plaintext! Use an environment variable for secrets.
</para></warning>
<note><para>
Mutually exclusive with <varname>psk</varname> and
<varname>pskRaw</varname>.
</para></note>
'';
};
@ -303,11 +379,17 @@ in {
default = {};
example = literalExample ''
{ echelon = { # SSID with no spaces or special characters
psk = "abcdefgh";
psk = "abcdefgh"; # (password will be written to /nix/store!)
};
echelon = { # safe version of the above: read PSK from the
psk = "@PSK_ECHELON@"; # variable PSK_ECHELON, defined in environmentFile,
}; # this won't leak into /nix/store
"echelon's AP" = { # SSID with spaces and/or special characters
psk = "ijklmnop";
psk = "ijklmnop"; # (password will be written to /nix/store!)
};
"free.wifi" = {}; # Public wireless network
}
'';

View file

@ -0,0 +1,115 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.dex;
fixClient = client: if client ? secretFile then ((builtins.removeAttrs client [ "secretFile" ]) // { secret = client.secretFile; }) else client;
filteredSettings = mapAttrs (n: v: if n == "staticClients" then (builtins.map fixClient v) else v) cfg.settings;
secretFiles = flatten (builtins.map (c: if c ? secretFile then [ c.secretFile ] else []) (cfg.settings.staticClients or []));
settingsFormat = pkgs.formats.yaml {};
configFile = settingsFormat.generate "config.yaml" filteredSettings;
startPreScript = pkgs.writeShellScript "dex-start-pre" (''
'' + (concatStringsSep "\n" (builtins.map (file: ''
${pkgs.replace-secret}/bin/replace-secret '${file}' '${file}' /run/dex/config.yaml
'') secretFiles)));
in
{
options.services.dex = {
enable = mkEnableOption "the OpenID Connect and OAuth2 identity provider";
settings = mkOption {
type = settingsFormat.type;
default = {};
example = literalExample ''
{
# External url
issuer = "http://127.0.0.1:5556/dex";
storage = {
type = "postgres";
config.host = "/var/run/postgres";
};
web = {
http = "127.0.0.1:5556";
};
enablePasswordDB = true;
staticClients = [
{
id = "oidcclient";
name = "Client";
redirectURIs = [ "https://example.com/callback" ];
secretFile = "/etc/dex/oidcclient"; # The content of `secretFile` will be written into to the config as `secret`.
}
];
}
'';
description = ''
The available options can be found in
<link xlink:href="https://github.com/dexidp/dex/blob/v${pkgs.dex.version}/config.yaml.dist">the example configuration</link>.
'';
};
};
config = mkIf cfg.enable {
systemd.services.dex = {
description = "dex identity provider";
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ] ++ (optional (cfg.settings.storage.type == "postgres") "postgresql.service");
serviceConfig = {
ExecStart = "${pkgs.dex-oidc}/bin/dex serve /run/dex/config.yaml";
ExecStartPre = [
"${pkgs.coreutils}/bin/install -m 600 ${configFile} /run/dex/config.yaml"
"+${startPreScript}"
];
RuntimeDirectory = "dex";
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
BindReadOnlyPaths = [
"/nix/store"
"-/etc/resolv.conf"
"-/etc/nsswitch.conf"
"-/etc/hosts"
"-/etc/localtime"
"-/etc/dex"
];
BindPaths = optional (cfg.settings.storage.type == "postgres") "/var/run/postgresql";
CapabilityBoundingSet = "CAP_NET_BIND_SERVICE";
# ProtectClock= adds DeviceAllow=char-rtc r
DeviceAllow = "";
DynamicUser = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateMounts = true;
# Port needs to be exposed to the host network
#PrivateNetwork = true;
PrivateTmp = true;
PrivateUsers = true;
ProcSubset = "pid";
ProtectClock = true;
ProtectHome = true;
ProtectHostname = true;
# Would re-mount paths ignored by temporary root
#ProtectSystem = "strict";
ProtectControlGroups = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged @resources @setuid @keyring" ];
TemporaryFileSystem = "/:ro";
# Does not work well with the temporary root
#UMask = "0066";
};
};
};
}

View file

@ -0,0 +1,88 @@
# Pict-rs {#module-services-pict-rs}
pict-rs is a a simple image hosting service.
## Quickstart {#module-services-pict-rs-quickstart}
the minimum to start pict-rs is
```nix
services.pict-rs.enable = true;
```
this will start the http server on port 8080 by default.
## Usage {#module-services-pict-rs-usage}
pict-rs offers the following endpoints:
- `POST /image` for uploading an image. Uploaded content must be valid multipart/form-data with an
image array located within the `images[]` key
This endpoint returns the following JSON structure on success with a 201 Created status
```json
{
"files": [
{
"delete_token": "JFvFhqJA98",
"file": "lkWZDRvugm.jpg"
},
{
"delete_token": "kAYy9nk2WK",
"file": "8qFS0QooAn.jpg"
},
{
"delete_token": "OxRpM3sf0Y",
"file": "1hJaYfGE01.jpg"
}
],
"msg": "ok"
}
```
- `GET /image/download?url=...` Download an image from a remote server, returning the same JSON
payload as the `POST` endpoint
- `GET /image/original/{file}` for getting a full-resolution image. `file` here is the `file` key from the
`/image` endpoint's JSON
- `GET /image/details/original/{file}` for getting the details of a full-resolution image.
The returned JSON is structured like so:
```json
{
"width": 800,
"height": 537,
"content_type": "image/webp",
"created_at": [
2020,
345,
67376,
394363487
]
}
```
- `GET /image/process.{ext}?src={file}&...` get a file with transformations applied.
existing transformations include
- `identity=true`: apply no changes
- `blur={float}`: apply a gaussian blur to the file
- `thumbnail={int}`: produce a thumbnail of the image fitting inside an `{int}` by `{int}`
square using raw pixel sampling
- `resize={int}`: produce a thumbnail of the image fitting inside an `{int}` by `{int}` square
using a Lanczos2 filter. This is slower than sampling but looks a bit better in some cases
- `crop={int-w}x{int-h}`: produce a cropped version of the image with an `{int-w}` by `{int-h}`
aspect ratio. The resulting crop will be centered on the image. Either the width or height
of the image will remain full-size, depending on the image's aspect ratio and the requested
aspect ratio. For example, a 1600x900 image cropped with a 1x1 aspect ratio will become 900x900. A
1600x1100 image cropped with a 16x9 aspect ratio will become 1600x900.
Supported `ext` file extensions include `png`, `jpg`, and `webp`
An example of usage could be
```
GET /image/process.jpg?src=asdf.png&thumbnail=256&blur=3.0
```
which would create a 256x256px JPEG thumbnail and blur it
- `GET /image/details/process.{ext}?src={file}&...` for getting the details of a processed image.
The returned JSON is the same format as listed for the full-resolution details endpoint.
- `DELETE /image/delete/{delete_token}/{file}` or `GET /image/delete/{delete_token}/{file}` to
delete a file, where `delete_token` and `file` are from the `/image` endpoint's JSON
## Missing {#module-services-pict-rs-missing}
- Configuring the secure-api-key is not included yet. The envisioned basic use case is consumption on localhost by other services without exposing the service to the internet.

View file

@ -0,0 +1,50 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.services.pict-rs;
in
{
meta.maintainers = with maintainers; [ happysalada ];
# Don't edit the docbook xml directly, edit the md and generate it:
# `pandoc pict-rs.md -t docbook --top-level-division=chapter --extract-media=media -f markdown+smart > pict-rs.xml`
meta.doc = ./pict-rs.xml;
options.services.pict-rs = {
enable = mkEnableOption "pict-rs server";
dataDir = mkOption {
type = types.path;
default = "/var/lib/pict-rs";
description = ''
The directory where to store the uploaded images.
'';
};
address = mkOption {
type = types.str;
default = "127.0.0.1";
description = ''
The IPv4 address to deploy the service to.
'';
};
port = mkOption {
type = types.port;
default = 8080;
description = ''
The port which to bind the service to.
'';
};
};
config = lib.mkIf cfg.enable {
systemd.services.pict-rs = {
environment = {
PICTRS_PATH = cfg.dataDir;
PICTRS_ADDR = "${cfg.address}:${toString cfg.port}";
};
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
StateDirectory = "pict-rs";
ExecStart = "${pkgs.pict-rs}/bin/pict-rs";
};
};
};
}

View file

@ -0,0 +1,162 @@
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="module-services-pict-rs">
<title>Pict-rs</title>
<para>
pict-rs is a a simple image hosting service.
</para>
<section xml:id="module-services-pict-rs-quickstart">
<title>Quickstart</title>
<para>
the minimum to start pict-rs is
</para>
<programlisting language="bash">
services.pict-rs.enable = true;
</programlisting>
<para>
this will start the http server on port 8080 by default.
</para>
</section>
<section xml:id="module-services-pict-rs-usage">
<title>Usage</title>
<para>
pict-rs offers the following endpoints: -
<literal>POST /image</literal> for uploading an image. Uploaded
content must be valid multipart/form-data with an image array
located within the <literal>images[]</literal> key
</para>
<programlisting>
This endpoint returns the following JSON structure on success with a 201 Created status
```json
{
&quot;files&quot;: [
{
&quot;delete_token&quot;: &quot;JFvFhqJA98&quot;,
&quot;file&quot;: &quot;lkWZDRvugm.jpg&quot;
},
{
&quot;delete_token&quot;: &quot;kAYy9nk2WK&quot;,
&quot;file&quot;: &quot;8qFS0QooAn.jpg&quot;
},
{
&quot;delete_token&quot;: &quot;OxRpM3sf0Y&quot;,
&quot;file&quot;: &quot;1hJaYfGE01.jpg&quot;
}
],
&quot;msg&quot;: &quot;ok&quot;
}
```
</programlisting>
<itemizedlist>
<listitem>
<para>
<literal>GET /image/download?url=...</literal> Download an
image from a remote server, returning the same JSON payload as
the <literal>POST</literal> endpoint
</para>
</listitem>
<listitem>
<para>
<literal>GET /image/original/{file}</literal> for getting a
full-resolution image. <literal>file</literal> here is the
<literal>file</literal> key from the <literal>/image</literal>
endpoints JSON
</para>
</listitem>
<listitem>
<para>
<literal>GET /image/details/original/{file}</literal> for
getting the details of a full-resolution image. The returned
JSON is structured like so:
<literal>json { &quot;width&quot;: 800, &quot;height&quot;: 537, &quot;content_type&quot;: &quot;image/webp&quot;, &quot;created_at&quot;: [ 2020, 345, 67376, 394363487 ] }</literal>
</para>
</listitem>
<listitem>
<para>
<literal>GET /image/process.{ext}?src={file}&amp;...</literal>
get a file with transformations applied. existing
transformations include
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
<literal>identity=true</literal>: apply no changes
</para>
</listitem>
<listitem>
<para>
<literal>blur={float}</literal>: apply a gaussian blur to
the file
</para>
</listitem>
<listitem>
<para>
<literal>thumbnail={int}</literal>: produce a thumbnail of
the image fitting inside an <literal>{int}</literal> by
<literal>{int}</literal> square using raw pixel sampling
</para>
</listitem>
<listitem>
<para>
<literal>resize={int}</literal>: produce a thumbnail of
the image fitting inside an <literal>{int}</literal> by
<literal>{int}</literal> square using a Lanczos2 filter.
This is slower than sampling but looks a bit better in
some cases
</para>
</listitem>
<listitem>
<para>
<literal>crop={int-w}x{int-h}</literal>: produce a cropped
version of the image with an <literal>{int-w}</literal> by
<literal>{int-h}</literal> aspect ratio. The resulting
crop will be centered on the image. Either the width or
height of the image will remain full-size, depending on
the images aspect ratio and the requested aspect ratio.
For example, a 1600x900 image cropped with a 1x1 aspect
ratio will become 900x900. A 1600x1100 image cropped with
a 16x9 aspect ratio will become 1600x900.
</para>
</listitem>
</itemizedlist>
<para>
Supported <literal>ext</literal> file extensions include
<literal>png</literal>, <literal>jpg</literal>, and
<literal>webp</literal>
</para>
<para>
An example of usage could be
<literal>GET /image/process.jpg?src=asdf.png&amp;thumbnail=256&amp;blur=3.0</literal>
which would create a 256x256px JPEG thumbnail and blur it
</para>
</listitem>
<listitem>
<para>
<literal>GET /image/details/process.{ext}?src={file}&amp;...</literal>
for getting the details of a processed image. The returned
JSON is the same format as listed for the full-resolution
details endpoint.
</para>
</listitem>
<listitem>
<para>
<literal>DELETE /image/delete/{delete_token}/{file}</literal>
or <literal>GET /image/delete/{delete_token}/{file}</literal>
to delete a file, where <literal>delete_token</literal> and
<literal>file</literal> are from the <literal>/image</literal>
endpoints JSON
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="module-services-pict-rs-missing">
<title>Missing</title>
<itemizedlist spacing="compact">
<listitem>
<para>
Configuring the secure-api-key is not included yet. The
envisioned basic use case is consumption on localhost by other
services without exposing the service to the internet.
</para>
</listitem>
</itemizedlist>
</section>
</chapter>

View file

@ -264,6 +264,7 @@ in
kwallet-pam
kwalletmanager
kwayland
kwayland-integration
kwidgetsaddons
kxmlgui
kxmlrpcclient

View file

@ -1139,10 +1139,12 @@ in
source = "${pkgs.iputils.out}/bin/ping";
};
} else {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.iputils.out}/bin/ping";
ping = {
setuid = true;
owner = "root";
group = "root";
source = "${pkgs.iputils.out}/bin/ping";
};
};
security.apparmor.policies."bin.ping".profile = lib.mkIf config.security.apparmor.policies."bin.ping".enable (lib.mkAfter ''
/run/wrappers/bin/ping {

View file

@ -4,7 +4,10 @@
{ options, config, lib, pkgs, ... }:
with lib;
with import ../../lib/qemu-flags.nix { inherit pkgs; };
let
qemu-common = import ../../lib/qemu-common.nix { inherit lib pkgs; };
in
{
@ -12,8 +15,8 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
systemd.services.backdoor =
{ wantedBy = [ "multi-user.target" ];
requires = [ "dev-hvc0.device" "dev-${qemuSerialDevice}.device" ];
after = [ "dev-hvc0.device" "dev-${qemuSerialDevice}.device" ];
requires = [ "dev-hvc0.device" "dev-${qemu-common.qemuSerialDevice}.device" ];
after = [ "dev-hvc0.device" "dev-${qemu-common.qemuSerialDevice}.device" ];
script =
''
export USER=root
@ -30,7 +33,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
cd /tmp
exec < /dev/hvc0 > /dev/hvc0
while ! exec 2> /dev/${qemuSerialDevice}; do sleep 0.1; done
while ! exec 2> /dev/${qemu-common.qemuSerialDevice}; do sleep 0.1; done
echo "connecting to host..." >&2
stty -F /dev/hvc0 raw -echo # prevent nl -> cr/nl conversion
echo
@ -42,7 +45,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
# Prevent agetty from being instantiated on the serial device, since it
# interferes with the backdoor (writes to it will randomly fail
# with EIO). Likewise for hvc0.
systemd.services."serial-getty@${qemuSerialDevice}".enable = false;
systemd.services."serial-getty@${qemu-common.qemuSerialDevice}".enable = false;
systemd.services."serial-getty@hvc0".enable = false;
# Only set these settings when the options exist. Some tests (e.g. those
@ -57,7 +60,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
# we avoid defining consoles if not possible.
# TODO: refactor such that test-instrumentation can import qemu-vm
# or declare virtualisation.qemu.console option in a module that's always imported
consoles = [ qemuSerialDevice ];
consoles = [ qemu-common.qemuSerialDevice ];
package = lib.mkDefault pkgs.qemu_test;
};
};
@ -88,7 +91,7 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
# Panic if an error occurs in stage 1 (rather than waiting for
# user intervention).
boot.kernelParams =
[ "console=${qemuSerialDevice}" "panic=1" "boot.panic_on_fail" ];
[ "console=${qemu-common.qemuSerialDevice}" "panic=1" "boot.panic_on_fail" ];
# `xwininfo' is used by the test driver to query open windows.
environment.systemPackages = [ pkgs.xorg.xwininfo ];

View file

@ -10,10 +10,10 @@
{ config, lib, pkgs, options, ... }:
with lib;
with import ../../lib/qemu-flags.nix { inherit pkgs; };
let
qemu-common = import ../../lib/qemu-common.nix { inherit lib pkgs; };
cfg = config.virtualisation;
@ -75,7 +75,7 @@ let
in
"-drive ${driveOpts} ${device}";
drivesCmdLine = drives: concatStringsSep " " (imap1 driveCmdline drives);
drivesCmdLine = drives: concatStringsSep "\\\n " (imap1 driveCmdline drives);
# Creates a device name from a 1-based a numerical index, e.g.
@ -108,39 +108,44 @@ let
''
#! ${pkgs.runtimeShell}
NIX_DISK_IMAGE=$(readlink -f ''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}})
set -e
NIX_DISK_IMAGE=$(readlink -f "''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}}")
if ! test -e "$NIX_DISK_IMAGE"; then
${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" \
${toString config.virtualisation.diskSize}M || exit 1
${toString config.virtualisation.diskSize}M
fi
# Create a directory for storing temporary data of the running VM.
if [ -z "$TMPDIR" -o -z "$USE_TMPDIR" ]; then
if [ -z "$TMPDIR" ] || [ -z "$USE_TMPDIR" ]; then
TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir)
fi
# Create a directory for exchanging data with the VM.
mkdir -p $TMPDIR/xchg
mkdir -p "$TMPDIR/xchg"
${if cfg.useBootLoader then ''
${lib.optionalString cfg.useBootLoader
''
# Create a writable copy/snapshot of the boot disk.
# A writable boot disk can be booted from automatically.
${qemu}/bin/qemu-img create -f qcow2 -b ${bootDisk}/disk.img $TMPDIR/disk.img || exit 1
${qemu}/bin/qemu-img create -f qcow2 -F qcow2 -b ${bootDisk}/disk.img "$TMPDIR/disk.img"
NIX_EFI_VARS=$(readlink -f ''${NIX_EFI_VARS:-${cfg.efiVars}})
NIX_EFI_VARS=$(readlink -f "''${NIX_EFI_VARS:-${cfg.efiVars}}")
${if cfg.useEFIBoot then ''
${lib.optionalString cfg.useEFIBoot
''
# VM needs writable EFI vars
if ! test -e "$NIX_EFI_VARS"; then
cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS" || exit 1
chmod 0644 "$NIX_EFI_VARS" || exit 1
cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS"
chmod 0644 "$NIX_EFI_VARS"
fi
'' else ""}
'' else ""}
''}
''}
cd $TMPDIR
idx=0
cd "$TMPDIR"
${lib.optionalString (cfg.emptyDiskImages != []) "idx=0"}
${flip concatMapStrings cfg.emptyDiskImages (size: ''
if ! test -e "empty$idx.qcow2"; then
${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M"
@ -149,17 +154,18 @@ let
'')}
# Start QEMU.
exec ${qemuBinary qemu} \
exec ${qemu-common.qemuBinary qemu} \
-name ${config.system.name} \
-m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \
-device virtio-rng-pci \
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
-virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \
${concatStringsSep " \\\n "
(mapAttrsToList
(tag: share: "-virtfs local,path=${share.source},security_model=none,mount_tag=${tag}")
config.virtualisation.sharedDirectories)} \
${drivesCmdLine config.virtualisation.qemu.drives} \
${toString config.virtualisation.qemu.options} \
${concatStringsSep " \\\n " config.virtualisation.qemu.options} \
$QEMU_OPTS \
"$@"
'';
@ -270,20 +276,21 @@ in
virtualisation.memorySize =
mkOption {
type = types.ints.positive;
default = 384;
description =
''
Memory size (M) of virtual machine.
The memory size in megabytes of the virtual machine.
'';
};
virtualisation.msize =
mkOption {
default = null;
type = types.nullOr types.ints.unsigned;
type = types.ints.positive;
default = 16384;
description =
''
msize (maximum packet size) option passed to 9p file systems, in
The msize (maximum packet size) option passed to 9p file systems, in
bytes. Increasing this should increase performance significantly,
at the cost of higher RAM usage.
'';
@ -291,15 +298,17 @@ in
virtualisation.diskSize =
mkOption {
type = types.nullOr types.ints.positive;
default = 512;
description =
''
Disk size (M) of virtual machine.
The disk size in megabytes of the virtual machine.
'';
};
virtualisation.diskImage =
mkOption {
type = types.str;
default = "./${config.system.name}.qcow2";
description =
''
@ -311,7 +320,7 @@ in
virtualisation.bootDevice =
mkOption {
type = types.str;
type = types.path;
example = "/dev/vda";
description =
''
@ -321,8 +330,8 @@ in
virtualisation.emptyDiskImages =
mkOption {
type = types.listOf types.ints.positive;
default = [];
type = types.listOf types.int;
description =
''
Additional disk images to provide to the VM. The value is
@ -333,6 +342,7 @@ in
virtualisation.graphics =
mkOption {
type = types.bool;
default = true;
description =
''
@ -342,10 +352,20 @@ in
'';
};
virtualisation.resolution =
mkOption {
type = options.services.xserver.resolutions.type.nestedTypes.elemType;
default = { x = 1024; y = 768; };
description =
''
The resolution of the virtual machine display.
'';
};
virtualisation.cores =
mkOption {
type = types.ints.positive;
default = 1;
type = types.int;
description =
''
Specify the number of cores the guest is permitted to use.
@ -354,8 +374,34 @@ in
'';
};
virtualisation.sharedDirectories =
mkOption {
type = types.attrsOf
(types.submodule {
options.source = mkOption {
type = types.str;
description = "The path of the directory to share, can be a shell variable";
};
options.target = mkOption {
type = types.path;
description = "The mount point of the directory inside the virtual machine";
};
});
default = { };
example = {
my-share = { source = "/path/to/be/shared"; target = "/mnt/shared"; };
};
description =
''
An attributes set of directories that will be shared with the
virtual machine using VirtFS (9P filesystem over VirtIO).
The attribute name will be used as the 9P mount tag.
'';
};
virtualisation.pathsInNixDB =
mkOption {
type = types.listOf types.path;
default = [];
description =
''
@ -367,8 +413,78 @@ in
'';
};
virtualisation.forwardPorts = mkOption {
type = types.listOf
(types.submodule {
options.from = mkOption {
type = types.enum [ "host" "guest" ];
default = "host";
description =
''
Controls the direction in which the ports are mapped:
- <literal>"host"</literal> means traffic from the host ports
is forwarded to the given guest port.
- <literal>"guest"</literal> means traffic from the guest ports
is forwarded to the given host port.
'';
};
options.proto = mkOption {
type = types.enum [ "tcp" "udp" ];
default = "tcp";
description = "The protocol to forward.";
};
options.host.address = mkOption {
type = types.str;
default = "";
description = "The IPv4 address of the host.";
};
options.host.port = mkOption {
type = types.port;
description = "The host port to be mapped.";
};
options.guest.address = mkOption {
type = types.str;
default = "";
description = "The IPv4 address on the guest VLAN.";
};
options.guest.port = mkOption {
type = types.port;
description = "The guest port to be mapped.";
};
});
default = [];
example = lib.literalExample
''
[ # forward local port 2222 -> 22, to ssh into the VM
{ from = "host"; host.port = 2222; guest.port = 22; }
# forward local port 80 -> 10.0.2.10:80 in the VLAN
{ from = "guest";
guest.address = "10.0.2.10"; guest.port = 80;
host.address = "127.0.0.1"; host.port = 80;
}
]
'';
description =
''
When using the SLiRP user networking (default), this option allows to
forward ports to/from the host/guest.
<warning><para>
If the NixOS firewall on the virtual machine is enabled, you also
have to open the guest ports to enable the traffic between host and
guest.
</para></warning>
<note><para>Currently QEMU supports only IPv4 forwarding.</para></note>
'';
};
virtualisation.vlans =
mkOption {
type = types.listOf types.ints.unsigned;
default = [ 1 ];
example = [ 1 2 ];
description =
@ -386,6 +502,7 @@ in
virtualisation.writableStore =
mkOption {
type = types.bool;
default = true; # FIXME
description =
''
@ -397,6 +514,7 @@ in
virtualisation.writableStoreUseTmpfs =
mkOption {
type = types.bool;
default = true;
description =
''
@ -407,6 +525,7 @@ in
networking.primaryIPAddress =
mkOption {
type = types.str;
default = "";
internal = true;
description = "Primary IP address used in /etc/hosts.";
@ -423,7 +542,7 @@ in
options =
mkOption {
type = types.listOf types.unspecified;
type = types.listOf types.str;
default = [];
example = [ "-vga std" ];
description = "Options passed to QEMU.";
@ -432,7 +551,7 @@ in
consoles = mkOption {
type = types.listOf types.str;
default = let
consoles = [ "${qemuSerialDevice},115200n8" "tty0" ];
consoles = [ "${qemu-common.qemuSerialDevice},115200n8" "tty0" ];
in if cfg.graphics then consoles else reverseList consoles;
example = [ "console=tty1" ];
description = ''
@ -448,17 +567,18 @@ in
networkingOptions =
mkOption {
default = [
"-net nic,netdev=user.0,model=virtio"
"-netdev user,id=user.0\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
];
type = types.listOf types.str;
default = [ ];
example = [
"-net nic,netdev=user.0,model=virtio"
"-netdev user,id=user.0,\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
];
description = ''
Networking-related command-line options that should be passed to qemu.
The default is to use userspace networking (slirp).
The default is to use userspace networking (SLiRP).
If you override this option, be advised to keep
''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the default)
''${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} (as seen in the example)
to keep the default runtime behaviour.
'';
};
@ -472,16 +592,16 @@ in
diskInterface =
mkOption {
type = types.enum [ "virtio" "scsi" "ide" ];
default = "virtio";
example = "scsi";
type = types.enum [ "virtio" "scsi" "ide" ];
description = "The interface used for the virtual hard disks.";
};
guestAgent.enable =
mkOption {
default = true;
type = types.bool;
default = true;
description = ''
Enable the Qemu guest agent.
'';
@ -490,6 +610,7 @@ in
virtualisation.useBootLoader =
mkOption {
type = types.bool;
default = false;
description =
''
@ -504,6 +625,7 @@ in
virtualisation.useEFIBoot =
mkOption {
type = types.bool;
default = false;
description =
''
@ -515,6 +637,7 @@ in
virtualisation.efiVars =
mkOption {
type = types.str;
default = "./${config.system.name}-efi-vars.fd";
description =
''
@ -525,8 +648,8 @@ in
virtualisation.bios =
mkOption {
default = null;
type = types.nullOr types.package;
default = null;
description =
''
An alternate BIOS (such as <package>qboot</package>) with which to start the VM.
@ -539,6 +662,25 @@ in
config = {
assertions =
lib.concatLists (lib.flip lib.imap cfg.forwardPorts (i: rule:
[
{ assertion = rule.from == "guest" -> rule.proto == "tcp";
message =
''
Invalid virtualisation.forwardPorts.<entry ${toString i}>.proto:
Guest forwarding supports only TCP connections.
'';
}
{ assertion = rule.from == "guest" -> lib.hasPrefix "10.0.2." rule.guest.address;
message =
''
Invalid virtualisation.forwardPorts.<entry ${toString i}>.guest.address:
The address must be in the default VLAN (10.0.2.0/24).
'';
}
]));
# Note [Disk layout with `useBootLoader`]
#
# If `useBootLoader = true`, we configure 2 drives:
@ -560,6 +702,7 @@ in
then driveDeviceName 2 # second disk
else cfg.bootDevice
);
boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
boot.initrd.extraUtilsCommands =
''
@ -618,6 +761,28 @@ in
virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
virtualisation.sharedDirectories = {
nix-store = { source = "/nix/store"; target = "/nix/store"; };
xchg = { source = ''"$TMPDIR"/xchg''; target = "/tmp/xchg"; };
shared = { source = ''"''${SHARED_DIR:-$TMPDIR/xchg}"''; target = "/tmp/shared"; };
};
virtualisation.qemu.networkingOptions =
let
forwardingOptions = flip concatMapStrings cfg.forwardPorts
({ proto, from, host, guest }:
if from == "host"
then "hostfwd=${proto}:${host.address}:${toString host.port}-" +
"${guest.address}:${toString guest.port},"
else "'guestfwd=${proto}:${guest.address}:${toString guest.port}-" +
"cmd:${pkgs.netcat}/bin/nc ${host.address} ${toString host.port}',"
);
in
[
"-net nic,netdev=user.0,model=virtio"
"-netdev user,id=user.0,${forwardingOptions}\${QEMU_NET_OPTS:+,$QEMU_NET_OPTS}"
];
# FIXME: Consolidate this one day.
virtualisation.qemu.options = mkMerge [
(mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [
@ -646,7 +811,7 @@ in
virtualisation.qemu.drives = mkMerge [
[{
name = "root";
file = "$NIX_DISK_IMAGE";
file = ''"$NIX_DISK_IMAGE"'';
driveExtraOpts.cache = "writeback";
driveExtraOpts.werror = "report";
}]
@ -655,7 +820,7 @@ in
# note [Disk layout with `useBootLoader`].
{
name = "boot";
file = "$TMPDIR/disk.img";
file = ''"$TMPDIR"/disk.img'';
driveExtraOpts.media = "disk";
deviceExtraOpts.bootindex = "1";
}
@ -672,15 +837,26 @@ in
# configuration, where the regular value for the `fileSystems'
# attribute should be disregarded for the purpose of building a VM
# test image (since those filesystems don't exist in the VM).
fileSystems = mkVMOverride (
cfg.fileSystems //
{ "/".device = cfg.bootDevice;
${if cfg.writableStore then "/nix/.ro-store" else "/nix/store"} =
{ device = "store";
fsType = "9p";
options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
neededForBoot = true;
};
fileSystems =
let
mkSharedDir = tag: share:
{
name =
if tag == "nix-store" && cfg.writableStore
then "/nix/.ro-store"
else share.target;
value.device = tag;
value.fsType = "9p";
value.neededForBoot = true;
value.options =
[ "trans=virtio" "version=9p2000.L" "msize=${toString cfg.msize}" ]
++ lib.optional (tag == "nix-store") "cache=loose";
};
in
mkVMOverride (cfg.fileSystems //
{
"/".device = cfg.bootDevice;
"/tmp" = mkIf config.boot.tmpOnTmpfs
{ device = "tmpfs";
fsType = "tmpfs";
@ -688,32 +864,20 @@ in
# Sync with systemd's tmp.mount;
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ];
};
"/tmp/xchg" =
{ device = "xchg";
fsType = "9p";
options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
neededForBoot = true;
};
"/tmp/shared" =
{ device = "shared";
fsType = "9p";
options = [ "trans=virtio" "version=9p2000.L" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}";
neededForBoot = true;
};
} // optionalAttrs (cfg.writableStore && cfg.writableStoreUseTmpfs)
{ "/nix/.rw-store" =
"/nix/.rw-store" = mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs)
{ fsType = "tmpfs";
options = [ "mode=0755" ];
neededForBoot = true;
};
} // optionalAttrs cfg.useBootLoader
{ "/boot" =
"/boot" = mkIf cfg.useBootLoader
# see note [Disk layout with `useBootLoader`]
{ device = "${lookupDriveDeviceName "boot" cfg.qemu.drives}2"; # 2 for e.g. `vdb2`, as created in `bootDisk`
fsType = "vfat";
noCheck = true; # fsck fails on a r/o filesystem
};
});
} // lib.mapAttrs' mkSharedDir cfg.sharedDirectories);
swapDevices = mkVMOverride [ ];
boot.initrd.luks.devices = mkVMOverride {};
@ -734,7 +898,7 @@ in
# video driver the host uses.
services.xserver.videoDrivers = mkVMOverride [ "modesetting" ];
services.xserver.defaultDepth = mkVMOverride 0;
services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ];
services.xserver.resolutions = mkVMOverride [ cfg.resolution ];
services.xserver.monitorSection =
''
# Set a higher refresh rate so that resolutions > 800x600 work.

View file

@ -97,6 +97,7 @@ in
cryptpad = handleTest ./cryptpad.nix {};
deluge = handleTest ./deluge.nix {};
dendrite = handleTest ./dendrite.nix {};
dex-oidc = handleTest ./dex-oidc.nix {};
dhparams = handleTest ./dhparams.nix {};
disable-installer-tools = handleTest ./disable-installer-tools.nix {};
discourse = handleTest ./discourse.nix {};
@ -478,6 +479,7 @@ in
wiki-js = handleTest ./wiki-js.nix {};
wireguard = handleTest ./wireguard {};
wmderland = handleTest ./wmderland.nix {};
wpa_supplicant = handleTest ./wpa_supplicant.nix {};
wordpress = handleTest ./wordpress.nix {};
xandikos = handleTest ./xandikos.nix {};
xautolock = handleTest ./xautolock.nix {};

View file

@ -4,10 +4,10 @@
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
with import ../lib/qemu-flags.nix { inherit pkgs; };
with pkgs.lib;
let
qemu-common = import ../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
iso =
(import ../lib/eval-config.nix {
@ -23,7 +23,7 @@ let
makeBootTest = name: extraConfig:
let
machineConfig = pythonDict ({
qemuBinary = qemuBinary pkgs.qemu_test;
qemuBinary = qemu-common.qemuBinary pkgs.qemu_test;
qemuFlags = "-m 768";
} // extraConfig);
in
@ -65,7 +65,7 @@ let
];
};
machineConfig = pythonDict ({
qemuBinary = qemuBinary pkgs.qemu_test;
qemuBinary = qemu-common.qemuBinary pkgs.qemu_test;
qemuFlags = "-boot order=n -m 2000";
netBackendArgs = "tftp=${ipxeBootDir},bootfile=netboot.ipxe";
} // extraConfig);

View file

@ -82,7 +82,7 @@ in
# chromium-based browsers refuse to run as root
test-support.displayManager.auto.user = "alice";
# browsers may hang with the default memory
virtualisation.memorySize = "500";
virtualisation.memorySize = 500;
networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
@ -113,7 +113,7 @@ in
# which is why it will not use the system certificate store for the time being.
# firefox
chromium
falkon
qutebrowser
midori
];
};
@ -152,21 +152,21 @@ in
with subtest("Unknown CA is untrusted in curl"):
machine.fail("curl -fv https://bad.example.com")
browsers = [
browsers = {
# Firefox was disabled here, because we needed to disable p11-kit support in nss,
# which is why it will not use the system certificate store for the time being.
# "firefox",
"chromium",
"falkon",
"midori"
]
errors = ["Security Risk", "not private", "Certificate Error", "Security"]
#"firefox": "Security Risk",
"chromium": "not private",
"qutebrowser -T": "Certificate error",
"midori": "Security"
}
machine.wait_for_x()
for browser, error in zip(browsers, errors):
for command, error in browsers.items():
browser = command.split()[0]
with subtest("Good certificate is trusted in " + browser):
execute_as(
"alice", f"env P11_KIT_DEBUG=trust {browser} https://good.example.com & >&2"
"alice", f"env P11_KIT_DEBUG=trust {command} https://good.example.com & >&2"
)
wait_for_window_as("alice", browser)
machine.wait_for_text("It works!")
@ -174,7 +174,7 @@ in
execute_as("alice", "xdotool key ctrl+w") # close tab
with subtest("Unknown CA is untrusted in " + browser):
execute_as("alice", f"{browser} https://bad.example.com & >&2")
execute_as("alice", f"{command} https://bad.example.com & >&2")
machine.wait_for_text(error)
machine.screenshot("bad" + browser)
machine.succeed("pkill " + browser)

View file

@ -0,0 +1,78 @@
import ./make-test-python.nix ({ lib, ... }: {
name = "dex-oidc";
meta.maintainers = with lib.maintainers; [ Flakebi ];
nodes.machine = { pkgs, ... }: {
environment.systemPackages = with pkgs; [ jq ];
services.dex = {
enable = true;
settings = {
issuer = "http://127.0.0.1:8080/dex";
storage = {
type = "postgres";
config.host = "/var/run/postgresql";
};
web.http = "127.0.0.1:8080";
oauth2.skipApprovalScreen = true;
staticClients = [
{
id = "oidcclient";
name = "Client";
redirectURIs = [ "https://example.com/callback" ];
secretFile = "/etc/dex/oidcclient";
}
];
connectors = [
{
type = "mockPassword";
id = "mock";
name = "Example";
config = {
username = "admin";
password = "password";
};
}
];
};
};
# This should not be set from nix but through other means to not leak the secret.
environment.etc."dex/oidcclient" = {
mode = "0400";
user = "dex";
text = "oidcclientsecret";
};
services.postgresql = {
enable = true;
ensureDatabases =[ "dex" ];
ensureUsers = [
{
name = "dex";
ensurePermissions = { "DATABASE dex" = "ALL PRIVILEGES"; };
}
];
};
};
testScript = ''
with subtest("Web server gets ready"):
machine.wait_for_unit("dex.service")
# Wait until server accepts connections
machine.wait_until_succeeds("curl -fs 'localhost:8080/dex/auth/mock?client_id=oidcclient&response_type=code&redirect_uri=https://example.com/callback&scope=openid'")
with subtest("Login"):
state = machine.succeed("curl -fs 'localhost:8080/dex/auth/mock?client_id=oidcclient&response_type=code&redirect_uri=https://example.com/callback&scope=openid' | sed -n 's/.*state=\\(.*\\)\">.*/\\1/p'").strip()
print(f"Got state {state}")
machine.succeed(f"curl -fs 'localhost:8080/dex/auth/mock/login?back=&state={state}' -d 'login=admin&password=password'")
code = machine.succeed(f"curl -fs localhost:8080/dex/approval?req={state} | sed -n 's/.*code=\\(.*\\)&amp;.*/\\1/p'").strip()
print(f"Got approval code {code}")
bearer = machine.succeed(f"curl -fs localhost:8080/dex/token -u oidcclient:oidcclientsecret -d 'grant_type=authorization_code&redirect_uri=https://example.com/callback&code={code}' | jq .access_token -r").strip()
print(f"Got access token {bearer}")
with subtest("Get userinfo"):
assert '"sub"' in machine.succeed(
f"curl -fs localhost:8080/dex/userinfo --oauth2-bearer {bearer}"
)
'';
})

View file

@ -119,7 +119,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
with subtest("The pullImage tool works"):
docker.succeed(
"docker load --input='${examples.nixFromDockerHub}'",
"docker load --input='${examples.testNixFromDockerHub}'",
"docker run --rm nix:2.2.1 nix-store --version",
"docker rmi nix:2.2.1",
)
@ -378,5 +378,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
docker.succeed(
"docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
)
with subtest("exportImage produces a valid tarball"):
docker.succeed(
"tar -tf ${examples.exportBash} | grep '\./bin/bash' > /dev/null"
)
'';
})

View file

@ -14,7 +14,7 @@ import ./make-test-python.nix ({ pkgs, firefoxPackage, ... }: {
];
# Need some more memory to record audio.
virtualisation.memorySize = "500";
virtualisation.memorySize = 500;
# Create a virtual sound device, with mixing
# and all, for recording audio.

View file

@ -31,7 +31,6 @@ let
linuxPackages_4_19
linuxPackages_5_4
linuxPackages_5_10
linuxPackages_5_13
linuxPackages_5_14
linuxPackages_4_14_hardened

View file

@ -8,7 +8,7 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
with pkgs.lib;
let
qemu-flags = import ../lib/qemu-flags.nix { inherit pkgs; };
qemu-common = import ../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
router = { config, pkgs, lib, ... }:
with pkgs.lib;
@ -42,7 +42,7 @@ let
machines = flip map vlanIfs (vlan:
{
hostName = "client${toString vlan}";
ethernetAddress = qemu-flags.qemuNicMac vlan 1;
ethernetAddress = qemu-common.qemuNicMac vlan 1;
ipAddress = "192.168.${toString vlan}.2";
}
);

View file

@ -0,0 +1,17 @@
import ./make-test-python.nix ({ pkgs, lib, ... }:
{
name = "pict-rs";
meta.maintainers = with lib.maintainers; [ happysalada ];
machine = { ... }: {
environment.systemPackages = with pkgs; [ curl jq ];
services.pict-rs.enable = true;
};
testScript = ''
start_all()
machine.wait_for_unit("pict-rs")
machine.wait_for_open_port("8080")
'';
})

View file

@ -0,0 +1,81 @@
import ./make-test-python.nix ({ pkgs, lib, ...}:
{
name = "wpa_supplicant";
meta = with lib.maintainers; {
maintainers = [ rnhmjoj ];
};
machine = { ... }: {
imports = [ ../modules/profiles/minimal.nix ];
# add a virtual wlan interface
boot.kernelModules = [ "mac80211_hwsim" ];
# wireless access point
services.hostapd = {
enable = true;
wpa = true;
interface = "wlan0";
ssid = "nixos-test";
wpaPassphrase = "reproducibility";
};
# wireless client
networking.wireless = {
# the override is needed because the wifi is
# disabled with mkVMOverride in qemu-vm.nix.
enable = lib.mkOverride 0 true;
userControlled.enable = true;
interfaces = [ "wlan1" ];
networks = {
# test network
nixos-test.psk = "@PSK_NIXOS_TEST@";
# secrets substitution test cases
test1.psk = "@PSK_VALID@"; # should be replaced
test2.psk = "@PSK_SPECIAL@"; # should be replaced
test3.psk = "@PSK_MISSING@"; # should not be replaced
test4.psk = "P@ssowrdWithSome@tSymbol"; # should not be replaced
};
# secrets
environmentFile = pkgs.writeText "wpa-secrets" ''
PSK_NIXOS_TEST="reproducibility"
PSK_VALID="S0m3BadP4ssw0rd";
# taken from https://github.com/minimaxir/big-list-of-naughty-strings
PSK_SPECIAL=",./;'[]\-= <>?:\"{}|_+ !@#$%^\&*()`~";
'';
};
};
testScript =
''
config_file = "/run/wpa_supplicant/wpa_supplicant.conf"
with subtest("Configuration file is inaccessible to other users"):
machine.wait_for_file(config_file)
machine.fail(f"sudo -u nobody ls {config_file}")
with subtest("Secrets variables have been substituted"):
machine.fail(f"grep -q @PSK_VALID@ {config_file}")
machine.fail(f"grep -q @PSK_SPECIAL@ {config_file}")
machine.succeed(f"grep -q @PSK_MISSING@ {config_file}")
machine.succeed(f"grep -q P@ssowrdWithSome@tSymbol {config_file}")
# save file for manual inspection
machine.copy_from_vm(config_file)
with subtest("Daemon is running and accepting connections"):
machine.wait_for_unit("wpa_supplicant-wlan1.service")
status = machine.succeed("wpa_cli -i wlan1 status")
assert "Failed to connect" not in status, \
"Failed to connect to the daemon"
with subtest("Daemon can connect to the access point"):
machine.wait_until_succeeds(
"wpa_cli -i wlan1 status | grep -q wpa_state=COMPLETED"
)
'';
})

View file

@ -0,0 +1,113 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, fetchzip
, libjack2, alsa-lib, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
, libGL, python3, ncurses, libusb1
, gtk3, webkitgtk, curl, xvfb-run, makeWrapper
# "Debug", or "Release"
, buildType ? "Release"
}:
let
projucer = stdenv.mkDerivation rec {
pname = "projucer";
version = "5.4.7";
src = fetchFromGitHub {
owner = "juce-framework";
repo = "JUCE";
rev = version;
sha256= "0qpiqfwwpcghk7ij6w4vy9ywr3ryg7ppg77bmd7783kxg6zbhj8h";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
freetype libX11 libXrandr libXinerama libXext gtk3 webkitgtk
libjack2 curl
];
preBuild = ''
cd extras/Projucer/Builds/LinuxMakefile
'';
makeFlags = [ "CONFIG=${buildType}" ];
enableParallelBuilding = true;
installPhase = ''
mkdir -p $out/bin
cp -a build/Projucer $out/bin/Projucer
'';
};
# equal to vst-sdk in ../oxefmsynth/default.nix
vst-sdk = stdenv.mkDerivation rec {
name = "vstsdk3610_11_06_2018_build_37";
src = fetchzip {
url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${name}.zip";
sha256 = "0da16iwac590wphz2sm5afrfj42jrsnkr1bxcy93lj7a369ildkj";
};
installPhase = ''
cp -r . $out
'';
};
in
stdenv.mkDerivation rec {
pname = "bespokesynth";
version = "1.0.0";
src = fetchFromGitHub {
owner = "awwbees";
repo = pname;
rev = "v${version}";
sha256 = "04b2m40jszphslkd4850jcb8qwls392lwy3lc6vlj01h4izvapqk";
};
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
xvfb-run sh -e <<EOF
${projucer}/bin/Projucer --set-global-search-path linux defaultJuceModulePath ${projucer.src}/modules
${projucer}/bin/Projucer --resave BespokeSynth.jucer
EOF
runHook postConfigure
'';
CFLAGS = "-I${vst-sdk}/VST2_SDK";
nativeBuildInputs = [ xvfb-run pkg-config python3 makeWrapper ];
buildInputs = [
libX11 libXrandr libXinerama libXext libXcursor freetype libGL
ncurses libusb1
alsa-lib libjack2
];
preBuild = ''
cd Builds/LinuxMakefile
'';
makeFlags = [ "CONFIG=${buildType}" ];
enableParallelBuilding = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/bespokesynth $out/share/applications $out/share/icons/hicolor/512x512/apps
cp build/BespokeSynth $out/bin/
cp -ar ../MacOSX/build/Release/resource $out/share/bespokesynth/
wrapProgram $out/bin/BespokeSynth \
--run "cd $out/share/bespokesynth"
mkdir -p $out/share/applications/ $out/share/icons/hicolor/512x512/apps/
cp ../../bespoke_icon.png $out/share/icons/hicolor/512x512/apps/
substitute ../../BespokeSynth.desktop $out/share/applications/BespokseSynth.desktop \
--replace "/usr/bin/" ""
runHook postInstall
'';
meta = with lib; {
description = "Software modular synth with controllers support, scripting and VST";
homepage = "https://github.com/awwbees/BespokeSynth";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ astro ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,69 @@
{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, pkg-config
, wrapGAppsHook
, desktop-file-utils
, appstream-glib
, python3Packages
, glib
, gtk3
, libhandy
, gobject-introspection
, gst_all_1
}:
python3Packages.buildPythonApplication rec {
pname = "blanket";
version = "0.5.0";
src = fetchFromGitHub {
owner = "rafaelmardojai";
repo = "blanket";
rev = version;
sha256 = "00i821zqfbigxmc709322r16z75qsw4rg23yhv35gza9sl65bzkg";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook
desktop-file-utils
appstream-glib
];
buildInputs = [
glib
gtk3
libhandy
gobject-introspection
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
];
propagatedBuildInputs = with python3Packages; [
pygobject3
];
# Broken with gobject-introspection setup hook
# https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
format = "other";
postPatch = ''
patchShebangs build-aux/meson/postinstall.py
'';
meta = with lib; {
homepage = "https://github.com/rafaelmardojai/blanket";
description = "Listen to different sounds";
maintainers = with maintainers; [ onny ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -36,6 +36,18 @@ in py.buildPythonApplication rec {
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
postInstall = ''
substituteInPlace $out/share/applications/friture.desktop --replace usr/bin/friture friture
for size in 16 32 128 256 512
do
mkdir -p $out/share/icons/hicolor/$size\x$size
cp $src/resources/images/friture.iconset/icon_$size\x$size.png $out/share/icons/hicolor/$size\x$size/friture.png
done
mkdir -p $out/share/icons/hicolor/scalable/apps/
cp $src/resources/images-src/window-icon.svg $out/share/icons/hicolor/scalable/apps/friture.svg
'';
meta = with lib; {
description = "A real-time audio analyzer";
homepage = "https://friture.org/";

View file

@ -37,5 +37,7 @@ lib.makeScope newScope (self: with self; {
mopidy-youtube = callPackage ./youtube.nix { };
mopidy-ytmusic = callPackage ./ytmusic.nix { };
mopidy-subidy = callPackage ./subidy.nix { };
})

View file

@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
pname = "Mopidy-MPD";
version = "3.0.0";
version = "3.2.0";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "0prjli4352521igcsfcgmk97jmzgbfy4ik8hnli37wgvv252wiac";
sha256 = "sha256-oZvKr61lyu7CmXP2A/xtYng1FIUPyveVJMqUuv6UnaM=";
};
propagatedBuildInputs = [mopidy];

View file

@ -2,12 +2,12 @@
python3Packages.buildPythonApplication rec {
pname = "mopidy-mpris";
version = "3.0.2";
version = "3.0.3";
src = python3Packages.fetchPypi {
inherit version;
pname = "Mopidy-MPRIS";
sha256 = "0mmdaikw00f43gzjdbvlcvzff6yppm7v8mv012r79adzd992q9y0";
sha256 = "sha256-rHQgNIyludTEL7RDC8dIpyGTMOt1Tazn6i/orKlSP4U=";
};
propagatedBuildInputs = [

View file

@ -0,0 +1,26 @@
{ lib, python3Packages, mopidy }:
python3Packages.buildPythonApplication rec {
pname = "mopidy-ytmusic";
version = "0.3.2";
src = python3Packages.fetchPypi {
inherit version;
pname = "Mopidy-YTMusic";
sha256 = "sha256-BZtW+qHsTnOMj+jdAFI8ZMwGxJc9lNosgPJZGbt4JgU=";
};
propagatedBuildInputs = [
mopidy
python3Packages.ytmusicapi
python3Packages.pytube
];
doCheck = false;
meta = with lib; {
description = "Mopidy extension for playing music from YouTube Music";
license = licenses.asl20;
maintainers = [ maintainers.nickhu ];
};
}

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "NoiseTorch";
version = "0.11.3";
version = "0.11.4";
src = fetchFromGitHub {
owner = "lawl";
repo = "NoiseTorch";
rev = version;
sha256 = "0rjs6hbi7dvd179lzjmvqy4rv4pbc9amgzb8jfky4yc0zh8xf5z5";
sha256 = "sha256-3+Yk7dqD7eyvd1I5CMmrg085ZtFxD2EnGqL5ttwx8eM=";
};
vendorSha256 = null;

View file

@ -13,12 +13,12 @@
stdenv.mkDerivation rec {
pname = "sc68";
version = "unstable-2020-05-18";
version = "unstable-2021-08-23";
src = fetchsvn {
url = "svn://svn.code.sf.net/p/sc68/code/";
rev = "693";
sha256 = "0liz5yjwiy41y160ag83zz9s5l8mk72fscxgvjv9g5qf4gwffnfa";
rev = "694";
sha256 = "1yycnr4ndzfhbmki41c30zskwyizpb9wb8sf0gxcprllmbq6a421";
};
preConfigure = "tools/svn-bootstrap.sh";

View file

@ -10,8 +10,9 @@
, rustPlatform
, pkg-config
, glib
, libadwaita
, libhandy
, gtk3
, gtk4
, openssl
, alsa-lib
, libpulseaudio
@ -20,19 +21,19 @@
stdenv.mkDerivation rec {
pname = "spot";
version = "0.1.14";
version = "0.2.0";
src = fetchFromGitHub {
owner = "xou816";
repo = "spot";
rev = version;
sha256 = "eHhbm1amTx3ngqsP32uDEdrhrBeurMftg5SToTQGX9o=";
sha256 = "16pri0in514xzy21bsijyvyyjwa0f6lg4zyizmdcmcdw4glrs11m";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
hash = "sha256-jY7pWoY9IJi5hHVRS1gQKb+Vmfc+wxHvoAwupOtXXQs=";
sha256 = "1fvnidxh4rnkzqg3qjk3zlkp2d41qdamm0bfavk8jrazw8sgih84";
};
nativeBuildInputs = [
@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
ninja
pkg-config
python3 # for meson postinstall script
gtk3 # for gtk-update-icon-cache
gtk4 # for gtk-update-icon-cache
glib # for glib-compile-schemas
desktop-file-utils
rustPlatform.rust.cargo
@ -52,7 +53,8 @@ stdenv.mkDerivation rec {
buildInputs = [
glib
gtk3
gtk4
libadwaita
libhandy
openssl
alsa-lib
@ -77,6 +79,6 @@ stdenv.mkDerivation rec {
description = "Native Spotify client for the GNOME desktop";
homepage = "https://github.com/xou816/spot";
license = licenses.mit;
maintainers = with maintainers; [ jtojnar ];
maintainers = with maintainers; [ jtojnar tomfitzhenry ];
};
}

View file

@ -35,11 +35,11 @@ let
in
stdenv.mkDerivation rec {
pname = "bisq-desktop";
version = "1.7.3";
version = "1.7.4";
src = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
sha256 = "1q250lj0ig6aqd1dfc335z8pjj7qa7l75kws6d78k3wchzmk7jrk";
sha256 = "1yhxq6pv8hc0pz8g993a9nng2srnmmajkqxf0lfvkypy13k9zdg4";
};
nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg gnutar zip xz ];

View file

@ -1,22 +1,24 @@
{ lib
, stdenv
, rustPlatform
, fetchFromGitHub
, llvmPackages
, rocksdb
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "electrs";
version = "0.8.12";
version = "0.9.0";
src = fetchFromGitHub {
owner = "romanz";
repo = pname;
rev = "v${version}";
sha256 = "0kd5zki9f1pnwscnvd921dw0lc45nfkwk23l33nzdjn005lmsw7v";
sha256 = "04dqbn2nfzllxfcn3v9vkfy2hn2syihijr575621r1pj65pcgf8y";
};
cargoSha256 = "1l8dwjwj21crxampzj5c0k98xnisgy3d9c3dkgf5vaybrcp04k85";
cargoSha256 = "0hl8q62lankrab8gq9vxmkn68drs0hw5pk0q6aiq8fxsb63dzsw0";
# needed for librocksdb-sys
nativeBuildInputs = [ llvmPackages.clang ];
@ -25,7 +27,8 @@ rustPlatform.buildRustPackage rec {
# link rocksdb dynamically
ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
ROCKSDB_LIB_DIR = "${rocksdb}/lib";
cargoBuildFlags = "--no-default-features";
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
meta = with lib; {
description = "An efficient re-implementation of Electrum Server in Rust";

View file

@ -1,4 +1,4 @@
{ lib, fetchurl, appimageTools, imagemagick }:
{ lib, fetchurl, appimageTools, imagemagick, systemd }:
let
pname = "ledger-live-desktop";
@ -13,9 +13,22 @@ let
appimageContents = appimageTools.extractType2 {
inherit name src;
};
in appimageTools.wrapType2 rec {
# Hotplug events from udevd are fired into the kernel, which then re-broadcasts them over a
# special socket, to every libudev client listening for hotplug when the kernel does that. It will
# try to preserve the uid of the sender but a non-root namespace (like the fhs-env) cant map root
# to a uid, for security reasons, so the uid of the sender becomes nobody and libudev actively
# rejects such messages. This patch disables that bit of security in libudev.
# See: https://github.com/NixOS/nixpkgs/issues/116361
systemdPatched = systemd.overrideAttrs ({ patches ? [ ], ... }: {
patches = patches ++ [ ./systemd.patch ];
});
in
appimageTools.wrapType2 rec {
inherit name src;
extraPkgs = pkgs: [ systemdPatched ];
extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname}
install -m 444 -D ${appimageContents}/ledger-live-desktop.desktop $out/share/applications/ledger-live-desktop.desktop

View file

@ -0,0 +1,14 @@
diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c
index fd5900704d..f9106fdbe5 100644
--- a/src/libsystemd/sd-device/device-monitor.c
+++ b/src/libsystemd/sd-device/device-monitor.c
@@ -445,9 +445,6 @@ int device_monitor_receive_device(sd_device_monitor *m, sd_device **ret) {
"sd-device-monitor: No sender credentials received, message ignored.");
cred = (struct ucred*) CMSG_DATA(cmsg);
- if (cred->uid != 0)
- return log_debug_errno(SYNTHETIC_ERRNO(EAGAIN),
- "sd-device-monitor: Sender uid="UID_FMT", message ignored.", cred->uid);
if (streq(buf.raw, "libudev")) {
/* udev message needs proper version magic */

View file

@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "polkadot";
version = "0.9.9-1";
version = "0.9.10";
src = fetchFromGitHub {
owner = "paritytech";
repo = "polkadot";
rev = "v${version}";
sha256 = "sha256-EmnrwBMHb9jpEZAG393yyMaFRRQJ6YYDRvsp+ATT7MY=";
sha256 = "1iBA7R63g0UOuCmnFONc9j/7jfcHA54jJ327AL/aPIE=";
};
cargoHash = "sha256-WzsaUrqe7F4x+ShqG14kq78MTSWIxIMRa3pdr3RXrwk=";
cargoSha256 = "1ysbyv323qmpswbnd2lvisrwnk30l4zvcidh866nrk6b6jqjag42";
nativeBuildInputs = [ clang ];

View file

@ -1,24 +1,24 @@
{ rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
, cargo, pkg-config, curl, coreutils, boost174, db62, hexdump, libsodium
, cargo, pkg-config, curl, coreutils, boost175, db62, hexdump, libsodium
, libevent, utf8cpp, util-linux, withDaemon ? true, withMining ? true
, withUtils ? true, withWallet ? true, withZmq ? true, zeromq
}:
rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
pname = "zcash";
version = "4.4.1";
version = "4.5.0";
src = fetchFromGitHub {
owner = "zcash";
repo = "zcash";
rev = "v${version}";
sha256 = "0nhrjizx518khrl8aygag6a1ianzzqpchasggi963f807kv7ipb7";
sha256 = "0zn6ms2c4mh64cckjg88v0byy2ck116z5g4y82hh34mz3r11d9mn";
};
cargoSha256 = "101j8cn2lg3l1gn53yg3svzwx783z331g9kzn9ici4azindyx903";
cargoSha256 = "16il7napj7ryxsap6icvdpvagm9mvgz2mpshny9wn56y60qaymd0";
nativeBuildInputs = [ autoreconfHook cargo hexdump makeWrapper pkg-config ];
buildInputs = [ boost174 libevent libsodium utf8cpp ]
buildInputs = [ boost175 libevent libsodium utf8cpp ]
++ lib.optional withWallet db62
++ lib.optional withZmq zeromq;
@ -37,7 +37,7 @@ rustPlatform.buildRustPackage.override { stdenv = stdenv; } rec {
configureFlags = [
"--disable-tests"
"--with-boost-libdir=${lib.getLib boost174}/lib"
"--with-boost-libdir=${lib.getLib boost175}/lib"
"CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
"RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
] ++ lib.optional (!withWallet) "--disable-wallet"

View file

@ -711,10 +711,10 @@
elpaBuild {
pname = "crdt";
ename = "crdt";
version = "0.1.4";
version = "0.2.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/crdt-0.1.4.tar";
sha256 = "1qqfjvkajwhdhz0jhqixdn68l1rl02pn2fmxizzsv0as20v0ay0r";
url = "https://elpa.gnu.org/packages/crdt-0.2.5.tar";
sha256 = "092f82kq78c9gih6xri4n3ma5ixw9c8mx12i00c174g0v041r6sp";
};
packageRequires = [];
meta = {
@ -756,10 +756,10 @@
elpaBuild {
pname = "csv-mode";
ename = "csv-mode";
version = "1.15";
version = "1.16";
src = fetchurl {
url = "https://elpa.gnu.org/packages/csv-mode-1.15.tar";
sha256 = "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx";
url = "https://elpa.gnu.org/packages/csv-mode-1.16.tar";
sha256 = "1i43b2p31xhrf97xbdi35y550ysp69fasa5gcrhg6iyxw176807p";
};
packageRequires = [ cl-lib emacs ];
meta = {
@ -831,10 +831,10 @@
elpaBuild {
pname = "debbugs";
ename = "debbugs";
version = "0.28";
version = "0.29";
src = fetchurl {
url = "https://elpa.gnu.org/packages/debbugs-0.28.tar";
sha256 = "1qks38hpg3drhxzw66n5yxfq0v6fj9ya7d9dc6x0xwfp6r2x0li0";
url = "https://elpa.gnu.org/packages/debbugs-0.29.tar";
sha256 = "1bn21d9dr9pb3vdak3v07x056xafym89kdpxavjf4avy6bry6s4d";
};
packageRequires = [ emacs soap-client ];
meta = {
@ -1022,6 +1022,21 @@
license = lib.licenses.free;
};
}) {};
easy-escape = callPackage ({ elpaBuild, fetchurl, lib }:
elpaBuild {
pname = "easy-escape";
ename = "easy-escape";
version = "0.2.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/easy-escape-0.2.1.tar";
sha256 = "19blpwka440y6r08hzzaz61gb24jr6a046pai2j1a3jg6x9fr3j5";
};
packageRequires = [];
meta = {
homepage = "https://elpa.gnu.org/packages/easy-escape.html";
license = lib.licenses.free;
};
}) {};
easy-kill = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "easy-kill";
@ -1101,10 +1116,10 @@
elpaBuild {
pname = "eev";
ename = "eev";
version = "20210822";
version = "20210925";
src = fetchurl {
url = "https://elpa.gnu.org/packages/eev-20210822.tar";
sha256 = "1682hl8s15snz9vq2r0q7jfpf81gbhlyxp55l2alsmxll4qq72wh";
url = "https://elpa.gnu.org/packages/eev-20210925.tar";
sha256 = "0kwmjspmvz9lfm6y0kls9v2l55ccni0gviv9jlzxiwynrc01rz4y";
};
packageRequires = [ emacs ];
meta = {
@ -1224,10 +1239,10 @@
elpaBuild {
pname = "emms";
ename = "emms";
version = "7.6";
version = "7.7";
src = fetchurl {
url = "https://elpa.gnu.org/packages/emms-7.6.tar";
sha256 = "03cp6mr0kxy41dg4ri5ymbzpkw7bd8zg7hx0a2rb4axiss5qmx7i";
url = "https://elpa.gnu.org/packages/emms-7.7.tar";
sha256 = "0n9nx4wgjxkr8nsxcq8svg0x0qkqj7bsd2j0ihy4jzj29xmyxl0h";
};
packageRequires = [ cl-lib nadvice seq ];
meta = {
@ -1405,16 +1420,16 @@
license = lib.licenses.free;
};
}) {};
flymake = callPackage ({ eldoc, elpaBuild, emacs, fetchurl, lib }:
flymake = callPackage ({ eldoc, elpaBuild, emacs, fetchurl, lib, project }:
elpaBuild {
pname = "flymake";
ename = "flymake";
version = "1.1.1";
version = "1.2.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/flymake-1.1.1.tar";
sha256 = "0lk2v34b59b24j3hsmi8d0v7fgpwcipv7ka9i88cdgjmjjmzgz5q";
url = "https://elpa.gnu.org/packages/flymake-1.2.1.tar";
sha256 = "1j4j1mxqvkpdccrm5khykmdpm8z9p0pxvnsw4cz9b76xzfdzy5pz";
};
packageRequires = [ eldoc emacs ];
packageRequires = [ eldoc emacs project ];
meta = {
homepage = "https://elpa.gnu.org/packages/flymake.html";
license = lib.licenses.free;
@ -1828,10 +1843,10 @@
elpaBuild {
pname = "ioccur";
ename = "ioccur";
version = "2.4";
version = "2.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ioccur-2.4.el";
sha256 = "1isid3kgsi5qkz27ipvmp9v5knx0qigmv7lz12mqdkwv8alns1p9";
url = "https://elpa.gnu.org/packages/ioccur-2.5.tar";
sha256 = "06a6djln2rry3qnb063yarji3p18hcpp5zrw7q43a45k7qaiaji8";
};
packageRequires = [ cl-lib emacs ];
meta = {
@ -1938,10 +1953,10 @@
elpaBuild {
pname = "ivy-posframe";
ename = "ivy-posframe";
version = "0.6.1";
version = "0.6.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ivy-posframe-0.6.1.tar";
sha256 = "1nay2sfbwm2fkp3f1y89innd9h6j3q70q9y4yddrwa69cxlj9m23";
url = "https://elpa.gnu.org/packages/ivy-posframe-0.6.2.tar";
sha256 = "1x6pm0pry2j7yazhxvq1gydbymwll9yg85m8qi4sh8s0pnm0vjzk";
};
packageRequires = [ emacs ivy posframe ];
meta = {
@ -2208,10 +2223,10 @@
elpaBuild {
pname = "map";
ename = "map";
version = "3.1";
version = "3.2.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/map-3.1.tar";
sha256 = "1akkp34psm71ylbf1i02m56ga1dkswhz069j98amixrhw20hq4nx";
url = "https://elpa.gnu.org/packages/map-3.2.1.tar";
sha256 = "1vy231m2fm5cgz5nib14ib7ifprajhnbmzf6x4id48h2491m1n24";
};
packageRequires = [ emacs ];
meta = {
@ -2855,10 +2870,10 @@
elpaBuild {
pname = "phps-mode";
ename = "phps-mode";
version = "0.4.6";
version = "0.4.7";
src = fetchurl {
url = "https://elpa.gnu.org/packages/phps-mode-0.4.6.tar";
sha256 = "0mfwyz9rwnrs0xcd1jmq1ngdhbwygm6hbfhyr14djywxx0b4hpm5";
url = "https://elpa.gnu.org/packages/phps-mode-0.4.7.tar";
sha256 = "0y5milfjf45bi7gj7brl2lhyla8nsj3dc1a4nfq1wx3zw8arlc50";
};
packageRequires = [ emacs ];
meta = {
@ -2915,10 +2930,10 @@
elpaBuild {
pname = "project";
ename = "project";
version = "0.6.1";
version = "0.7.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/project-0.6.1.tar";
sha256 = "174fli3swbn67qcs9isv70vwrf6r41mak6dbs98gia89rlb71c8v";
url = "https://elpa.gnu.org/packages/project-0.7.1.tar";
sha256 = "1ip8s924n50mmh068p42zi0ylvv79a2pi9sji1c2pqj2q19d7jr6";
};
packageRequires = [ emacs xref ];
meta = {
@ -3411,10 +3426,10 @@
elpaBuild {
pname = "seq";
ename = "seq";
version = "2.22";
version = "2.23";
src = fetchurl {
url = "https://elpa.gnu.org/packages/seq-2.22.tar";
sha256 = "0zlqcbabzj8crg36ird2l74dbg5k7w1zf5iwva0h2dyvwyf9grma";
url = "https://elpa.gnu.org/packages/seq-2.23.tar";
sha256 = "1lbxnrzq88z8k9dyylg2636pg9vc8bzfprs1hxwp9ah0zkvsn52p";
};
packageRequires = [];
meta = {
@ -3426,10 +3441,10 @@
elpaBuild {
pname = "setup";
ename = "setup";
version = "1.0.0";
version = "1.0.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/setup-1.0.0.tar";
sha256 = "05k65r5mgkpbj6f84qscgq4gjbj4wyn7c60b9xjvadw9b55yvfxk";
url = "https://elpa.gnu.org/packages/setup-1.0.1.tar";
sha256 = "1n390hiv5a8ij584r24cpbahj2sb12wjh0l3kzhccdxnxskrzgmh";
};
packageRequires = [ emacs ];
meta = {
@ -3576,10 +3591,10 @@
elpaBuild {
pname = "so-long";
ename = "so-long";
version = "1.1.1";
version = "1.1.2";
src = fetchurl {
url = "https://elpa.gnu.org/packages/so-long-1.1.1.tar";
sha256 = "0qgdnkb702mkm886v0zv0hnm5y7zlifgx9ji6xmdsxycpsfkjz1f";
url = "https://elpa.gnu.org/packages/so-long-1.1.2.tar";
sha256 = "053msvy2pyispwg4zzpaczfkl6rvnwfklm4jdsbjhqm0kx4vlcs9";
};
packageRequires = [ emacs ];
meta = {
@ -3786,10 +3801,10 @@
elpaBuild {
pname = "taxy";
ename = "taxy";
version = "0.4";
version = "0.8";
src = fetchurl {
url = "https://elpa.gnu.org/packages/taxy-0.4.tar";
sha256 = "1iy1761v2q0i020x8ch4z3vljx2v62pcy5bifxq8gw5qx0115576";
url = "https://elpa.gnu.org/packages/taxy-0.8.tar";
sha256 = "00pc6lh35gj8vzcsn17fyazb9jsc4m6nr7cvb32w02isadv8qd3m";
};
packageRequires = [ emacs ];
meta = {
@ -4050,6 +4065,21 @@
license = lib.licenses.free;
};
}) {};
vc-got = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "vc-got";
ename = "vc-got";
version = "1.0";
src = fetchurl {
url = "https://elpa.gnu.org/packages/vc-got-1.0.tar";
sha256 = "1lx52g261zr52gy63vjll8mvczcbdzbsx3wa47qdajrq9bwmj99j";
};
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/vc-got.html";
license = lib.licenses.free;
};
}) {};
vc-hgcmd = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "vc-hgcmd";
@ -4116,10 +4146,10 @@
elpaBuild {
pname = "verilog-mode";
ename = "verilog-mode";
version = "2021.4.12.188864585";
version = "2021.9.23.89128420";
src = fetchurl {
url = "https://elpa.gnu.org/packages/verilog-mode-2021.4.12.188864585.tar";
sha256 = "0np2q0jhf1fbb1nl5nx1q9hw40yg62bhlddp2raqryxbkvsh0nbv";
url = "https://elpa.gnu.org/packages/verilog-mode-2021.9.23.89128420.tar";
sha256 = "1sgmkmif44npghz4nnag1w91qrrylq36175cjj87lcdp22s6isgk";
};
packageRequires = [];
meta = {

View file

@ -45,16 +45,16 @@
license = lib.licenses.free;
};
}) {};
caml = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
caml = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "caml";
ename = "caml";
version = "4.8";
version = "4.9";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/caml-4.8.tar";
sha256 = "02wzjdd1ig8ajy65rf87zaysfddjbhyswifwlcs52ly7p84q72wk";
url = "https://elpa.nongnu.org/nongnu/caml-4.9.tar";
sha256 = "00ldvz6r10vwwmk6f3az534p0340ywn7knsg2bmvbvh3q51vyl9i";
};
packageRequires = [ cl-lib emacs ];
packageRequires = [ emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/caml.html";
license = lib.licenses.free;
@ -841,10 +841,10 @@
elpaBuild {
pname = "swift-mode";
ename = "swift-mode";
version = "8.3.0";
version = "8.4.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/swift-mode-8.3.0.tar";
sha256 = "1bsyv0dl7c2m3f690g7fij7g4937skxjin456vfrgbzb219pdkcs";
url = "https://elpa.nongnu.org/nongnu/swift-mode-8.4.0.tar";
sha256 = "1pfp1nvq2gny6kbiq3q0dcms0ysw43zq0aayfwqdj0llkf025dfp";
};
packageRequires = [ emacs seq ];
meta = {
@ -946,10 +946,10 @@
elpaBuild {
pname = "yasnippet-snippets";
ename = "yasnippet-snippets";
version = "0.2";
version = "1.0";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu/yasnippet-snippets-0.2.tar";
sha256 = "1xhlx2n2sdpcc82cba9r7nbd0gwi7m821p7vk0vnw84dhwy863ic";
url = "https://elpa.nongnu.org/nongnu/yasnippet-snippets-1.0.tar";
sha256 = "0p2a10wfh1dvmxbjlbj6p241xaldjim2h8vrv9aghvm3ryfixcpb";
};
packageRequires = [ yasnippet ];
meta = {

View file

@ -4,10 +4,10 @@
elpaBuild {
pname = "org";
ename = "org";
version = "20210906";
version = "20210920";
src = fetchurl {
url = "https://orgmode.org/elpa/org-20210906.tar";
sha256 = "04aqniwix4w0iap38dsdskndknhw9k6apkmkrc79yfs3c4jcsszq";
url = "https://orgmode.org/elpa/org-20210920.tar";
sha256 = "01b44npf0rxq7c4ddygc3n3cv3h7afs41az0nfs67a5x7ag6c1jj";
};
packageRequires = [];
meta = {
@ -19,10 +19,10 @@
elpaBuild {
pname = "org-plus-contrib";
ename = "org-plus-contrib";
version = "20210906";
version = "20210920";
src = fetchurl {
url = "https://orgmode.org/elpa/org-plus-contrib-20210906.tar";
sha256 = "1v0yy92x8shwp36qfyzmvk8ayz9amkdis967gqacq5jxcyq7mhbn";
url = "https://orgmode.org/elpa/org-plus-contrib-20210920.tar";
sha256 = "1m376fnm8hrm83hgx4b0y21lzdrbxjp83bv45plvrjky44qfdwfn";
};
packageRequires = [];
meta = {

View file

@ -32,7 +32,6 @@ in stdenv.mkDerivation rec {
git
gnused
nix
nixfmt
]
}
oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"' | sed 's|\\.|-|g')"
@ -42,7 +41,6 @@ in stdenv.mkDerivation rec {
default_nix="$nixpkgs/pkgs/applications/editors/nano/nanorc/default.nix"
newTag=$(echo $latestTag | sed 's|\.|-|g')
update-source-version ${pname} "$newTag" --version-key=version --print-changes
nixfmt "$default_nix"
else
echo "${pname} is already up-to-date"
fi

View file

@ -86,5 +86,9 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
# sse3 is not supported on aarch64
badPlatforms = [ "aarch64-linux" ];
# added 2021-09-30
# upstream seems pretty dead
#/build/source/src/operations/denoise.cc:30:10: fatal error: vips/cimg_funcs.h: No such file or directory
broken = true;
};
}

View file

@ -16,13 +16,13 @@
mkDerivation rec {
pname = "qimgv";
version = "0.9.1";
version = "1.0.1";
src = fetchFromGitHub {
owner = "easymodo";
repo = pname;
rev = "v${version}";
sha256 = "0b2hddps969gjim2r9a22zaxmnzp600av2zz6icq66ksfrx1rpac";
sha256 = "1wybpmqvj7vj7cl6r4gif7mkrcdr6zpb939mmz46xsil5vb4pirh";
};
nativeBuildInputs = [

View file

@ -2,7 +2,7 @@
let
pname = "chrysalis";
version = "0.8.4";
version = "0.8.5";
in appimageTools.wrapAppImage rec {
name = "${pname}-${version}-binary";
@ -10,7 +10,7 @@ in appimageTools.wrapAppImage rec {
inherit name;
src = fetchurl {
url = "https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
sha256 = "b41f3e23dac855b1588cff141e3d317f96baff929a0543c79fccee0c6f095bc7";
sha256 = "1vgymc99nci8rdq8hd7i98x77x45jnpcmhgb8v7fzsz3br6raxcm";
};
};

View file

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "dasel";
version = "1.20.0";
version = "1.21.1";
src = fetchFromGitHub {
owner = "TomWright";
repo = pname;
rev = "v${version}";
sha256 = "sha256-SJWIjizPf0bRwanpnLpuqsWKjaCwc1wBV2sCPSqGiOs=";
sha256 = "sha256-M63KFQ+g4b0HiWlv1Kym0ulqZcCMdfU9SoLhpaI4q/o=";
};
vendorSha256 = "sha256-u3KsMi63wOi1fCSLpGxATZNmbhoIAGeVpwcKh+nmi3k=";
vendorSha256 = "sha256-yP4iF3403WWgWAmBHiuOpDsIAUx4+KR8uKPfjy3qXt8=";
ldflags = [
"-s" "-w" "-X github.com/tomwright/dasel/internal.Version=${version}"

View file

@ -0,0 +1,24 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "limesctl";
version = "2.0.0";
src = fetchFromGitHub {
owner = "sapcc";
repo = pname;
rev = "v${version}";
sha256 = "sha256-fhmGVgJ/4xnf6pe8aXxx1KEmLInxm54my+qgSU4Vc/k=";
};
vendorSha256 = "sha256-9MlymY5gM9/K2+7/yTa3WaSIfDJ4gRf33vSCwdIpNqw=";
subPackages = [ "." ];
meta = with lib; {
description = "CLI for Limes";
homepage = "https://github.com/sapcc/limesctl";
license = licenses.asl20;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -20,13 +20,13 @@ assert withNerdIcons -> withIcons == false;
stdenv.mkDerivation rec {
pname = "nnn";
version = "4.2";
version = "4.3";
src = fetchFromGitHub {
owner = "jarun";
repo = pname;
rev = "v${version}";
sha256 = "sha256-ICUF/LJhsbzDz9xZig1VE6TdG3u0C6Jf/61RoAjx3KI=";
sha256 = "sha256-kiLmdEyOnD1wPS2GuFF5nTK9tgUOI6PVCzCRZXdObEo=";
};
configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);

View file

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
install -D psi-notify $out/bin/psi-notify
substituteInPlace psi-notify.service --replace psi-notify $out/bin/psi-notify
install -D psi-notify.service $out/share/systemd/user/psi-notify.service
install -D psi-notify.service $out/lib/systemd/user/psi-notify.service
runHook postInstall
'';

View file

@ -1,4 +1,15 @@
{ lib, stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices, installShellFiles }:
{ lib
, stdenv
, fetchFromGitHub
, rustPlatform
, cmake
, pkg-config
, openssl
, oniguruma
, CoreServices
, installShellFiles
, libsass
}:
rustPlatform.buildRustPackage rec {
pname = "zola";
@ -13,9 +24,18 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "1hg8j9a8c6c3ap24jd96y07rlp4f0s2mkyx5034nlnkm3lj4q42n";
nativeBuildInputs = [ cmake pkg-config installShellFiles];
buildInputs = [ openssl oniguruma ]
++ lib.optional stdenv.isDarwin CoreServices;
nativeBuildInputs = [
cmake
pkg-config
installShellFiles
];
buildInputs = [
openssl
oniguruma
libsass
] ++ lib.optionals stdenv.isDarwin [
CoreServices
];
RUSTONIG_SYSTEM_LIBONIG = true;

View file

@ -92,11 +92,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
version = "1.29.77";
version = "1.30.86";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "LJykdig44ACpvlaGogbwrbY9hCJT3CB4ZKDZ/IzaBOU=";
sha256 = "0pg29i01dm5gqfd3aagsc83dbx0n3051wfxi0r1c9l93dwm5bmq9";
};
dontConfigure = true;
@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
ln -sf $BINARYWRAPPER $out/bin/brave
for exe in $out/opt/brave.com/brave/{brave,crashpad_handler}; do
for exe in $out/opt/brave.com/brave/{brave,chrome_crashpad_handler}; do
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" $exe

View file

@ -18,9 +18,9 @@
}
},
"beta": {
"version": "95.0.4638.17",
"sha256": "1v5r8m3wlwh6prcj7bd4zprsr4g43869lhxv43m207c5nlnqiriz",
"sha256bin64": "0h88gd8y4i2jmvhiwadbq6hzqygddym8jy1fhzp8qnwfhc30qm4m",
"version": "95.0.4638.32",
"sha256": "1w904axixagn6gqcb90849q3qy0k3c6lgl0c97cb6m78l9xrrnbr",
"sha256bin64": "1z7xx608sh8agdl98r7xk7s43d3qnfpd1jvgbl7l8fqd85ns11i0",
"deps": {
"gn": {
"version": "2021-08-11",
@ -31,15 +31,15 @@
}
},
"dev": {
"version": "96.0.4651.0",
"sha256": "0da1mhz3cy0k2igdh208i28k8fxca0yjfypvmj7624p7igrp4an6",
"sha256bin64": "1gslpdnpjp7w40lsl748rmbkbs31v22f2x45gahrijkvfrkgdqp9",
"version": "96.0.4655.0",
"sha256": "00gax7xqi1n4jiqwpff43c43mpqb5jakckwdfbgwhrp6h35xxdv1",
"sha256bin64": "1xyyz6p4qllzyd6wbdbhs6kp062dz40i03wrlsggb919bgp7ivnw",
"deps": {
"gn": {
"version": "2021-08-11",
"version": "2021-09-13",
"url": "https://gn.googlesource.com/gn",
"rev": "69ec4fca1fa69ddadae13f9e6b7507efa0675263",
"sha256": "031znmkbm504iim5jvg3gmazj4qnkfc7zg8aymjsij18fhf7piz0"
"rev": "de86ec4176235871a7cb335756987e41246dae4a",
"sha256": "0mlnsqcj06azz5cpwlafi5gg6pvf2s6x9qq02zl1sm2h288y152g"
}
}
},

View file

@ -196,11 +196,9 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Mozilla Firefox, free web browser (binary package)";
homepage = "http://www.mozilla.org/firefox/";
license = {
free = false;
url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
};
license = licenses.mpl20;
platforms = builtins.attrNames mozillaPlatforms;
hydraPlatforms = [];
maintainers = with maintainers; [ taku0 lovesegfault ];
};
}

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "helmsman";
version = "3.7.3";
version = "3.7.5";
src = fetchFromGitHub {
owner = "Praqma";
repo = "helmsman";
rev = "v${version}";
sha256 = "sha256-7WN4YjhPbsFZfoFuZzsN85a+kdEVlEzQ9CfWh4nxxTs=";
sha256 = "sha256-QJXCVcEf23oaTDemoCV/2aaajbubfXg0AfZrlSTS4Ag=";
};
vendorSha256 = "sha256-XHgdVFGIzbPPYgv/T4TtvDDbKAe3niev4S5tu/nwSqg=";
vendorSha256 = "sha256-4imZrZfpR/5tw9ZFSTr7Gx4G9O1iHNE9YRYMOJFKvHU=";
doCheck = false;

View file

@ -1,14 +1,14 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.6-k3s1" }:
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.21.3-k3s1" }:
buildGoModule rec {
pname = "kube3d";
version = "4.4.7";
version = "4.4.8";
src = fetchFromGitHub {
owner = "rancher";
repo = "k3d";
rev = "v${version}";
sha256 = "sha256-S1vHmXUCP1ayPo3vvHAbNCqNm1ueJ0jE4NUBvg5P3MU=";
sha256 = "sha256-PdbAkiua9AdcNDCpu4UILsmAz0nb4nLjahYomGSHqnc=";
};
vendorSha256 = null;
@ -17,10 +17,9 @@ buildGoModule rec {
excludedPackages = "\\(tools\\|docgen\\)";
ldflags = let t = "github.com/rancher/k3d/v4/version"; in
[
"-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}"
];
ldflags =
let t = "github.com/rancher/k3d/v4/version"; in
[ "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}" ];
doCheck = false;

View file

@ -1,6 +1,6 @@
{ lib, buildGoPackage, fetchFromGitHub, ... }:
let version = "0.20.0"; in
let version = "0.21.0"; in
buildGoPackage {
pname = "kubecfg";
@ -10,7 +10,7 @@ buildGoPackage {
owner = "bitnami";
repo = "kubecfg";
rev = "v${version}";
sha256 = "sha256-7lBIqaozVBoiYYOTqAxq9h2N+Y3JFwLaunCykILOmPU=";
sha256 = "sha256-Wu7+Xmb7ha3OG37DzLg2+/Sr9hB5oD3OIkC9h9Fa4QA=";
};
goPackagePath = "github.com/bitnami/kubecfg";

View file

@ -11,9 +11,9 @@
buildGoModule rec {
pname = "minikube";
version = "1.23.0";
version = "1.23.2";
vendorSha256 = "sha256-KhUmyQn97rXX49EFqUrR7UEm0J5gIdogUJMVW1Wjrdw=";
vendorSha256 = "sha256-Q6DadAmx/8TM+MrdaKgAjn0sVrKqTYoWdsmnN77yfKA=";
doCheck = false;
@ -21,7 +21,7 @@ buildGoModule rec {
owner = "kubernetes";
repo = "minikube";
rev = "v${version}";
sha256 = "sha256-Cf77qaAsavkSpSoBJz3kcPzL2SL7X9O9lCTYcm1tFFQ=";
sha256 = "sha256-PIgzGikVIno2Gd+kSjF4kLHuUKgPrPHoIJxAGblI8RQ=";
};
nativeBuildInputs = [ installShellFiles pkg-config which ];

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "multus-cni";
version = "3.7.2";
version = "3.8";
src = fetchFromGitHub {
owner = "k8snetworkplumbingwg";
repo = pname;
rev = "v${version}";
sha256 = "sha256-eVYRbMijOEa+DNCm4w/+WVrTI9607NF9/l5YKkXJuFs=";
sha256 = "sha256-wG6SRts3+bmeMkfScyNorsBvRl/hxe+CUnL0rwfknpc=";
};
ldflags = let

View file

@ -195,8 +195,8 @@ rec {
};
terraform_1_0 = mkTerraform {
version = "1.0.7";
sha256 = "115gb4mqz7lzyb80psbfy10k4h09fbvb1l8iz7kg63ajx69fnasy";
version = "1.0.8";
sha256 = "1755m3h9iz086znjpkhxjbyl3jaxpsqmk73infn9wbhql8pq2wil";
vendorSha256 = "00cl42w1mzsi9qd09wydfvp5f2h7lxaay6s2dv0mf47k6h7prf42";
patches = [ ./provider-path-0_15.patch ];
passthru = { inherit plugins; };

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "terragrunt";
version = "0.32.2";
version = "0.33.0";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "v${version}";
sha256 = "sha256-1s6/Xn/NsClG7YvRyzpvzMy8HmDITNCQUJxHaA84470=";
sha256 = "sha256-FvgB0jG6PEvhrT9Au/Uv9XSgKx+zNw8zETpg2dJ6QX4=";
};
vendorSha256 = "sha256-y84EFmoJS4SeA5YFIVFU0iWa5NnjU5yvOj7OFE+jGN0=";

View file

@ -2,7 +2,7 @@
"name": "element-desktop",
"productName": "Element",
"main": "lib/electron-main.js",
"version": "1.8.5",
"version": "1.9.0",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {
@ -57,7 +57,7 @@
"allchange": "^1.0.2",
"asar": "^2.0.1",
"chokidar": "^3.5.2",
"electron": "^13.1.9",
"electron": "13",
"electron-builder": "22.11.4",
"electron-builder-squirrel-windows": "22.11.4",
"electron-devtools-installer": "^3.1.1",
@ -83,7 +83,7 @@
},
"build": {
"appId": "im.riot.app",
"electronVersion": "13.2.2",
"electronVersion": "13.4.0",
"files": [
"package.json",
{

View file

@ -42,43 +42,43 @@
};
}
{
name = "_babel_generator___generator_7.15.0.tgz";
name = "_babel_generator___generator_7.15.4.tgz";
path = fetchurl {
name = "_babel_generator___generator_7.15.0.tgz";
url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz";
sha1 = "a7d0c172e0d814974bad5aa77ace543b97917f15";
name = "_babel_generator___generator_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz";
sha1 = "85acb159a267ca6324f9793986991ee2022a05b0";
};
}
{
name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
name = "_babel_helper_function_name___helper_function_name_7.15.4.tgz";
path = fetchurl {
name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz";
sha1 = "89e2c474972f15d8e233b52ee8c480e2cfcd50c4";
name = "_babel_helper_function_name___helper_function_name_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz";
sha1 = "845744dafc4381a4a5fb6afa6c3d36f98a787ebc";
};
}
{
name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
name = "_babel_helper_get_function_arity___helper_get_function_arity_7.15.4.tgz";
path = fetchurl {
name = "_babel_helper_get_function_arity___helper_get_function_arity_7.14.5.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz";
sha1 = "25fbfa579b0937eee1f3b805ece4ce398c431815";
name = "_babel_helper_get_function_arity___helper_get_function_arity_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz";
sha1 = "098818934a137fce78b536a3e015864be1e2879b";
};
}
{
name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
name = "_babel_helper_hoist_variables___helper_hoist_variables_7.15.4.tgz";
path = fetchurl {
name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz";
sha1 = "e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d";
name = "_babel_helper_hoist_variables___helper_hoist_variables_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz";
sha1 = "09993a3259c0e918f99d104261dfdfc033f178df";
};
}
{
name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.15.4.tgz";
path = fetchurl {
name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.14.5.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz";
sha1 = "22b23a54ef51c2b7605d851930c1976dd0bc693a";
name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz";
sha1 = "aecab92dcdbef6a10aa3b62ab204b085f776e257";
};
}
{
@ -98,43 +98,43 @@
};
}
{
name = "_babel_parser___parser_7.15.3.tgz";
name = "_babel_parser___parser_7.15.6.tgz";
path = fetchurl {
name = "_babel_parser___parser_7.15.3.tgz";
url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz";
sha1 = "3416d9bea748052cfcb63dbcc27368105b1ed862";
name = "_babel_parser___parser_7.15.6.tgz";
url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz";
sha1 = "043b9aa3c303c0722e5377fef9197f4cf1796549";
};
}
{
name = "_babel_runtime___runtime_7.15.3.tgz";
name = "_babel_runtime___runtime_7.15.4.tgz";
path = fetchurl {
name = "_babel_runtime___runtime_7.15.3.tgz";
url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz";
sha1 = "2e1c2880ca118e5b2f9988322bd8a7656a32502b";
name = "_babel_runtime___runtime_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz";
sha1 = "fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a";
};
}
{
name = "_babel_template___template_7.14.5.tgz";
name = "_babel_template___template_7.15.4.tgz";
path = fetchurl {
name = "_babel_template___template_7.14.5.tgz";
url = "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz";
sha1 = "a9bc9d8b33354ff6e55a9c60d1109200a68974f4";
name = "_babel_template___template_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz";
sha1 = "51898d35dcf3faa670c4ee6afcfd517ee139f194";
};
}
{
name = "_babel_traverse___traverse_7.15.0.tgz";
name = "_babel_traverse___traverse_7.15.4.tgz";
path = fetchurl {
name = "_babel_traverse___traverse_7.15.0.tgz";
url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz";
sha1 = "4cca838fd1b2a03283c1f38e141f639d60b3fc98";
name = "_babel_traverse___traverse_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz";
sha1 = "ff8510367a144bfbff552d9e18e28f3e2889c22d";
};
}
{
name = "_babel_types___types_7.15.0.tgz";
name = "_babel_types___types_7.15.6.tgz";
path = fetchurl {
name = "_babel_types___types_7.15.0.tgz";
url = "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz";
sha1 = "61af11f2286c4e9c69ca8deb5f4375a73c72dcbd";
name = "_babel_types___types_7.15.6.tgz";
url = "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz";
sha1 = "99abdc48218b2881c058dd0a7ab05b99c9be758f";
};
}
{
@ -169,6 +169,14 @@
sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
};
}
{
name = "_gar_promisify___promisify_1.1.2.tgz";
path = fetchurl {
name = "_gar_promisify___promisify_1.1.2.tgz";
url = "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz";
sha1 = "30aa825f11d438671d585bd44e7fd564535fc210";
};
}
{
name = "_jimp_bmp___bmp_0.16.1.tgz";
path = fetchurl {
@ -457,6 +465,14 @@
sha1 = "e95737e8bb6746ddedf69c556953494f196fe69a";
};
}
{
name = "_npmcli_fs___fs_1.0.0.tgz";
path = fetchurl {
name = "_npmcli_fs___fs_1.0.0.tgz";
url = "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz";
sha1 = "589612cfad3a6ea0feafcb901d29c63fd52db09f";
};
}
{
name = "_npmcli_git___git_2.1.0.tgz";
path = fetchurl {
@ -530,27 +546,27 @@
};
}
{
name = "_octokit_graphql___graphql_4.6.4.tgz";
name = "_octokit_graphql___graphql_4.8.0.tgz";
path = fetchurl {
name = "_octokit_graphql___graphql_4.6.4.tgz";
url = "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.4.tgz";
sha1 = "0c3f5bed440822182e972317122acb65d311a5ed";
name = "_octokit_graphql___graphql_4.8.0.tgz";
url = "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz";
sha1 = "664d9b11c0e12112cbf78e10f49a05959aa22cc3";
};
}
{
name = "_octokit_openapi_types___openapi_types_9.7.0.tgz";
name = "_octokit_openapi_types___openapi_types_10.2.2.tgz";
path = fetchurl {
name = "_octokit_openapi_types___openapi_types_9.7.0.tgz";
url = "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-9.7.0.tgz";
sha1 = "9897cdefd629cd88af67b8dbe2e5fb19c63426b2";
name = "_octokit_openapi_types___openapi_types_10.2.2.tgz";
url = "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-10.2.2.tgz";
sha1 = "6c1c839d7d169feabaf1d2a69c79439c75d979cd";
};
}
{
name = "_octokit_plugin_paginate_rest___plugin_paginate_rest_2.15.1.tgz";
name = "_octokit_plugin_paginate_rest___plugin_paginate_rest_2.16.3.tgz";
path = fetchurl {
name = "_octokit_plugin_paginate_rest___plugin_paginate_rest_2.15.1.tgz";
url = "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.15.1.tgz";
sha1 = "264189dd3ce881c6c33758824aac05a4002e056a";
name = "_octokit_plugin_paginate_rest___plugin_paginate_rest_2.16.3.tgz";
url = "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.3.tgz";
sha1 = "6dbf74a12a53e04da6ca731d4c93f20c0b5c6fe9";
};
}
{
@ -562,11 +578,11 @@
};
}
{
name = "_octokit_plugin_rest_endpoint_methods___plugin_rest_endpoint_methods_5.8.0.tgz";
name = "_octokit_plugin_rest_endpoint_methods___plugin_rest_endpoint_methods_5.10.4.tgz";
path = fetchurl {
name = "_octokit_plugin_rest_endpoint_methods___plugin_rest_endpoint_methods_5.8.0.tgz";
url = "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.8.0.tgz";
sha1 = "33b342fe41f2603fdf8b958e6652103bb3ea3f3b";
name = "_octokit_plugin_rest_endpoint_methods___plugin_rest_endpoint_methods_5.10.4.tgz";
url = "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.10.4.tgz";
sha1 = "97e85eb7375e30b9bf193894670f9da205e79408";
};
}
{
@ -586,19 +602,19 @@
};
}
{
name = "_octokit_rest___rest_18.9.1.tgz";
name = "_octokit_rest___rest_18.10.0.tgz";
path = fetchurl {
name = "_octokit_rest___rest_18.9.1.tgz";
url = "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.9.1.tgz";
sha1 = "db1d7ac1d7b10e908f7d4b78fe35a392554ccb26";
name = "_octokit_rest___rest_18.10.0.tgz";
url = "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.10.0.tgz";
sha1 = "8a0add9611253e0e31d3ed5b4bc941a3795a7648";
};
}
{
name = "_octokit_types___types_6.25.0.tgz";
name = "_octokit_types___types_6.28.1.tgz";
path = fetchurl {
name = "_octokit_types___types_6.25.0.tgz";
url = "https://registry.yarnpkg.com/@octokit/types/-/types-6.25.0.tgz";
sha1 = "c8e37e69dbe7ce55ed98ee63f75054e7e808bf1a";
name = "_octokit_types___types_6.28.1.tgz";
url = "https://registry.yarnpkg.com/@octokit/types/-/types-6.28.1.tgz";
sha1 = "ab990d1fe952226055e81c7650480e6bacfb877c";
};
}
{
@ -698,19 +714,19 @@
};
}
{
name = "_types_node___node_16.7.1.tgz";
name = "_types_node___node_16.9.1.tgz";
path = fetchurl {
name = "_types_node___node_16.7.1.tgz";
url = "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz";
sha1 = "c6b9198178da504dfca1fd0be9b2e1002f1586f0";
name = "_types_node___node_16.9.1.tgz";
url = "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz";
sha1 = "0611b37db4246c937feef529ddcc018cf8e35708";
};
}
{
name = "_types_node___node_14.17.11.tgz";
name = "_types_node___node_14.17.16.tgz";
path = fetchurl {
name = "_types_node___node_14.17.11.tgz";
url = "https://registry.yarnpkg.com/@types/node/-/node-14.17.11.tgz";
sha1 = "82d266d657aec5ff01ca59f2ffaff1bb43f7bf0f";
name = "_types_node___node_14.17.16.tgz";
url = "https://registry.yarnpkg.com/@types/node/-/node-14.17.16.tgz";
sha1 = "2b9252bd4fdf0393696190cd9550901dd967c777";
};
}
{
@ -746,59 +762,59 @@
};
}
{
name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.29.3.tgz";
name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.31.1.tgz";
path = fetchurl {
name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.29.3.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.3.tgz";
sha1 = "95cb8029a8bd8bd9c7f4ab95074a7cb2115adefa";
name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz";
sha1 = "e938603a136f01dcabeece069da5fb2e331d4498";
};
}
{
name = "_typescript_eslint_experimental_utils___experimental_utils_4.29.3.tgz";
name = "_typescript_eslint_experimental_utils___experimental_utils_4.31.1.tgz";
path = fetchurl {
name = "_typescript_eslint_experimental_utils___experimental_utils_4.29.3.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.3.tgz";
sha1 = "52e437a689ccdef73e83c5106b34240a706f15e1";
name = "_typescript_eslint_experimental_utils___experimental_utils_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz";
sha1 = "0c900f832f270b88e13e51753647b02d08371ce5";
};
}
{
name = "_typescript_eslint_parser___parser_4.29.3.tgz";
name = "_typescript_eslint_parser___parser_4.31.1.tgz";
path = fetchurl {
name = "_typescript_eslint_parser___parser_4.29.3.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.3.tgz";
sha1 = "2ac25535f34c0e98f50c0e6b28c679c2357d45f2";
name = "_typescript_eslint_parser___parser_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.1.tgz";
sha1 = "8f9a2672033e6f6d33b1c0260eebdc0ddf539064";
};
}
{
name = "_typescript_eslint_scope_manager___scope_manager_4.29.3.tgz";
name = "_typescript_eslint_scope_manager___scope_manager_4.31.1.tgz";
path = fetchurl {
name = "_typescript_eslint_scope_manager___scope_manager_4.29.3.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.3.tgz";
sha1 = "497dec66f3a22e459f6e306cf14021e40ec86e19";
name = "_typescript_eslint_scope_manager___scope_manager_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz";
sha1 = "0c21e8501f608d6a25c842fcf59541ef4f1ab561";
};
}
{
name = "_typescript_eslint_types___types_4.29.3.tgz";
name = "_typescript_eslint_types___types_4.31.1.tgz";
path = fetchurl {
name = "_typescript_eslint_types___types_4.29.3.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz";
sha1 = "d7980c49aef643d0af8954c9f14f656b7fd16017";
name = "_typescript_eslint_types___types_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.1.tgz";
sha1 = "5f255b695627a13401d2fdba5f7138bc79450d66";
};
}
{
name = "_typescript_eslint_typescript_estree___typescript_estree_4.29.3.tgz";
name = "_typescript_eslint_typescript_estree___typescript_estree_4.31.1.tgz";
path = fetchurl {
name = "_typescript_eslint_typescript_estree___typescript_estree_4.29.3.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.3.tgz";
sha1 = "1bafad610015c4ded35c85a70b6222faad598b40";
name = "_typescript_eslint_typescript_estree___typescript_estree_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz";
sha1 = "4a04d5232cf1031232b7124a9c0310b577a62d17";
};
}
{
name = "_typescript_eslint_visitor_keys___visitor_keys_4.29.3.tgz";
name = "_typescript_eslint_visitor_keys___visitor_keys_4.31.1.tgz";
path = fetchurl {
name = "_typescript_eslint_visitor_keys___visitor_keys_4.29.3.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.3.tgz";
sha1 = "c691760a00bd86bf8320d2a90a93d86d322f1abf";
name = "_typescript_eslint_visitor_keys___visitor_keys_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz";
sha1 = "f2e7a14c7f20c4ae07d7fc3c5878c4441a1da9cc";
};
}
{
@ -866,19 +882,19 @@
};
}
{
name = "ajv___ajv_8.6.2.tgz";
name = "ajv___ajv_8.6.3.tgz";
path = fetchurl {
name = "ajv___ajv_8.6.2.tgz";
url = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz";
sha1 = "2fb45e0e5fcbc0813326c1c3da535d1881bb0571";
name = "ajv___ajv_8.6.3.tgz";
url = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz";
sha1 = "11a66527761dc3e9a3845ea775d2d3c0414e8764";
};
}
{
name = "allchange___allchange_1.0.2.tgz";
name = "allchange___allchange_1.0.3.tgz";
path = fetchurl {
name = "allchange___allchange_1.0.2.tgz";
url = "https://registry.yarnpkg.com/allchange/-/allchange-1.0.2.tgz";
sha1 = "86b9190e12b7ede4f230ae763cbd504c48fd907b";
name = "allchange___allchange_1.0.3.tgz";
url = "https://registry.yarnpkg.com/allchange/-/allchange-1.0.3.tgz";
sha1 = "f8814ddfbcfe39a01bf4570778ee7e6d9ff0ebb3";
};
}
{
@ -922,11 +938,11 @@
};
}
{
name = "ansi_regex___ansi_regex_5.0.0.tgz";
name = "ansi_regex___ansi_regex_5.0.1.tgz";
path = fetchurl {
name = "ansi_regex___ansi_regex_5.0.0.tgz";
url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
name = "ansi_regex___ansi_regex_5.0.1.tgz";
url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz";
sha1 = "082cb2c89c9fe8659a311a53bd6a4dc5301db304";
};
}
{
@ -1010,11 +1026,11 @@
};
}
{
name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
name = "are_we_there_yet___are_we_there_yet_1.1.7.tgz";
path = fetchurl {
name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
name = "are_we_there_yet___are_we_there_yet_1.1.7.tgz";
url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz";
sha1 = "b15474a932adab4ff8a50d9adfa7e4e926f21146";
};
}
{
@ -1050,11 +1066,11 @@
};
}
{
name = "asar___asar_3.0.3.tgz";
name = "asar___asar_3.1.0.tgz";
path = fetchurl {
name = "asar___asar_3.0.3.tgz";
url = "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz";
sha1 = "1fef03c2d6d2de0cbad138788e4f7ae03b129c7b";
name = "asar___asar_3.1.0.tgz";
url = "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz";
sha1 = "70b0509449fe3daccc63beb4d3c7d2e24d3c6473";
};
}
{
@ -1234,11 +1250,11 @@
};
}
{
name = "boxen___boxen_5.0.1.tgz";
name = "boxen___boxen_5.1.1.tgz";
path = fetchurl {
name = "boxen___boxen_5.0.1.tgz";
url = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz";
sha1 = "657528bdd3f59a772b8279b831f27ec2c744664b";
name = "boxen___boxen_5.1.1.tgz";
url = "https://registry.yarnpkg.com/boxen/-/boxen-5.1.1.tgz";
sha1 = "4faca6a437885add0bf8d99082e272d480814cd4";
};
}
{
@ -1322,11 +1338,11 @@
};
}
{
name = "cacache___cacache_15.2.0.tgz";
name = "cacache___cacache_15.3.0.tgz";
path = fetchurl {
name = "cacache___cacache_15.2.0.tgz";
url = "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz";
sha1 = "73af75f77c58e72d8c630a7a2858cb18ef523389";
name = "cacache___cacache_15.3.0.tgz";
url = "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz";
sha1 = "dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb";
};
}
{
@ -1610,11 +1626,11 @@
};
}
{
name = "core_js___core_js_3.16.3.tgz";
name = "core_js___core_js_3.17.3.tgz";
path = fetchurl {
name = "core_js___core_js_3.16.3.tgz";
url = "https://registry.yarnpkg.com/core-js/-/core-js-3.16.3.tgz";
sha1 = "1f2d43c51a9ed014cc6c83440af14697ae4b75f2";
name = "core_js___core_js_3.17.3.tgz";
url = "https://registry.yarnpkg.com/core-js/-/core-js-3.17.3.tgz";
sha1 = "8e8bd20e91df9951e903cabe91f9af4a0895bc1e";
};
}
{
@ -1625,6 +1641,14 @@
sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
};
}
{
name = "core_util_is___core_util_is_1.0.3.tgz";
path = fetchurl {
name = "core_util_is___core_util_is_1.0.3.tgz";
url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz";
sha1 = "a6042d3634c2b27e9328f837b965fac83808db85";
};
}
{
name = "counterpart___counterpart_0.18.6.tgz";
path = fetchurl {
@ -1754,11 +1778,11 @@
};
}
{
name = "deep_is___deep_is_0.1.3.tgz";
name = "deep_is___deep_is_0.1.4.tgz";
path = fetchurl {
name = "deep_is___deep_is_0.1.3.tgz";
url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
name = "deep_is___deep_is_0.1.4.tgz";
url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz";
sha1 = "a6f2dce612fadd2ef1f519b73551f17e85199831";
};
}
{
@ -1946,11 +1970,11 @@
};
}
{
name = "electron_notarize___electron_notarize_1.1.0.tgz";
name = "electron_notarize___electron_notarize_1.1.1.tgz";
path = fetchurl {
name = "electron_notarize___electron_notarize_1.1.0.tgz";
url = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.1.0.tgz";
sha1 = "00ed0182366b97f5593cb5ccdcf1120f1de37179";
name = "electron_notarize___electron_notarize_1.1.1.tgz";
url = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.1.1.tgz";
sha1 = "3ed274b36158c1beb1dbef14e7faf5927e028629";
};
}
{
@ -1978,11 +2002,11 @@
};
}
{
name = "electron___electron_13.2.2.tgz";
name = "electron___electron_13.4.0.tgz";
path = fetchurl {
name = "electron___electron_13.2.2.tgz";
url = "https://registry.yarnpkg.com/electron/-/electron-13.2.2.tgz";
sha1 = "332d91891d0db4f9a1d22d4d0bc3b500e59dc051";
name = "electron___electron_13.4.0.tgz";
url = "https://registry.yarnpkg.com/electron/-/electron-13.4.0.tgz";
sha1 = "f9f9e518d8c6bf23bfa8b69580447eea3ca0f880";
};
}
{
@ -2346,11 +2370,11 @@
};
}
{
name = "fastq___fastq_1.12.0.tgz";
name = "fastq___fastq_1.13.0.tgz";
path = fetchurl {
name = "fastq___fastq_1.12.0.tgz";
url = "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz";
sha1 = "ed7b6ab5d62393fb2cc591c853652a5c318bf794";
name = "fastq___fastq_1.13.0.tgz";
url = "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz";
sha1 = "616760f88a7526bdfc596b7cab8c18938c36b98c";
};
}
{
@ -3602,11 +3626,11 @@
};
}
{
name = "minipass_fetch___minipass_fetch_1.3.4.tgz";
name = "minipass_fetch___minipass_fetch_1.4.1.tgz";
path = fetchurl {
name = "minipass_fetch___minipass_fetch_1.3.4.tgz";
url = "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.4.tgz";
sha1 = "63f5af868a38746ca7b33b03393ddf8c291244fe";
name = "minipass_fetch___minipass_fetch_1.4.1.tgz";
url = "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz";
sha1 = "d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6";
};
}
{
@ -3650,11 +3674,11 @@
};
}
{
name = "minipass___minipass_3.1.3.tgz";
name = "minipass___minipass_3.1.5.tgz";
path = fetchurl {
name = "minipass___minipass_3.1.3.tgz";
url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz";
sha1 = "7d42ff1f39635482e15f9cdb53184deebd5815fd";
name = "minipass___minipass_3.1.5.tgz";
url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz";
sha1 = "71f6251b0a33a49c01b3cf97ff77eda030dff732";
};
}
{
@ -3722,11 +3746,11 @@
};
}
{
name = "needle___needle_2.9.0.tgz";
name = "needle___needle_2.9.1.tgz";
path = fetchurl {
name = "needle___needle_2.9.0.tgz";
url = "https://registry.yarnpkg.com/needle/-/needle-2.9.0.tgz";
sha1 = "c680e401f99b6c3d8d1f315756052edf3dc3bdff";
name = "needle___needle_2.9.1.tgz";
url = "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz";
sha1 = "22d1dffbe3490c2b83e301f7709b6736cd8f2684";
};
}
{
@ -3762,11 +3786,11 @@
};
}
{
name = "node_fetch___node_fetch_2.6.1.tgz";
name = "node_fetch___node_fetch_2.6.2.tgz";
path = fetchurl {
name = "node_fetch___node_fetch_2.6.1.tgz";
url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
name = "node_fetch___node_fetch_2.6.2.tgz";
url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz";
sha1 = "986996818b73785e47b1965cc34eb093a1d464d0";
};
}
{
@ -4178,11 +4202,11 @@
};
}
{
name = "plist___plist_3.0.3.tgz";
name = "plist___plist_3.0.4.tgz";
path = fetchurl {
name = "plist___plist_3.0.3.tgz";
url = "https://registry.yarnpkg.com/plist/-/plist-3.0.3.tgz";
sha1 = "007df34c7be0e2c3dcfcf460d623e6485457857d";
name = "plist___plist_3.0.4.tgz";
url = "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz";
sha1 = "a62df837e3aed2bb3b735899d510c4f186019cbe";
};
}
{
@ -4666,11 +4690,11 @@
};
}
{
name = "socks_proxy_agent___socks_proxy_agent_6.0.0.tgz";
name = "socks_proxy_agent___socks_proxy_agent_6.1.0.tgz";
path = fetchurl {
name = "socks_proxy_agent___socks_proxy_agent_6.0.0.tgz";
url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz";
sha1 = "9f8749cdc05976505fa9f9a958b1818d0e60573b";
name = "socks_proxy_agent___socks_proxy_agent_6.1.0.tgz";
url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz";
sha1 = "869cf2d7bd10fea96c7ad3111e81726855e285c3";
};
}
{
@ -4682,11 +4706,11 @@
};
}
{
name = "source_map_support___source_map_support_0.5.19.tgz";
name = "source_map_support___source_map_support_0.5.20.tgz";
path = fetchurl {
name = "source_map_support___source_map_support_0.5.19.tgz";
url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
name = "source_map_support___source_map_support_0.5.20.tgz";
url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz";
sha1 = "12166089f8f5e5e8c56926b377633392dd2cb6c9";
};
}
{
@ -4890,11 +4914,11 @@
};
}
{
name = "tar___tar_6.1.10.tgz";
name = "tar___tar_6.1.11.tgz";
path = fetchurl {
name = "tar___tar_6.1.10.tgz";
url = "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz";
sha1 = "8a320a74475fba54398fa136cd9883aa8ad11175";
name = "tar___tar_6.1.11.tgz";
url = "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz";
sha1 = "6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621";
};
}
{
@ -5130,11 +5154,11 @@
};
}
{
name = "typescript___typescript_4.3.5.tgz";
name = "typescript___typescript_4.4.3.tgz";
path = fetchurl {
name = "typescript___typescript_4.3.5.tgz";
url = "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz";
sha1 = "4d1c37cc16e893973c45a06886b7113234f119f4";
name = "typescript___typescript_4.4.3.tgz";
url = "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz";
sha1 = "bdc5407caa2b109efd4f82fe130656f977a29324";
};
}
{
@ -5409,14 +5433,6 @@
sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3";
};
}
{
name = "xmldom___xmldom_0.6.0.tgz";
path = fetchurl {
name = "xmldom___xmldom_0.6.0.tgz";
url = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.6.0.tgz";
sha1 = "43a96ecb8beece991cef382c08397d82d4d0c46f";
};
}
{
name = "xtend___xtend_4.0.2.tgz";
path = fetchurl {

View file

@ -19,12 +19,12 @@
let
executableName = "element-desktop";
version = "1.8.5";
version = "1.9.0";
src = fetchFromGitHub {
owner = "vector-im";
repo = "element-desktop";
rev = "v${version}";
sha256 = "sha256-i9PWGEcf+EOn6j++GuYt6xmwYycmW5hE5xhpRMOFBGM=";
sha256 = "sha256-vsLu41n3oCSyyPLgASs7jZViu6DPkWmMfSO7414VPO4=";
};
electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
in

View file

@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec {
pname = "element-web";
version = "1.8.5";
version = "1.9.0";
src = fetchurl {
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
sha256 = "sha256-E3H6iXBRi4mnhu0mu96ly9f8AYOiMFf9zTcpjDmfHy4=";
sha256 = "sha256-QMLa1Bgz9feAAR9PKVXAzlRDztJBZnGIG+SsPgwvYRw=";
};
installPhase = ''

View file

@ -4,7 +4,7 @@ with ocamlPackages;
buildDunePackage rec {
pname = "jackline";
version = "unstable-2021-04-23";
version = "unstable-2021-08-10";
minimumOCamlVersion = "4.08";
@ -13,8 +13,8 @@ buildDunePackage rec {
src = fetchFromGitHub {
owner = "hannesm";
repo = "jackline";
rev = "861c59bb7cd27ad5c7558ff94cb0d0e8dca249e5";
sha256 = "00waw5qr0n70i9l9b25r9ryfi836x4qrj046bb4k9qa4d0p8q1sa";
rev = "73d87e9a62d534566bb0fbe64990d32d75487f11";
sha256 = "0wk574rqfg2vqz27nasxzwf67x51pj5fgl4vkc27r741dg4q6c5a";
};
nativeBuildInpts = [

View file

@ -1,19 +1,20 @@
{ stdenv, callPackage, fetchurl, lib }:
let
mkRambox = opts: callPackage (import ./rambox.nix opts) { };
in mkRambox rec {
mkRambox = opts: callPackage (import ./rambox.nix opts) {};
in
mkRambox rec {
pname = "rambox";
version = "0.7.8";
version = "0.7.9";
src = {
x86_64-linux = fetchurl {
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-x86_64.AppImage";
sha256 = "1y3c9xh8594ay95rj9vaqxxzibwpc38n7ixxi2wnsrdbrqrwlc63";
sha256 = "19y4cmrfp79dr4hgl698imp4f3l1nhgvhh76j5laxg46ld71knil";
};
i686-linux = fetchurl {
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.AppImage";
sha256 = "07sv384nd2i701fkjgsrlib8jfsa01bvj60gnqdwlnpphlknga3h";
sha256 = "13wiciyshyrabq2mvnssl2d6svia1kdvwx3dl26249iyif96xxvq";
};
}.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
@ -21,8 +22,8 @@ in mkRambox rec {
description = "Free and Open Source messaging and emailing app that combines common web applications into one";
homepage = "https://rambox.pro";
license = licenses.mit;
maintainers = with maintainers; [ ];
platforms = ["i686-linux" "x86_64-linux"];
maintainers = with maintainers; [];
platforms = [ "i686-linux" "x86_64-linux" ];
hydraPlatforms = [];
};
}

View file

@ -25,7 +25,7 @@ let
else "");
in stdenv.mkDerivation rec {
pname = "signal-desktop";
version = "5.17.2"; # Please backport all updates to the stable channel.
version = "5.18.0"; # Please backport all updates to the stable channel.
# All releases have a limited lifetime and "expire" 90 days after the release.
# When releases "expire" the application becomes unusable until an update is
# applied. The expiration date for the current release can be extracted with:
@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1fmn2i6k3zh3d37234yxbawzf85fa66xybcli7xffli39czxbcj3";
sha256 = "1pajv9f6xl06597322swkjzhfqvlfavsbhbn1xnvy4r28i84mp7d";
};
nativeBuildInputs = [

View file

@ -1,655 +1,655 @@
{
version = "91.1.1";
version = "91.1.2";
sources = [
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/af/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/af/thunderbird-91.1.2.tar.bz2";
locale = "af";
arch = "linux-x86_64";
sha256 = "ba98ba0ac513e9f8ca047bd08b38e2391d5b67b4195c2c1ac7d90498e148ad6b";
sha256 = "f786ba47061600b2a4fce6dc537e4d5f41ef7e496ddd24e06e5cf2d2bc7ae615";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ar/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ar/thunderbird-91.1.2.tar.bz2";
locale = "ar";
arch = "linux-x86_64";
sha256 = "3514eadb52d000429f16417d3af5ce648cfdeaa583bb3602623f40abfca72fec";
sha256 = "70e13fa57939ec35fed7e537c282411e022e2e596af298ff68ed06d29149ad44";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ast/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ast/thunderbird-91.1.2.tar.bz2";
locale = "ast";
arch = "linux-x86_64";
sha256 = "c630ab402c6f166181474b0e7299dc24ff0de5ce92fa0894adbc3dbaf8878f59";
sha256 = "22ac54e15cc8d89412f26906b10d7274a90d86f298948998dabbbb63000fd9bd";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/be/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/be/thunderbird-91.1.2.tar.bz2";
locale = "be";
arch = "linux-x86_64";
sha256 = "9f484652940fec35d9adad996e80092cedabc789952e083107b405992b1ecf9d";
sha256 = "bb59b38220fc5a2e429df9bf521610678b7b3c7e47e4a3208c9e0e54860ae098";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/bg/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/bg/thunderbird-91.1.2.tar.bz2";
locale = "bg";
arch = "linux-x86_64";
sha256 = "f784957e36cb9a92083c275eec887d3a6847439281e94346e5bf0e065ec23366";
sha256 = "7a0d50876f51664074b6eefd20dc727cea2d4a0feceb721c63fa9e3872ea6d07";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/br/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/br/thunderbird-91.1.2.tar.bz2";
locale = "br";
arch = "linux-x86_64";
sha256 = "2817bf350195954464db3a936db3a3730c2d33dfea9333165e69418b627d575d";
sha256 = "8a49fe9b26d1a5c5b3c28209cbb6d81e785235f4e1b24e4638cf5a5fa720d68e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ca/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ca/thunderbird-91.1.2.tar.bz2";
locale = "ca";
arch = "linux-x86_64";
sha256 = "176b8f2463267ad2aed07ca6966609c600615763caba662ac68c45b5d36e367c";
sha256 = "380d655a39c7f20067045cf2ec75e5bca0ba0e8291d187fd87ac42abbbce7dc7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/cak/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/cak/thunderbird-91.1.2.tar.bz2";
locale = "cak";
arch = "linux-x86_64";
sha256 = "7ff8fc736dd4232801d0e50b154747827cc818fe76782b219d683a8b2bba8969";
sha256 = "ff12816d6dac6311b2f0a358ee4a30e80d3a346c9a2fc08c9c4d72b2e7421b03";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/cs/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/cs/thunderbird-91.1.2.tar.bz2";
locale = "cs";
arch = "linux-x86_64";
sha256 = "b6763048e3fab66a4f08fd8c868d7c9c51258c540801546546b7da3b2ea64693";
sha256 = "fc8ed1c83b76329aecd9b6b7b4c2278b2703dc267ef25ad973deefff01cbb29d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/cy/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/cy/thunderbird-91.1.2.tar.bz2";
locale = "cy";
arch = "linux-x86_64";
sha256 = "810213d5f90387bd6f46436b1479b977248ec043235f2f97b7e8d0a3b296eaec";
sha256 = "50e10c11f341b75e4ca464911a7229d22073d72b53731ba92cbd39c52694e0d2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/da/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/da/thunderbird-91.1.2.tar.bz2";
locale = "da";
arch = "linux-x86_64";
sha256 = "2c85f4ea05fb03aaf88f4cb028375a628061f2699adde13f78cf6e76b7564e7d";
sha256 = "1c041fb7c71e9d0f07c82652129a6b48f2f633a7781c41a3c439dec1d7fcabee";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/de/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/de/thunderbird-91.1.2.tar.bz2";
locale = "de";
arch = "linux-x86_64";
sha256 = "9a05ca5400224fbf0923a331e1ba986d38038df24340c6aee695c24f96f75e0e";
sha256 = "c9ed27ee3f1a631c6a7d7a5a854e48f3285b9f01c81bc9ee3611bbdd9f483cdc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/dsb/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/dsb/thunderbird-91.1.2.tar.bz2";
locale = "dsb";
arch = "linux-x86_64";
sha256 = "e06a84821ba0354e4d5efe0e080734e39f376ba3e1f1c385ab939fd4cb84301c";
sha256 = "3c00604247dee961915f2aff628bd7d1f53c4f7e48bb848ef6065e41f189495d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/el/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/el/thunderbird-91.1.2.tar.bz2";
locale = "el";
arch = "linux-x86_64";
sha256 = "32a1de995a05495721a4c6a6a74ec27b68c03d7b2121ea7d6ce6d295ceb8d328";
sha256 = "b9ad1ab6b7d33f477f51e4337d914f8f8d2f6d7bc1b3b884d8b71b17547c3fa0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/en-CA/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/en-CA/thunderbird-91.1.2.tar.bz2";
locale = "en-CA";
arch = "linux-x86_64";
sha256 = "95f2dd81dc1958f2acd8a801fe7a87dfa0a00c6b91b8bd669f8e3caf6d90aad2";
sha256 = "80e6b5785d334bec69455ca5f5039bbd4fbebd663ea91d17d0fbe8e33d747670";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/en-GB/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/en-GB/thunderbird-91.1.2.tar.bz2";
locale = "en-GB";
arch = "linux-x86_64";
sha256 = "3177bce52669f44ae58ca447b54a86329cdb5b8006199e86fa66b5bfe96ac8a3";
sha256 = "da2388577784df3faad7b40566e2e1eab2b95dd9455a1e4e3ee43433f4fb189e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/en-US/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/en-US/thunderbird-91.1.2.tar.bz2";
locale = "en-US";
arch = "linux-x86_64";
sha256 = "c0331b86ef72bae3d769ca977b0c9adeb9a29145dab1eb0013f4d88fa9caeedc";
sha256 = "1354e3ad2989749fe79b404ccae3002de8b4e269c98388d9abebe456f3de47d2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/es-AR/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/es-AR/thunderbird-91.1.2.tar.bz2";
locale = "es-AR";
arch = "linux-x86_64";
sha256 = "e2aee8223131a46bf99140ebdb56ab76ca03eb5eb66dfbee75f23520d95d1971";
sha256 = "f51d4a1109d30d4857673575aef173026e2c90fc7ece6835a34a0e792672cf8b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/es-ES/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/es-ES/thunderbird-91.1.2.tar.bz2";
locale = "es-ES";
arch = "linux-x86_64";
sha256 = "c8e189dc7a57d47c6dba9e4cda3068b327fa10cff3818e97a4942c71c1d0cc87";
sha256 = "38196b265eeaef2222e624e2fb0cb7742b2171965aa0725b3d524e9199ea4f91";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/et/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/et/thunderbird-91.1.2.tar.bz2";
locale = "et";
arch = "linux-x86_64";
sha256 = "76e094d63467fb36622b64361f86041f0e6361a4fb1f1702c8a0e88bc57cfc96";
sha256 = "ab3b04c02b730f92db4f24daac688e1966349cf4c978ed06138285fcb2d72769";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/eu/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/eu/thunderbird-91.1.2.tar.bz2";
locale = "eu";
arch = "linux-x86_64";
sha256 = "8f09dc4bbbb76b660acf4664f4fb083a50de6523842171b4fe9558e7255c8bbf";
sha256 = "4431e16f70b6182b1ec2bed64d149ffc7e46f1b2536268e973eb984439eda400";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/fi/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/fi/thunderbird-91.1.2.tar.bz2";
locale = "fi";
arch = "linux-x86_64";
sha256 = "d7dba3916342bfefe549ad21a70a438c8f2031fc5f0085fc4e236d0f8d07c948";
sha256 = "8ee9b2983d1f214f4589d7d99d1ac1a577f92dd3cc73f516dcc050079ed85904";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/fr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/fr/thunderbird-91.1.2.tar.bz2";
locale = "fr";
arch = "linux-x86_64";
sha256 = "4088b924197a6baf7ea3ee233d566b9799cbab955a135bc870eaf6e08ce70915";
sha256 = "b614dadf34774ebf45c88ae0c72c6d8779beb8310a8353aedeca1a493178c376";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/fy-NL/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/fy-NL/thunderbird-91.1.2.tar.bz2";
locale = "fy-NL";
arch = "linux-x86_64";
sha256 = "59cd7d50cdbb7867f746b137ec8f70407ae649b03e86a73a2be642eab9256be4";
sha256 = "00693bbfda9377d2695fc8c7c242b0e4a3c1b745e8779ebabe5686eca4fc928a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ga-IE/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ga-IE/thunderbird-91.1.2.tar.bz2";
locale = "ga-IE";
arch = "linux-x86_64";
sha256 = "10936f6c941d8c94eea200c1c3bb8919066714129eb3b34d67df87c9b93f331c";
sha256 = "00d26b39726e2de2e799b3dff97c79a590f712f3347232600d1f2771523d0ab4";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/gd/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/gd/thunderbird-91.1.2.tar.bz2";
locale = "gd";
arch = "linux-x86_64";
sha256 = "4ee24daec40780a8148092c96140575e7e5d1169fd37ffc6d46879f76f976f80";
sha256 = "d9a35fbf9f4069c6f4dd796c8f9465053413d806093d1456e643c9bdb081ad45";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/gl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/gl/thunderbird-91.1.2.tar.bz2";
locale = "gl";
arch = "linux-x86_64";
sha256 = "0126bc6b167b8bcb2135e02c289f26aed82e4ab8dc820fa9468ebb41fd05604d";
sha256 = "9e7f237b55f81a44a984be4b4e1001c8ffd7742eb14e654397e80b4e4b765d0c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/he/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/he/thunderbird-91.1.2.tar.bz2";
locale = "he";
arch = "linux-x86_64";
sha256 = "58ae78aee2da5f8a33edf8c87a743ea7f3da6702f25682869db9bbfcb53d4df5";
sha256 = "b86d479dd64ac86d43fbfb54c8ec36ea6b4516ded0383f81b78c11365290f21b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/hr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hr/thunderbird-91.1.2.tar.bz2";
locale = "hr";
arch = "linux-x86_64";
sha256 = "c4543e54a9fa59906c64b8830e4ce6218279872e6beafeb67d13250159eca8f0";
sha256 = "cb7e8d0dd04c5883f2ec0f47d81a751b901e0036f151ab1c0f3043ba7ebf4a74";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/hsb/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hsb/thunderbird-91.1.2.tar.bz2";
locale = "hsb";
arch = "linux-x86_64";
sha256 = "cded10c83585c5d6ebdae4a0740262f43203b7a9252144a6f97eb6b329cea95a";
sha256 = "d3141a413d82814067de2791091473e0b44f8939825cc3071b1fbe86e08dd49a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/hu/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hu/thunderbird-91.1.2.tar.bz2";
locale = "hu";
arch = "linux-x86_64";
sha256 = "f6dcdab2dad04a9210f509a62da49ec5269bf5c9f40e74cf9d2f43edb0abd422";
sha256 = "b76860152f68b2dfabef9847c83356af34b8fb1913d0d55a397be3d4e4e08b31";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/hy-AM/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/hy-AM/thunderbird-91.1.2.tar.bz2";
locale = "hy-AM";
arch = "linux-x86_64";
sha256 = "b3f8a1b6d4576dbf660bee6404b97babeb04bf0c1c6ff27aab25a073436f43a4";
sha256 = "5aa35ed5d577befb7a37d5407bc7ff78c54314a7e5ed77bda588bd74111e263b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/id/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/id/thunderbird-91.1.2.tar.bz2";
locale = "id";
arch = "linux-x86_64";
sha256 = "e1bfada3b7d33e01462cc303b22298850c5923f42e8ca656cdf5b2dc72c00745";
sha256 = "0bb53b2cbed8a9412c6776435381d5c859a9993b4bd2cdf5ecd4145d13776d09";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/is/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/is/thunderbird-91.1.2.tar.bz2";
locale = "is";
arch = "linux-x86_64";
sha256 = "602ee80721bfa921805c1fff2b0802d7845d7970645cbb839e5d0f6e25b5fe65";
sha256 = "566058b39d98a777cb1c333b66cac66851d0c369918e58c592b8e0151b778f6f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/it/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/it/thunderbird-91.1.2.tar.bz2";
locale = "it";
arch = "linux-x86_64";
sha256 = "7e55d0b20027e23d3340a593beeebac0fead2dd0d048133b2e42dbb33288c4c5";
sha256 = "b88fb1b473a7b0b1a4af08a09aadf5b7502f03462a1f4661ed2897c2705e5b4d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ja/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ja/thunderbird-91.1.2.tar.bz2";
locale = "ja";
arch = "linux-x86_64";
sha256 = "df67309b344f46f9ead5939a2f0f7bc34b90bf4cfa4cc28a662391146951c4a0";
sha256 = "6b69cd834280b36182656bd97b117c3f70bbcd947ab25e1936294a85149d3501";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ka/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ka/thunderbird-91.1.2.tar.bz2";
locale = "ka";
arch = "linux-x86_64";
sha256 = "0992f5884dec1431a1c82e289195db7561a8089e7cd7d8fb940c0435e365b6f2";
sha256 = "87d8bc04c278d8c675665d0211917a854d43a17d24173627703268a785ff2206";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/kab/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/kab/thunderbird-91.1.2.tar.bz2";
locale = "kab";
arch = "linux-x86_64";
sha256 = "37eb0b67bb564762f8c88fac75c9ef8a51ad4ca302e3bc5f4d99ff799a141309";
sha256 = "fad11f653198314683faaa758422506d27706b6dca90a4d5b0d3693810843fba";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/kk/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/kk/thunderbird-91.1.2.tar.bz2";
locale = "kk";
arch = "linux-x86_64";
sha256 = "16fcf81dd18c51826d3a93e6393c820227322ad4cceaa668a22fcf79d9fe0773";
sha256 = "67469c2c4e1352db94339687f93c0afefe41244bfc952d77c2e41e31a652f095";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ko/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ko/thunderbird-91.1.2.tar.bz2";
locale = "ko";
arch = "linux-x86_64";
sha256 = "4e6b0bb94ae1442b987b5e98ef287f6cdd354d13ecbb14dfc25b04ba17b3961d";
sha256 = "93bb5a6973bbd0eaac721ffd59c19edce400471c08d76aa629b2fe66fc98ddf9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/lt/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/lt/thunderbird-91.1.2.tar.bz2";
locale = "lt";
arch = "linux-x86_64";
sha256 = "03364e6f6104f083bd38dbd65c1d451186757e07460840a1fc8ed8d71f00cc8b";
sha256 = "f4dda73c80cee8aaceee0f4ea0956303f9a50aa2431c6eb8a34d7d22b5fe53e9";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/lv/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/lv/thunderbird-91.1.2.tar.bz2";
locale = "lv";
arch = "linux-x86_64";
sha256 = "4da6a4e457aadb58819c3b44432c5a5ff17f2be378fb461d859a92768e2c4b7e";
sha256 = "65325a804f5aec439501bd70e5423d56ddc5a10636b639e8db85ce8881c1586e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ms/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ms/thunderbird-91.1.2.tar.bz2";
locale = "ms";
arch = "linux-x86_64";
sha256 = "8aae1245c40ba4b7682f5d26f3b90d9b5cfe53fbd00a755e699ddcea6ac5164f";
sha256 = "f2715978bc8e2d7878f8ec47b4a29cccaa42a24bd97f013f6b66aaf47db83359";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/nb-NO/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/nb-NO/thunderbird-91.1.2.tar.bz2";
locale = "nb-NO";
arch = "linux-x86_64";
sha256 = "d279ee97817a87a87b8848f6cce8e1b0a9643095dbf46e3632df6242f9b05b23";
sha256 = "c252fdee3a9d9c43b46786c528bb8ac39203b7d7c746f9c9f04287cb1253ded6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/nl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/nl/thunderbird-91.1.2.tar.bz2";
locale = "nl";
arch = "linux-x86_64";
sha256 = "f1d58f439aa8276b5baa475e696a6eedb484059eef66ed8ab6ea27f66182d53a";
sha256 = "1708531ca0b765292206fa9c533200266f5eb48fbbc74daade404bdcbfdcc750";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/nn-NO/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/nn-NO/thunderbird-91.1.2.tar.bz2";
locale = "nn-NO";
arch = "linux-x86_64";
sha256 = "703745b4b07778058a8ed8d4072700033f268ea513abc9f4dc7d1cdcf07c9c2c";
sha256 = "dc26c1333787accc73624bc5bac820af1743ea30d85e9da9a0c30f6b9b0c3bcf";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/pa-IN/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pa-IN/thunderbird-91.1.2.tar.bz2";
locale = "pa-IN";
arch = "linux-x86_64";
sha256 = "46d756ecb4d5e566dc4a72115874b32bce8eba5de141448d461d795b0c81e78c";
sha256 = "fc508dd719c18c250560b5d4fc4672ce83a9f52b6103d3f33034eca89ed2935f";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/pl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pl/thunderbird-91.1.2.tar.bz2";
locale = "pl";
arch = "linux-x86_64";
sha256 = "7384fd09796d727f82dd9f92b3faa67d53c415c01b44c885a998039eda703545";
sha256 = "eb54040a841d0da1e84dd2a6ba3c894a57d40fdb0bf99f21b7fbbe3ea8cd755c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/pt-BR/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pt-BR/thunderbird-91.1.2.tar.bz2";
locale = "pt-BR";
arch = "linux-x86_64";
sha256 = "dcd97601965c25f43fc10bf59c5ccd3d62439ad3f1ed724c379951d2b514df72";
sha256 = "45226857a691f8568c769f652820eb5b86b0928c271b2751014bd6e7ab29ab80";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/pt-PT/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/pt-PT/thunderbird-91.1.2.tar.bz2";
locale = "pt-PT";
arch = "linux-x86_64";
sha256 = "225c2c87e5e18a987c1cad74622ace48bcda9dac7d420694f91c0c30757bfa23";
sha256 = "532f18bbe7fc09793bd688e5bc48c65658e2a48285b97c611b68611e9f13257d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/rm/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/rm/thunderbird-91.1.2.tar.bz2";
locale = "rm";
arch = "linux-x86_64";
sha256 = "07ca0312828ee92b9d04ca5e62f6f4f65260faba80da1da5365a2614edd43dae";
sha256 = "8d0f2ec43e6e00118d7c1d5877bfbc5b5c87a8e449a0358acc6e71244a0716b3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ro/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ro/thunderbird-91.1.2.tar.bz2";
locale = "ro";
arch = "linux-x86_64";
sha256 = "3cee1abefb6bcd9508a14e0b03e14f30b6aba95245ba79993d293fc92a3f7bb4";
sha256 = "dbfd5500b337132ab14266d2b87224c917086afe3f210127d73848d360299241";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/ru/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/ru/thunderbird-91.1.2.tar.bz2";
locale = "ru";
arch = "linux-x86_64";
sha256 = "e6491ab33fa05012206b22223f78e2f6f575f9e99d33159f0c853b538c3ab9ce";
sha256 = "06f6077ba98fc2605718266e57b9c5c54c3d7901f2b7233f38d7fd02d6d063a0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/sk/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sk/thunderbird-91.1.2.tar.bz2";
locale = "sk";
arch = "linux-x86_64";
sha256 = "b4cc3471da1cd3f1f9146bf5ba9d33f706df6d2988375a7f148223eba2cb88e5";
sha256 = "af1224613b3e962265d83b154cbf69053906197f2b7f12e5004ad862bef09aaa";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/sl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sl/thunderbird-91.1.2.tar.bz2";
locale = "sl";
arch = "linux-x86_64";
sha256 = "a83b61af2283d3c694ede815faaa0abfb3e6b7a346d9d984dbf3e50856532473";
sha256 = "597cd2732960eadd0121c4089a703cc86a0d9a361ff024fe047c8c624dc05afc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/sq/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sq/thunderbird-91.1.2.tar.bz2";
locale = "sq";
arch = "linux-x86_64";
sha256 = "6562243bd3ca68b6b09c12745111c36a269e60593c5c458e04da12a9f1cfe7dc";
sha256 = "c107fb5653cb7adfa79aad501e585943159fa9297ef360b193075a9b49e91d54";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/sr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sr/thunderbird-91.1.2.tar.bz2";
locale = "sr";
arch = "linux-x86_64";
sha256 = "2b8dee91bfe25480f1a7b12b3825e2445b369d6125df9a13271ef6a6af015db8";
sha256 = "33964cc6308a8e7ebc154c057f90729a92d2a9127f9d8c4592f884531d094334";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/sv-SE/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/sv-SE/thunderbird-91.1.2.tar.bz2";
locale = "sv-SE";
arch = "linux-x86_64";
sha256 = "113e0ebd096ef5ea225c76e930cbdc58f2b529b39fe799310098abefa4652ee1";
sha256 = "91fa282c3baee03653ffe5164844e06a9813a40c360ef24e94ff525638f187de";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/th/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/th/thunderbird-91.1.2.tar.bz2";
locale = "th";
arch = "linux-x86_64";
sha256 = "71b62b60167d06a02fcc90017b33d65c757d18d05fbf689607631ff1783941ce";
sha256 = "99ea8b61e102c3394073f3a817d3eeddc3cedb51436b66303730394f362e91f7";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/tr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/tr/thunderbird-91.1.2.tar.bz2";
locale = "tr";
arch = "linux-x86_64";
sha256 = "ab7f254131c8fdcc040d06d29ffdb0da6d95b9970f7640851bbdad337af0bd0a";
sha256 = "bb1d417239c31c6ae9bf62cd545f2fad316915ce6bcb707f2deb65f0cc24425c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/uk/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/uk/thunderbird-91.1.2.tar.bz2";
locale = "uk";
arch = "linux-x86_64";
sha256 = "6da1aa51763b3acb2015eb78b50d5d6cc080bd606e2afdcf181d84095b0cedc3";
sha256 = "8464520b025c29dcf3376d7c47d6c7596ff60eeabe63fc5c41082ceb4fbe148c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/uz/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/uz/thunderbird-91.1.2.tar.bz2";
locale = "uz";
arch = "linux-x86_64";
sha256 = "933513bdc1b1137dc627ec4895c3299d3633a105eadf2216b682fe36554c5f5b";
sha256 = "d4ba9eaafed3d475dd0fe3a7df7f9910fe3a95a74b9a83f2a00aa73441ae8a64";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/vi/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/vi/thunderbird-91.1.2.tar.bz2";
locale = "vi";
arch = "linux-x86_64";
sha256 = "8f3eb2210a070983d87e6d5ec9908cabfdd012a4691443c39cbf2212d79e2394";
sha256 = "8c7f222e0c65ad2daaf37ab46fbe58e005aa89379a0a87f4b2a5f19528e0e5b2";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/zh-CN/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/zh-CN/thunderbird-91.1.2.tar.bz2";
locale = "zh-CN";
arch = "linux-x86_64";
sha256 = "0faa621dba2d2725bcd6b2a337feac5ee2d6bf66900ce30e1e5abbcddc15ca45";
sha256 = "1cc053e2e9e751ca14da4a09c276d2c78f61ef4e7d74ac4019849f6ebc044d0d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-x86_64/zh-TW/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-x86_64/zh-TW/thunderbird-91.1.2.tar.bz2";
locale = "zh-TW";
arch = "linux-x86_64";
sha256 = "e236b7d2b9187a0ac780d7e0821cf29138d5f03321248e4edab0d1f2a7267cc7";
sha256 = "b77a3eb6d1e51388d1b084956b7cc579e1e3c8ed2bc72d7943ac5d6188e43938";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/af/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/af/thunderbird-91.1.2.tar.bz2";
locale = "af";
arch = "linux-i686";
sha256 = "624e9894eba97eafff7241dd73c2edd685e0786ba3e12f525980012d7dbae0e6";
sha256 = "c2015b0cfa07309ca6afe5fefb24c1393a397b1d592dd80ec8b62bd4ef8a3d35";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ar/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ar/thunderbird-91.1.2.tar.bz2";
locale = "ar";
arch = "linux-i686";
sha256 = "62f250a1925e8b3cf2c98fe877b7b5a6d559d3fafb1320312fc765630c23a71b";
sha256 = "f36b4e7452ae39bd2bf63231ab884356c7b77d6015993e09046b3d6a63443920";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ast/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ast/thunderbird-91.1.2.tar.bz2";
locale = "ast";
arch = "linux-i686";
sha256 = "102b2e3d812eb4737f3d4ab63e2b696cb7cc2478ad438bed5c19299d65dc5ac6";
sha256 = "600d102bbb18bac81e3d50c9ef9a578820b0fa1ba2a6f6d756da6e391fe0f241";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/be/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/be/thunderbird-91.1.2.tar.bz2";
locale = "be";
arch = "linux-i686";
sha256 = "ed15b0cc8c4d0dcc4071ccdc602fd796c5dc42a027f26595d1d8df2ab10267ba";
sha256 = "46032acc1c16e2c9bd7905799db6253cb16fb6269bb79edf6141b9d2bd5c0b15";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/bg/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/bg/thunderbird-91.1.2.tar.bz2";
locale = "bg";
arch = "linux-i686";
sha256 = "234f8ff03dbf19bd9100663ee517fa1630d0e7bd00953a056d5085021fa90324";
sha256 = "d21bfe3ad0c2c900de1ab9a88d62fc74c4c1767bb41121159c5c0c9bfe270a8c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/br/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/br/thunderbird-91.1.2.tar.bz2";
locale = "br";
arch = "linux-i686";
sha256 = "34c578de385448cad19dc368a04d0285cfb1520c31477f6eacc10ffa2e81a02d";
sha256 = "8e20c1ce0867bafde00c3e8fc55d5841a14e91fa8039fc7259269da8bfbd4373";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ca/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ca/thunderbird-91.1.2.tar.bz2";
locale = "ca";
arch = "linux-i686";
sha256 = "c3d3dfdeaa72254d02b12f72c83a95a2904a13f2e0c721d3baa5da0dd76bc2c8";
sha256 = "175bfb1b0ef94897ecd359c54a2767ca039a259300a5716211fa0c0593b81023";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/cak/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/cak/thunderbird-91.1.2.tar.bz2";
locale = "cak";
arch = "linux-i686";
sha256 = "7cf60b8ecc692696081115f1df65f9976613ef34b57d412a6d3333a18400aa3c";
sha256 = "65cf8763200cd10cbc016c9d447703b640c52165c691a604092376de09dc1376";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/cs/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/cs/thunderbird-91.1.2.tar.bz2";
locale = "cs";
arch = "linux-i686";
sha256 = "59f01da4722c4317f80a7174f85fff9ba60a8341d589ef2cc27c565a529af2f5";
sha256 = "8d019c4f92f60c44f1340f96892c0a4060d4ceb86d188f5f81911d92ff2957f0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/cy/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/cy/thunderbird-91.1.2.tar.bz2";
locale = "cy";
arch = "linux-i686";
sha256 = "470e65ebf016cd8fdcba1ad405df36d556c6fa43c23856b88d6da3fc58f80d81";
sha256 = "29049a5f4849f7e2bde8ec122de33edb7c86e87eca46b72086e53caedcad7ef1";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/da/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/da/thunderbird-91.1.2.tar.bz2";
locale = "da";
arch = "linux-i686";
sha256 = "d1e95c7744d5058354e8626c361b7d529fefb2032cf380f8f129e84243221b9d";
sha256 = "39d9b429b8ee92b045abf48a605e32a577da1f61459b597698f87b1972993f2d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/de/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/de/thunderbird-91.1.2.tar.bz2";
locale = "de";
arch = "linux-i686";
sha256 = "dbb632f5fe3a3ea2ffce78ef8984e78debf2b0d09ec42bfd1b642a7fd68dc93a";
sha256 = "b8ccae9622a8fa684c48a39a409af461238325d91db5edd8d9ecbeaebf2fa999";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/dsb/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/dsb/thunderbird-91.1.2.tar.bz2";
locale = "dsb";
arch = "linux-i686";
sha256 = "ab5d84870b77376fee50b082e14f2d5ce915f9041a63f09519ea5b8ab2c8c990";
sha256 = "a32e1ec050968c94c2b2c1c175d13629fb5feda14e91a0e6c78a9e1bf4092ebe";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/el/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/el/thunderbird-91.1.2.tar.bz2";
locale = "el";
arch = "linux-i686";
sha256 = "a96a8d96484b441210b98e768462237ad2e4306bcb20412028613f480160fcd3";
sha256 = "7599c18f5c79d6aebb652308fa3fa9b13a4883c0dfc47e8bef6b6c118a2ed909";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/en-CA/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/en-CA/thunderbird-91.1.2.tar.bz2";
locale = "en-CA";
arch = "linux-i686";
sha256 = "f43fa2abb60bdeb571ec665d8f5779b049d3270f05e01e43795408e450240d85";
sha256 = "47c49908cf59a8fa6ec1de512cd01907412cfc5b0f56709611b71eb0b3e6cdee";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/en-GB/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/en-GB/thunderbird-91.1.2.tar.bz2";
locale = "en-GB";
arch = "linux-i686";
sha256 = "6c3c9f1c8f4e3f6cc6008cec83e5c234f797762ae05cdfe7dd7e95794f3fa007";
sha256 = "9f379c2837dab6ece5306117065ddb1f19d3fa08900d5ed63abc34fff8755dda";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/en-US/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/en-US/thunderbird-91.1.2.tar.bz2";
locale = "en-US";
arch = "linux-i686";
sha256 = "a6c3f8b935f8c5e185e621aed1725b82db1007c977949fb9f786b86bf024dffb";
sha256 = "97aaf105ff5fd3ac8b2b85ba0de87b1fe6ba01f647d32571b787591ba5f6e1cd";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/es-AR/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/es-AR/thunderbird-91.1.2.tar.bz2";
locale = "es-AR";
arch = "linux-i686";
sha256 = "e431f72359b602e4bb784626bda3f4526eda6ee5bddbe51d5c67fb62325da237";
sha256 = "4db46b699d6a65fe482dd8f7bde005b5a4cccfbe7ef777f23f1aa57577d33a33";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/es-ES/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/es-ES/thunderbird-91.1.2.tar.bz2";
locale = "es-ES";
arch = "linux-i686";
sha256 = "3f7ccfb4b86b11583289036792e78d080f558d8d58d1b11929664952076ed152";
sha256 = "0a63e85f6992ce683f35ecfe6f0e10854fd8cada33f8a2e066d5ab140ef8c401";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/et/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/et/thunderbird-91.1.2.tar.bz2";
locale = "et";
arch = "linux-i686";
sha256 = "4d224ed49c4cc300e22add49b79931b753155f5052d7d0572a3b99833351feb3";
sha256 = "522ec0185345054abf61b84dfdb36ce3dbe01c70f5bae11aa17321d18091d759";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/eu/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/eu/thunderbird-91.1.2.tar.bz2";
locale = "eu";
arch = "linux-i686";
sha256 = "84ec201b40080de068c9a2d9ca4effb360102d34970964813f4335187fa0c472";
sha256 = "c4e28df0193175149303d80617f04df4d229d8eee2a75129b315a0c23b22aba5";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/fi/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/fi/thunderbird-91.1.2.tar.bz2";
locale = "fi";
arch = "linux-i686";
sha256 = "633a45dd1dd870dd0d486715328152ee092a5297f95f35ad4ac8c1a0fa59caba";
sha256 = "046b39db1f3f7c4fbe23e93053d43fe81e1b8751bb0558ad1bad3a50ab698673";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/fr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/fr/thunderbird-91.1.2.tar.bz2";
locale = "fr";
arch = "linux-i686";
sha256 = "1a5e668cdfc500652d3429ecddd987993c60032de0dd570c14256642927910e9";
sha256 = "39d15a1aa3f7c3e360e817baeb3747a49ae8f42d1b46208832eccb0107ca1b3b";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/fy-NL/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/fy-NL/thunderbird-91.1.2.tar.bz2";
locale = "fy-NL";
arch = "linux-i686";
sha256 = "86d52dfe0a63c7f066f4d6b677d1b2d1025b60d7ca556f2cce074ac529d49948";
sha256 = "17c971a57634050faa9fe747055a671ac1ae0022a9b06a957eb05f7bb64f31cb";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ga-IE/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ga-IE/thunderbird-91.1.2.tar.bz2";
locale = "ga-IE";
arch = "linux-i686";
sha256 = "0a116945f0ce9f51feb9658756bbb706830709155d21f4d32be5bb9c2ba3924b";
sha256 = "58c17ea964de2b60440bb1a078222ab5b6199b83fa5f2854926b9f0c2a6cb3d3";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/gd/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/gd/thunderbird-91.1.2.tar.bz2";
locale = "gd";
arch = "linux-i686";
sha256 = "ddf29128560baf824d5ab984cc4c219318d62d1f6946c83f1e281bf59dfde046";
sha256 = "4ee45ae272d53f523d2855083f27a0ce005d93ca95d13c2037621a87c294413c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/gl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/gl/thunderbird-91.1.2.tar.bz2";
locale = "gl";
arch = "linux-i686";
sha256 = "28e291c985d8b618bb88a65995f0c523d18a231bd9e3020b743815754d2f761a";
sha256 = "68012e665dea95fd4ce4f76dee0b246d2f94890e5a9b3c797e93ae7d450adc58";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/he/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/he/thunderbird-91.1.2.tar.bz2";
locale = "he";
arch = "linux-i686";
sha256 = "daecfd126e4e7f7eed943c715b7e0e17fb1b17b55963211130a2326bdeaf2fa9";
sha256 = "57125635f8fe2cb50cfe9aecdfe06502cce9c746b346083b329d5e1123d4956d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/hr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hr/thunderbird-91.1.2.tar.bz2";
locale = "hr";
arch = "linux-i686";
sha256 = "f685cf4629e13337795d25f7e75bf2f24abca87e35e41c62b0f48613a2e57365";
sha256 = "f6f28200c32cc2faa4a4e4a49eed5b4343586b52ca123dbce43d32a1c5059835";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/hsb/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hsb/thunderbird-91.1.2.tar.bz2";
locale = "hsb";
arch = "linux-i686";
sha256 = "d9161bb816887e1fc2296dcd942f0fb4736f86bc8a8122f61caeffac75b0c19f";
sha256 = "6290282252b9a61fc7ffb1e29b14f31c87832bd60a066c73f9966a10f75ac327";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/hu/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hu/thunderbird-91.1.2.tar.bz2";
locale = "hu";
arch = "linux-i686";
sha256 = "80e69465e6afd1b50a695b30fcfdc13ad2c051e75fcec666276935874e79d5fe";
sha256 = "fbd6be01153d67870565fc7230fba7b4a1f6151eeda54e84008b0943acfc4564";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/hy-AM/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/hy-AM/thunderbird-91.1.2.tar.bz2";
locale = "hy-AM";
arch = "linux-i686";
sha256 = "a1aff21e7b07bcc20685d906d69d6b2515983263d90d2a2533e58d6c74046fbf";
sha256 = "3bfb7979fbfbf0cbdecb8b8030dd209a6e18020ff34a30223ce893c0cfe0a282";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/id/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/id/thunderbird-91.1.2.tar.bz2";
locale = "id";
arch = "linux-i686";
sha256 = "e911dd870b7a33d50278597a6cd1970c15578716f97a1ca90bac2813c4aabcb6";
sha256 = "4a8801e97b001c0e30ffc4f4a7c712017c1b1a96bf226ddc341728b22599920d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/is/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/is/thunderbird-91.1.2.tar.bz2";
locale = "is";
arch = "linux-i686";
sha256 = "ec91be584ef82def938d295925b1231f7ea50bf9e171d90ce74ae575970c5e5b";
sha256 = "871a6393a716c4c8b2255a8903a4584c8ad4a7f5e1423550d3d96b9866929433";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/it/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/it/thunderbird-91.1.2.tar.bz2";
locale = "it";
arch = "linux-i686";
sha256 = "971d7ff2f20926b9148ac6386f2d5824a1443b3a4618e67cf4c30c14f126d711";
sha256 = "8919dbd9e7b0155de288322f10bbb664189d03c1442657d07d577b33cfce0929";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ja/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ja/thunderbird-91.1.2.tar.bz2";
locale = "ja";
arch = "linux-i686";
sha256 = "17526869e3234f885f2078c98a8442b2dd5a019a529d31e0bb6df5b6be24be8b";
sha256 = "42e1e1a2b55c97b05ec5424f6318d286f7fa497276ff745c6c221ee2b4c072cd";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ka/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ka/thunderbird-91.1.2.tar.bz2";
locale = "ka";
arch = "linux-i686";
sha256 = "945beaab6b2bac56b13f7329b98fe6bf621fa9f3c022b3568dfa43bdce6e422c";
sha256 = "4da9353667f109938ebc6740039a915f67d518c109915c1ed42f1552c3be719d";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/kab/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/kab/thunderbird-91.1.2.tar.bz2";
locale = "kab";
arch = "linux-i686";
sha256 = "39b6835112c58cba3b5e4b2f6964dbd9982c8146f0290aed9b13b10ae159bdd5";
sha256 = "87c960236895eb1af70d2f50a839e55befc6486c4883d786b14a67e569c396ae";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/kk/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/kk/thunderbird-91.1.2.tar.bz2";
locale = "kk";
arch = "linux-i686";
sha256 = "a5c4fcd5d4e91c52814b2e8c6b0b239e0c430ea6169b351b33beb2b0736fa94b";
sha256 = "38fdc0aa8fe98d83e52cf266776ebe7a52d7c80e98bc2372afcdeaf709ee8a06";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ko/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ko/thunderbird-91.1.2.tar.bz2";
locale = "ko";
arch = "linux-i686";
sha256 = "97e5ae5cd2def5410de5b8a3194f77c53fc4ecb17572e9925a4bff56cb2ca73e";
sha256 = "c960038e1764cc3a0203e2cdf8349ecfee951dbeb470cb58b66c66f0542ee790";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/lt/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/lt/thunderbird-91.1.2.tar.bz2";
locale = "lt";
arch = "linux-i686";
sha256 = "2fc8d9d3fe286efa337d98d033b43d9d0b1c7fec15e566ed6ae98272df6adbb3";
sha256 = "6387197f1fa9095d64ef3e7c73272f0e0a4a7b857d4be29899bfe2c7aa88a5ec";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/lv/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/lv/thunderbird-91.1.2.tar.bz2";
locale = "lv";
arch = "linux-i686";
sha256 = "3a480801c29e7661b73a01d1d29455bbaa4f228a749da467400ebe0c973c5150";
sha256 = "66021a590bb89b9fb50c90bc07788cbbb3d1acaceac5ebf562805d39bb59be3c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ms/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ms/thunderbird-91.1.2.tar.bz2";
locale = "ms";
arch = "linux-i686";
sha256 = "143e04a636d4e3df7ebab4a26419f0df6131a911c7b158848a1a0f4a51b8c6f5";
sha256 = "a120efceac13b976b77a49dd2883f66a03c13f3243a53b66afbb372b87c15b16";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/nb-NO/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/nb-NO/thunderbird-91.1.2.tar.bz2";
locale = "nb-NO";
arch = "linux-i686";
sha256 = "4f3f731b0a9b2dd7496b9cf9e3df7c54924f821b8afd404848b8bee4c37db7c6";
sha256 = "ac5f404b3635b9b327458eb461148d94b52501621e78f2fafeff09c019651948";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/nl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/nl/thunderbird-91.1.2.tar.bz2";
locale = "nl";
arch = "linux-i686";
sha256 = "d6b758c9a5aff775088ebfe3c696d6275ecb2b2a4b7129ab3b79b23fe773e49a";
sha256 = "f9dbbb9789a81ee6a40756039afefe542e1369b5de15d4ea728bd5fb5326c728";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/nn-NO/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/nn-NO/thunderbird-91.1.2.tar.bz2";
locale = "nn-NO";
arch = "linux-i686";
sha256 = "89bdee0a436d53cba1acddc9187b8bf7036d3f8b2d6f8a60a1f7d1e7aae4687a";
sha256 = "36d0cf0f3132f5365a9cfe5b2175ac6f42dbe25c41a03fbd177509b2cf13abce";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/pa-IN/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pa-IN/thunderbird-91.1.2.tar.bz2";
locale = "pa-IN";
arch = "linux-i686";
sha256 = "9def18033f40abd87764ee12a0c9a104df9ffbf5813b398251d86b26676aa57a";
sha256 = "776c3c215fd0e66eb81c2c91855233c4a7476aad534de555a6317b6a4f664b67";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/pl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pl/thunderbird-91.1.2.tar.bz2";
locale = "pl";
arch = "linux-i686";
sha256 = "e69e2f319a7691af209e517f7624a10e942c052fbff40cbe3e0cf057d5e8ce60";
sha256 = "ba2aa2dda6c477f3ecb06d0f1d223928adc9a82e46432055783741064cf1e8f6";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/pt-BR/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pt-BR/thunderbird-91.1.2.tar.bz2";
locale = "pt-BR";
arch = "linux-i686";
sha256 = "ce0a025976a058e01dcec3c7c22005cc8061dd118cbb5766e34e1fa2e2d24ee6";
sha256 = "314023714b6babde392b8a30d11e67fe5af9f47e2738d63a6231aa72e6e0b792";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/pt-PT/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/pt-PT/thunderbird-91.1.2.tar.bz2";
locale = "pt-PT";
arch = "linux-i686";
sha256 = "0e46088f48739f26d94f92aeef401f136006f0cfc67b9445573539f08e9175fa";
sha256 = "ea5895b796bbdf9ed5be1277dc0f32c70abb46f37a7d48ecacf39e7b7a5af082";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/rm/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/rm/thunderbird-91.1.2.tar.bz2";
locale = "rm";
arch = "linux-i686";
sha256 = "7efd235fd88601a74d2e6a2d9e481fbb011e4a3695128997754d97917a94669d";
sha256 = "d295f9390b7dedec8592751142a42bc134ff3fca5a228d084eb176677c15c4bc";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ro/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ro/thunderbird-91.1.2.tar.bz2";
locale = "ro";
arch = "linux-i686";
sha256 = "9ada46d39f4eedb097b177d2c443dccc05af71a12f370b202aa0bf259c0cd7c5";
sha256 = "b4504dd29ce68009c78b7194914c20d41024f92420564d6f4f34369717a49a90";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/ru/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/ru/thunderbird-91.1.2.tar.bz2";
locale = "ru";
arch = "linux-i686";
sha256 = "0e4d029183f9125a4d1efe81cba348155336a37267db346436698430808a3da6";
sha256 = "a8ba363a9bee130d05d028a84bfc10e8614ac3e3ee7e747d4987691d25423bb0";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/sk/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sk/thunderbird-91.1.2.tar.bz2";
locale = "sk";
arch = "linux-i686";
sha256 = "a4712e2e477bb96bcb69eb8ea96200f81b1eb829db3675844380f68b1d264915";
sha256 = "347a0e3e794bebc570aac65005edef1c311d7685d9b7ee4559121945cec1a40e";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/sl/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sl/thunderbird-91.1.2.tar.bz2";
locale = "sl";
arch = "linux-i686";
sha256 = "46f4f3dfe12614ceb8a249a4d38df2b40728082ce0448af03c2949f0d81d1969";
sha256 = "1ae4c2615d9fc4e6b1ab270988de63ff425779945684811a1c9093940e7a9d0a";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/sq/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sq/thunderbird-91.1.2.tar.bz2";
locale = "sq";
arch = "linux-i686";
sha256 = "c5209bea51a081b6707ee79640ab663b3975af8c1bb26df05e480f5ad6dba723";
sha256 = "207fb12cf9415e5a66bee33ee2f50adb970343b90bdde2c00c5b149e9ec829ad";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/sr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sr/thunderbird-91.1.2.tar.bz2";
locale = "sr";
arch = "linux-i686";
sha256 = "8cb6bb676a7143f10d5c666e41398b4045f32ca13bfd6a322d308f6b05dda441";
sha256 = "45e7cb91506dfe353d86b8c6ae172b4a925f6b9ee631b542bc9a0fc77315d482";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/sv-SE/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/sv-SE/thunderbird-91.1.2.tar.bz2";
locale = "sv-SE";
arch = "linux-i686";
sha256 = "33736665f7c38a62ed65340acead5435599dcbb8c7892ce939664662168078cf";
sha256 = "634b1581237baa140d8711458cff99e979b3e33316b24925c6e5700da9603127";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/th/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/th/thunderbird-91.1.2.tar.bz2";
locale = "th";
arch = "linux-i686";
sha256 = "0fd5af0ffc983f58c85756274d9d94f26a44c32aff3852b22ac0554375b8eac3";
sha256 = "a09336e75d270e9fdfaefd4f9e90cddf1f5135602998bfdd9a198e3f1544838c";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/tr/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/tr/thunderbird-91.1.2.tar.bz2";
locale = "tr";
arch = "linux-i686";
sha256 = "6f8318a023062b306a64cc615bbffb96d06b608c625a0134f28d60629f5986c8";
sha256 = "37874416c7bdd2c2b4303a55d14a82ce55a7d8cc6d51bc3b3d215489be3bc055";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/uk/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/uk/thunderbird-91.1.2.tar.bz2";
locale = "uk";
arch = "linux-i686";
sha256 = "fede0c129370c93df5cb9e9f5e9bef69c6ad6bb96db11bdb520c743183ea2b41";
sha256 = "faa0c411431a9b27a7c58c0c394804d3125e4f4e927387df8580c37738c2db44";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/uz/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/uz/thunderbird-91.1.2.tar.bz2";
locale = "uz";
arch = "linux-i686";
sha256 = "23db48eaf9101a4a838487ab4f31d7504036b0204a1624e0ac750bba6de24437";
sha256 = "095e56a0fa0e85bebe9bc0044fc13f5da67c7267461b27fb8024947da3f423ba";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/vi/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/vi/thunderbird-91.1.2.tar.bz2";
locale = "vi";
arch = "linux-i686";
sha256 = "55ec78e15967365bc41fc2b1469af78cc9300a0365587ec72463e9e97958020b";
sha256 = "cae3582b504a38497dc63ba25d4be45e450b14cb588a9f52919d0fb4a5a04446";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/zh-CN/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/zh-CN/thunderbird-91.1.2.tar.bz2";
locale = "zh-CN";
arch = "linux-i686";
sha256 = "008216b04c79fb96686a747f9756caa2cc02aa052e7e682b0ba9bef0138d2ef6";
sha256 = "58d542c3ceb5e36a83e424250c171477543bcd046f325c89b06f76090410b633";
}
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.1/linux-i686/zh-TW/thunderbird-91.1.1.tar.bz2";
{ url = "http://archive.mozilla.org/pub/thunderbird/releases/91.1.2/linux-i686/zh-TW/thunderbird-91.1.2.tar.bz2";
locale = "zh-TW";
arch = "linux-i686";
sha256 = "bb222c6f9c8e5ed7681fa920ff6bb6e9d1262e16efb994dd5976e575e4f54a7c";
sha256 = "13dfa3e7a8b5a69ab9072c21eb22373ff36bd54c9c7c39c3480681bd911043c0";
}
];
}

View file

@ -10,12 +10,12 @@ in
rec {
thunderbird = common rec {
pname = "thunderbird";
version = "91.1.1";
version = "91.1.2";
application = "comm/mail";
binaryName = pname;
src = fetchurl {
url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
sha512 = "2da102f9ec42489fc785ccdabcc7fdbc826f2df5e8e76c65866a44a221e762f59647ea265fe4907c18f0d3f1e04199e809235b4587ea17bdc1155e829f57ff2f";
sha512 = "f211ce2469f60862b1d641b5e165292d98db53695ab715090034c1ee2be7b04931f8e5e856b08b0c8c789e4d98df291d59283c257a38b556c0b4b0b63baa539f";
};
patches = [
];

View file

@ -4,11 +4,11 @@ with lib;
stdenv.mkDerivation rec {
pname = "mpop";
version = "1.4.13";
version = "1.4.14";
src = fetchurl {
url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
sha256 = "sha256-s0mEZsZbZQrdGm55IJsnuoY3VnOkXJalknvtaFoyfcE=";
sha256 = "046wbglvry54id9wik6c020fs09piv3gig3z0nh5nmyhsxjw4i18";
};
nativeBuildInputs = [ pkg-config ];

View file

@ -21,13 +21,13 @@
mkDerivation rec {
pname = "nextcloud-client";
version = "3.3.4";
version = "3.3.5";
src = fetchFromGitHub {
owner = "nextcloud";
repo = "desktop";
rev = "v${version}";
sha256 = "sha256-9RumsGpPHWa3EQXobBC3RcDUqwHCKiff+ngpTXKLyaE=";
sha256 = "sha256-kqNN9P0G/Obi/8PStmLxImQdqkhLnJoFZ7dLpqe11TI=";
};
patches = [

View file

@ -1,52 +1,52 @@
{
lib,
buildPythonApplication,
substituteAll,
fetchFromGitHub,
isPy3k,
colorama,
flask,
flask-httpauth,
flask-socketio,
stem,
psutil,
pyqt5,
pycrypto,
pyside2,
pytestCheckHook,
qrcode,
qt5,
requests,
unidecode,
tor,
obfs4,
{ lib
, buildPythonApplication
, substituteAll
, fetchFromGitHub
, isPy3k
, colorama
, flask
, flask-httpauth
, flask-socketio
, stem
, psutil
, pyqt5
, pycrypto
, pynacl
, pyside2
, pytestCheckHook
, qrcode
, qt5
, requests
, unidecode
, tor
, obfs4
}:
let
version = "2.3.3";
version = "2.4";
src = fetchFromGitHub {
owner = "micahflee";
owner = "onionshare";
repo = "onionshare";
rev = "v${version}";
sha256 = "sha256-wU2020RNXlwJ2y9uzcLxIX4EECev1Z9YvNyiBalLj/Y=";
sha256 = "sha256-Lclm7mIkaAkQpWcNILTRJtLA43dpiyHtWAeHS2r3+ZQ=";
};
meta = with lib; {
description = "Securely and anonymously send and receive files";
longDescription = ''
OnionShare is an open source tool for securely and anonymously sending
and receiving files using Tor onion services. It works by starting a web
server directly on your computer and making it accessible as an
unguessable Tor web address that others can load in Tor Browser to
download files from you, or upload files to you. It doesn't require
setting up a separate server, using a third party file-sharing service,
or even logging into an account.
OnionShare is an open source tool for securely and anonymously sending
and receiving files using Tor onion services. It works by starting a web
server directly on your computer and making it accessible as an
unguessable Tor web address that others can load in Tor Browser to
download files from you, or upload files to you. It doesn't require
setting up a separate server, using a third party file-sharing service,
or even logging into an account.
Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly
any other way people typically send files to each other, when you use
OnionShare you don't give any companies access to the files that you're
sharing. So long as you share the unguessable web address in a secure way
(like pasting it in an encrypted messaging app), no one but you and the
person you're sharing with can access the files.
Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly
any other way people typically send files to each other, when you use
OnionShare you don't give any companies access to the files that you're
sharing. So long as you share the unguessable web address in a secure way
(like pasting it in an encrypted messaging app), no one but you and the
person you're sharing with can access the files.
'';
homepage = "https://onionshare.org/";
@ -54,8 +54,19 @@ let
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lourkeur ];
};
stem' = stem.overrideAttrs (_: rec {
version = "1.8.1";
in rec {
src = fetchFromGitHub {
owner = "onionshare";
repo = "stem";
rev = version;
sha256 = "Dzpvx7CgAr5OtGmfubWAYDLqq5LkGqcwjr3bxpfL/3A=";
};
});
in
rec {
onionshare = buildPythonApplication {
pname = "onionshare-cli";
inherit version meta;
@ -74,9 +85,10 @@ in rec {
flask
flask-httpauth
flask-socketio
stem
stem'
psutil
pycrypto
pynacl
requests
unidecode
];
@ -98,6 +110,7 @@ in rec {
disabledTests = [
"test_firefox_like_behavior"
"test_if_unmodified_since"
"test_get_tor_paths_linux" # expects /usr instead of /nix/store
];
};

View file

@ -97,7 +97,7 @@ in stdenv.mkDerivation {
include <abstractions/nameservice>
include <abstractions/ssl_certs>
include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([
curl libevent openssl pcre zlib
curl libevent openssl pcre zlib libnatpmp miniupnpc
] ++ lib.optionals enableSystemd [ systemd ]
++ lib.optionals stdenv.isLinux [ inotify-tools ]
)}"
@ -116,6 +116,7 @@ in stdenv.mkDerivation {
'';
passthru.tests = {
apparmor = nixosTests.transmission; # starts the service with apparmor enabled
smoke-test = nixosTests.bittorrent;
};

View file

@ -26,13 +26,13 @@
let
pname = "pcloud";
version = "1.9.5";
code = "XZy4VwXZjkvoMGM3x6kCTkIGLFYVKjqKbefX";
version = "1.9.7";
code = "XZ0FAtXZNxFJbda6KhLejU9tKAg4N0TEqx3V";
# Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
src = fetchzip {
url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${pname}-${version}.zip";
hash = "sha256-GuO4wsSRT6WMlqYs2X+5oA7CykHb/NmhZ7UGA1FA6y4=";
hash = "sha256-6eMRFuZOLcoZd2hGw7QV+kAmzE5lK8uK6ZpGs4n7/zw=";
};
appimageContents = appimageTools.extractType2 {

View file

@ -147,10 +147,6 @@ stdenv.mkDerivation rec {
ln -s $out/share/desktopeditors/DesktopEditors $out/bin/DesktopEditors
wrapProgram $out/bin/DesktopEditors \
--set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb \
--set QTCOMPOSE ${xorg.libX11.out}/share/X11/locale
substituteInPlace $out/share/applications/onlyoffice-desktopeditors.desktop \
--replace "/usr/bin/onlyoffice-desktopeditor" "$out/bin/DesktopEditor"
@ -158,7 +154,13 @@ stdenv.mkDerivation rec {
'';
preFixup = ''
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
--set QT_XKB_CONFIG_ROOT "${xkeyboard_config}/share/X11/xkb" \
--set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" \
--set QT_QPA_PLATFORM "xcb"
# the bundled version of qt does not support wayland
)
'';
passthru.updateScript = ./update.sh;

View file

@ -50,6 +50,6 @@ in stdenv.mkDerivation {
description = "Vendor and platform neutral SDR support library";
license = licenses.boost;
maintainers = with maintainers; [ markuskowa ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View file

@ -6,13 +6,13 @@
mkDerivation rec {
pname = "stellarium";
version = "0.21.1";
version = "0.21.2";
src = fetchFromGitHub {
owner = "Stellarium";
repo = "stellarium";
rev = "v${version}";
sha256 = "sha256-dAdB57phD5phl8dQZIHtqtnA2LZqR+JoXTzIBtqBevA=";
sha256 = "sha256-bh00o++l3sqELX5kgRhiCcQOLVqvjEyEMcJTnnVPNU8=";
};
nativeBuildInputs = [ cmake perl wrapQtAppsHook ];

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "star";
version = "2.7.8a";
version = "2.7.9a";
src = fetchFromGitHub {
repo = "STAR";
owner = "alexdobin";
rev = version;
sha256 = "sha256-2qqdCan67bcoUGgr5ro2LGGHDAyS/egTrT8pWX1chX0=";
sha256 = "sha256-p1yaIbSGu8K5AkqJj0BAzuoWsXr25eCNoQmLXYQeg4E=";
};
sourceRoot = "source/source";
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
description = "Spliced Transcripts Alignment to a Reference";
homepage = "https://github.com/alexdobin/STAR";
license = licenses.gpl3Plus;
platforms = platforms.linux;
platforms = [ "x86_64-linux" ];
maintainers = [ maintainers.arcadio ];
};
}

View file

@ -5,13 +5,13 @@
stdenv.mkDerivation {
pname = "symbiyosys";
version = "2020.08.22";
version = "2021.09.13";
src = fetchFromGitHub {
owner = "YosysHQ";
repo = "SymbiYosys";
rev = "33b0bb7d836fe2a73dc7b10587222f2a718beef4";
sha256 = "03rbrbwsji1sqcp2yhgbc0fca04zsryv2g4izjhdzv64nqjzjyhn";
rev = "15278f13467bea24a7300e23ebc5555b9261facf";
sha256 = "sha256-gp9F4MaGgD6XfD7AjuB/LmMVcxFurqWHEiXPeyzlQzk=";
};
buildInputs = [ ];

View file

@ -19,13 +19,13 @@ with lib;
stdenv.mkDerivation rec {
pname = "z3";
version = "4.8.10";
version = "4.8.12";
src = fetchFromGitHub {
owner = "Z3Prover";
repo = pname;
rev = "z3-${version}";
sha256 = "1w1ym2l0gipvjx322npw7lhclv8rslq58gnj0d9i96masi3gbycf";
sha256 = "1wbcdc7h3mag8infspvxxja2hiz4igjwxzvss2kqar1rjj4ivfx0";
};
nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;

View file

@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
};
installPhase = ''
mkdir -p $out/lib/node_modules/three
cp -r build version $out/lib/node_modules/three
mkdir -p "$out/lib/node_modules/three/"
cp version "$out/lib/node_modules/three"
cp -r build "$out/lib/node_modules/three/$(cat version)"
'';
}

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