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 Note all JDKs passthru `home`, so if your application requires
environment variables like `JAVA_HOME` being set, that can be done in a environment variables like `JAVA_HOME` being set, that can be done in a
generic fashion with the `--set` argument of `makeWrapper`: generic fashion with the `--set` argument of `makeWrapper`:

View file

@ -197,6 +197,30 @@ rec {
*/ */
toYAML = {}@args: toJSON args; 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`. /* Pretty print a value, akin to `builtins.trace`.
* Should probably be a builtin as well. * Should probably be a builtin as well.
@ -208,7 +232,8 @@ rec {
allowPrettyValues ? false, allowPrettyValues ? false,
/* If this option is true, the output is indented with newlines for attribute sets and lists */ /* If this option is true, the output is indented with newlines for attribute sets and lists */
multiline ? true multiline ? true
}@args: let }@args:
let
go = indent: v: with builtins; go = indent: v: with builtins;
let isPath = v: typeOf v == "path"; let isPath = v: typeOf v == "path";
introSpace = if multiline then "\n${indent} " else " "; introSpace = if multiline then "\n${indent} " else " ";

View file

@ -240,6 +240,11 @@ in mkLicense lset) ({
fullName = "CeCILL Free Software License Agreement v2.0"; fullName = "CeCILL Free Software License Agreement v2.0";
}; };
cecill21 = {
spdxId = "CECILL-2.1";
fullName = "CeCILL Free Software License Agreement v2.1";
};
cecill-b = { cecill-b = {
spdxId = "CECILL-B"; spdxId = "CECILL-B";
fullName = "CeCILL-B Free Software License Agreement"; 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 ]}"; baseMsg = "The option `${showOption (prefix ++ firstDef.prefix)}' does not exist. Definition values:${showDefs [ firstDef ]}";
in in
if attrNames options == [ "_module" ] if attrNames options == [ "_module" ]
then throw '' then
${baseMsg} let
optionName = showOption prefix;
in
if optionName == ""
then throw ''
${baseMsg}
However there are no options defined in `${showOption prefix}'. Are you sure you've It seems as if you're trying to declare an option by placing it into `config' rather than `options'!
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}
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 throw baseMsg
else null; else null;

View file

@ -247,7 +247,9 @@ rec {
showDefs = defs: concatMapStrings (def: showDefs = defs: concatMapStrings (def:
let let
# Pretty print the value for display, if successful # 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 # Split it into its lines
lines = filter (v: ! isList v) (builtins.split "\n" prettyEval.value); lines = filter (v: ! isList v) (builtins.split "\n" prettyEval.value);
# Only display the first 5 lines, and indent them for better visibility # 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 = { testToPrettyMultiline = {
expr = mapAttrs (const (generators.toPretty { })) rec { expr = mapAttrs (const (generators.toPretty { })) rec {
list = [ 3 4 [ false ] ]; list = [ 3 4 [ false ] ];

View file

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

View file

@ -437,7 +437,7 @@ printBuildSummary
<> Text.pack (formatTime defaultTimeLocale "%Y-%m-%d %H:%M UTC" fetchTime) <> 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 numSummary = statusToNumSummary summary
jobsByState predicate = Map.filter (predicate . worstState) summary jobsByState predicate = Map.filter (predicate . worstState) summary
worstState = foldl' min Success . fmap state . summaryBuilds worstState = foldl' min Success . fmap state . summaryBuilds
@ -464,8 +464,8 @@ printBuildSummary
if' (isNothing mergeableJob) "No `mergeable` job found." <> if' (isNothing mergeableJob) "No `mergeable` job found." <>
if' (isNothing maintainedJob) "No `maintained` job found." <> if' (isNothing maintainedJob) "No `maintained` job found." <>
if' (Unfinished > maybe Success worstState mergeableJob) "`mergeable` jobset failed." <> 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 "x86_64-linux") > 100) "Too many outstanding jobs on x86_64-linux." <>
if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too much outstanding jobs on aarch64-linux." if' (outstandingJobs (Platform "aarch64-linux") > 100) "Too many outstanding jobs on aarch64-linux."
if' p e = if p then [e] else mempty if' p e = if p then [e] else mempty
outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m outstandingJobs platform | Table m <- numSummary = Map.findWithDefault 0 (platform, Unfinished) m
maintainedJob = Map.lookup "maintained" summary 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}..." 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" 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 # Update stackage, Hackage hashes, and regenerate Haskell package set
echo "Updating Stackage..." echo "Updating Stackage..."
./maintainers/scripts/haskell/update-stackage.sh --do-commit ./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 ./maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit
# Push these new commits to the haskell-updates branch # 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 git push
# Open new PR # 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 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. 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 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" 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: //") username=$(grep "^username:" ~/.cabal/config | sed "s/^username: //")
password_command=$(grep "^password-command:" ~/.cabal/config | sed "s/^password-command: //") 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 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> <para>
<link xlink:href="https://github.com/xrelkd/clipcat/">clipcat</link>, <link xlink:href="https://github.com/xrelkd/clipcat/">clipcat</link>,
an X11 clipboard manager written in Rust. Available at 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> </para>
</listitem> </listitem>
<listitem> <listitem>
@ -1051,6 +1059,16 @@ Superuser created successfully.
changelog</link>. changelog</link>.
</para> </para>
</listitem> </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> </itemizedlist>
</section> </section>
<section xml:id="sec-release-21.11-notable-changes"> <section xml:id="sec-release-21.11-notable-changes">
@ -1070,6 +1088,40 @@ Superuser created successfully.
<literal>linuxPackages_latest</literal>) remain untouched. <literal>linuxPackages_latest</literal>) remain untouched.
</para> </para>
</listitem> </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> <listitem>
<para> <para>
The setting The setting
@ -1235,6 +1287,73 @@ Superuser created successfully.
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</listitem> </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> <listitem>
<para> <para>
The 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). - [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 - [clipcat](https://github.com/xrelkd/clipcat/), an X11 clipboard manager written in Rust. Available at [services.clipcat](options.html#opt-services.clipcat.enable).
pt-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). - [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 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). 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} ## 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. - 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 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. - 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. 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 `myhostname`, but before `dns` should use the default priority
- NSS modules which should come after `dns` should use mkAfter. - 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 [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. - 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 , # Ignored
config ? null config ? null
, # Nixpkgs, for qemu, lib and more , # Nixpkgs, for qemu, lib and more
pkgs pkgs, lib
, # !!! See comment about args in lib/modules.nix , # !!! See comment about args in lib/modules.nix
specialArgs ? {} specialArgs ? {}
, # NixOS configuration to add to the VMs , # NixOS configuration to add to the VMs
extraConfigurations ? [] extraConfigurations ? []
}: }:
with pkgs.lib; with lib;
with import ../lib/qemu-flags.nix { inherit pkgs; };
rec { rec {
@ -93,8 +92,9 @@ rec {
"${config.networking.hostName}\n")); "${config.networking.hostName}\n"));
virtualisation.qemu.options = virtualisation.qemu.options =
forEach interfacesNumbered let qemu-common = import ../lib/qemu-common.nix { inherit lib pkgs; };
({ fst, snd }: qemuNICFlags snd fst m.snd); 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. # QEMU-related utilities shared between various Nix expressions.
{ pkgs }: { lib, pkgs }:
let let
zeroPad = n: zeroPad = n:
pkgs.lib.optionalString (n < 16) "0" + lib.optionalString (n < 16) "0" +
(if n > 255 (if n > 255
then throw "Can't have more than 255 nets or nodes!" then throw "Can't have more than 255 nets or nodes!"
else pkgs.lib.toHexString n); else lib.toHexString n);
in in
rec { rec {
@ -14,7 +14,7 @@ rec {
qemuNICFlags = nic: net: machine: qemuNICFlags = nic: net: machine:
[ "-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac 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" qemuSerialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"

View file

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

View file

@ -6,7 +6,11 @@ let
cfg = config.documentation; 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 /* For the purpose of generating docs, evaluate options with each derivation
in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}". in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".

View file

@ -43,6 +43,9 @@ in {
The format is described in The format is described in
<citerefentry><refentrytitle>systemd.time</refentrytitle> <citerefentry><refentrytitle>systemd.time</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>. <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; { 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.)" 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.pruneNames != []) "findutils locate does not support pruning by directory component"
++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts"; ++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
@ -238,7 +253,7 @@ in {
serviceConfig.ReadWritePaths = dirOf cfg.output; serviceConfig.ReadWritePaths = dirOf cfg.output;
}; };
systemd.timers.update-locatedb = systemd.timers.update-locatedb = mkIf (cfg.interval != "never")
{ description = "Update timer for locate database"; { description = "Update timer for locate database";
partOf = [ "update-locatedb.service" ]; partOf = [ "update-locatedb.service" ];
wantedBy = [ "timers.target" ]; wantedBy = [ "timers.target" ];

View file

@ -963,6 +963,7 @@
./services/web-apps/calibre-web.nix ./services/web-apps/calibre-web.nix
./services/web-apps/convos.nix ./services/web-apps/convos.nix
./services/web-apps/cryptpad.nix ./services/web-apps/cryptpad.nix
./services/web-apps/dex.nix
./services/web-apps/discourse.nix ./services/web-apps/discourse.nix
./services/web-apps/documize.nix ./services/web-apps/documize.nix
./services/web-apps/dokuwiki.nix ./services/web-apps/dokuwiki.nix
@ -990,6 +991,7 @@
./services/web-apps/nextcloud.nix ./services/web-apps/nextcloud.nix
./services/web-apps/nexus.nix ./services/web-apps/nexus.nix
./services/web-apps/node-red.nix ./services/web-apps/node-red.nix
./services/web-apps/pict-rs.nix
./services/web-apps/plantuml-server.nix ./services/web-apps/plantuml-server.nix
./services/web-apps/plausible.nix ./services/web-apps/plausible.nix
./services/web-apps/pgpkeyserver-lite.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 # the service - therefore we sleep in a loop until we can ping the
# endpoint. # endpoint.
preStart = '' 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 script = let

View file

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

View file

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

View file

@ -20,10 +20,16 @@ let
++ optional cfg.scanOnLowSignal ''bgscan="simple:30:-70:3600"'' ++ optional cfg.scanOnLowSignal ''bgscan="simple:30:-70:3600"''
++ optional (cfg.extraConfig != "") cfg.extraConfig); ++ optional (cfg.extraConfig != "") cfg.extraConfig);
configIsGenerated = with cfg;
networks != {} || extraConfig != "" || userControlled.enable;
# the original configuration file
configFile = configFile =
if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable if configIsGenerated
then pkgs.writeText "wpa_supplicant.conf" generatedConfig then pkgs.writeText "wpa_supplicant.conf" generatedConfig
else "/etc/wpa_supplicant.conf"; 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 # Creates a network block for wpa_supplicant.conf
mkNetwork = ssid: opts: mkNetwork = ssid: opts:
@ -56,8 +62,8 @@ let
let let
deviceUnit = optional (iface != null) "sys-subsystem-net-devices-${utils.escapeSystemdPath iface}.device"; deviceUnit = optional (iface != null) "sys-subsystem-net-devices-${utils.escapeSystemdPath iface}.device";
configStr = if cfg.allowAuxiliaryImperativeNetworks configStr = if cfg.allowAuxiliaryImperativeNetworks
then "-c /etc/wpa_supplicant.conf -I ${configFile}" then "-c /etc/wpa_supplicant.conf -I ${finalConfig}"
else "-c ${configFile}"; else "-c ${finalConfig}";
in { in {
description = "WPA Supplicant instance" + optionalString (iface != null) " for interface ${iface}"; description = "WPA Supplicant instance" + optionalString (iface != null) " for interface ${iface}";
@ -69,12 +75,25 @@ let
stopIfChanged = false; stopIfChanged = false;
path = [ package ]; path = [ package ];
serviceConfig.RuntimeDirectory = "wpa_supplicant";
serviceConfig.RuntimeDirectoryMode = "700";
serviceConfig.EnvironmentFile = mkIf (cfg.environmentFile != null)
(builtins.toString cfg.environmentFile);
script = script =
'' ''
if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]; then ${optionalString configIsGenerated ''
echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead." if [ -f /etc/wpa_supplicant.conf ]; then
fi 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}" 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 { networks = mkOption {
type = types.attrsOf (types.submodule { type = types.attrsOf (types.submodule {
options = { options = {
@ -165,10 +222,14 @@ in {
The network's pre-shared key in plaintext defaulting The network's pre-shared key in plaintext defaulting
to being a network without any authentication. to being a network without any authentication.
Be aware that these will be written to the nix store <warning><para>
in plaintext! 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 The network's pre-shared key in hex defaulting
to being a network without any authentication. 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 = '' example = ''
eap=PEAP eap=PEAP
identity="user@example.com" identity="user@example.com"
password="secret" password="@EXAMPLE_PASSWORD@"
''; '';
description = '' description = ''
Use this option to configure advanced authentication methods like EAP. Use this option to configure advanced authentication methods like EAP.
@ -242,7 +310,15 @@ in {
</citerefentry> </citerefentry>
for example configurations. 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 = {}; default = {};
example = literalExample '' example = literalExample ''
{ echelon = { # SSID with no spaces or special characters { 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 "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 "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 kwallet-pam
kwalletmanager kwalletmanager
kwayland kwayland
kwayland-integration
kwidgetsaddons kwidgetsaddons
kxmlgui kxmlgui
kxmlrpcclient kxmlrpcclient

View file

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

View file

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

View file

@ -10,10 +10,10 @@
{ config, lib, pkgs, options, ... }: { config, lib, pkgs, options, ... }:
with lib; with lib;
with import ../../lib/qemu-flags.nix { inherit pkgs; };
let let
qemu-common = import ../../lib/qemu-common.nix { inherit lib pkgs; };
cfg = config.virtualisation; cfg = config.virtualisation;
@ -75,7 +75,7 @@ let
in in
"-drive ${driveOpts} ${device}"; "-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. # Creates a device name from a 1-based a numerical index, e.g.
@ -108,39 +108,44 @@ let
'' ''
#! ${pkgs.runtimeShell} #! ${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 if ! test -e "$NIX_DISK_IMAGE"; then
${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" \ ${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" \
${toString config.virtualisation.diskSize}M || exit 1 ${toString config.virtualisation.diskSize}M
fi fi
# Create a directory for storing temporary data of the running VM. # 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) TMPDIR=$(mktemp -d nix-vm.XXXXXXXXXX --tmpdir)
fi fi
# Create a directory for exchanging data with the VM. # 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. # Create a writable copy/snapshot of the boot disk.
# A writable boot disk can be booted from automatically. # 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 # VM needs writable EFI vars
if ! test -e "$NIX_EFI_VARS"; then if ! test -e "$NIX_EFI_VARS"; then
cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS" || exit 1 cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS"
chmod 0644 "$NIX_EFI_VARS" || exit 1 chmod 0644 "$NIX_EFI_VARS"
fi fi
'' else ""} ''}
'' else ""} ''}
cd $TMPDIR cd "$TMPDIR"
idx=0
${lib.optionalString (cfg.emptyDiskImages != []) "idx=0"}
${flip concatMapStrings cfg.emptyDiskImages (size: '' ${flip concatMapStrings cfg.emptyDiskImages (size: ''
if ! test -e "empty$idx.qcow2"; then if ! test -e "empty$idx.qcow2"; then
${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M" ${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M"
@ -149,17 +154,18 @@ let
'')} '')}
# Start QEMU. # Start QEMU.
exec ${qemuBinary qemu} \ exec ${qemu-common.qemuBinary qemu} \
-name ${config.system.name} \ -name ${config.system.name} \
-m ${toString config.virtualisation.memorySize} \ -m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \ -smp ${toString config.virtualisation.cores} \
-device virtio-rng-pci \ -device virtio-rng-pci \
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \ ${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \ ${concatStringsSep " \\\n "
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ (mapAttrsToList
-virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \ (tag: share: "-virtfs local,path=${share.source},security_model=none,mount_tag=${tag}")
config.virtualisation.sharedDirectories)} \
${drivesCmdLine config.virtualisation.qemu.drives} \ ${drivesCmdLine config.virtualisation.qemu.drives} \
${toString config.virtualisation.qemu.options} \ ${concatStringsSep " \\\n " config.virtualisation.qemu.options} \
$QEMU_OPTS \ $QEMU_OPTS \
"$@" "$@"
''; '';
@ -270,20 +276,21 @@ in
virtualisation.memorySize = virtualisation.memorySize =
mkOption { mkOption {
type = types.ints.positive;
default = 384; default = 384;
description = description =
'' ''
Memory size (M) of virtual machine. The memory size in megabytes of the virtual machine.
''; '';
}; };
virtualisation.msize = virtualisation.msize =
mkOption { mkOption {
default = null; type = types.ints.positive;
type = types.nullOr types.ints.unsigned; default = 16384;
description = 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, bytes. Increasing this should increase performance significantly,
at the cost of higher RAM usage. at the cost of higher RAM usage.
''; '';
@ -291,15 +298,17 @@ in
virtualisation.diskSize = virtualisation.diskSize =
mkOption { mkOption {
type = types.nullOr types.ints.positive;
default = 512; default = 512;
description = description =
'' ''
Disk size (M) of virtual machine. The disk size in megabytes of the virtual machine.
''; '';
}; };
virtualisation.diskImage = virtualisation.diskImage =
mkOption { mkOption {
type = types.str;
default = "./${config.system.name}.qcow2"; default = "./${config.system.name}.qcow2";
description = description =
'' ''
@ -311,7 +320,7 @@ in
virtualisation.bootDevice = virtualisation.bootDevice =
mkOption { mkOption {
type = types.str; type = types.path;
example = "/dev/vda"; example = "/dev/vda";
description = description =
'' ''
@ -321,8 +330,8 @@ in
virtualisation.emptyDiskImages = virtualisation.emptyDiskImages =
mkOption { mkOption {
type = types.listOf types.ints.positive;
default = []; default = [];
type = types.listOf types.int;
description = description =
'' ''
Additional disk images to provide to the VM. The value is Additional disk images to provide to the VM. The value is
@ -333,6 +342,7 @@ in
virtualisation.graphics = virtualisation.graphics =
mkOption { mkOption {
type = types.bool;
default = true; default = true;
description = 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 = virtualisation.cores =
mkOption { mkOption {
type = types.ints.positive;
default = 1; default = 1;
type = types.int;
description = description =
'' ''
Specify the number of cores the guest is permitted to use. 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 = virtualisation.pathsInNixDB =
mkOption { mkOption {
type = types.listOf types.path;
default = []; default = [];
description = 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 = virtualisation.vlans =
mkOption { mkOption {
type = types.listOf types.ints.unsigned;
default = [ 1 ]; default = [ 1 ];
example = [ 1 2 ]; example = [ 1 2 ];
description = description =
@ -386,6 +502,7 @@ in
virtualisation.writableStore = virtualisation.writableStore =
mkOption { mkOption {
type = types.bool;
default = true; # FIXME default = true; # FIXME
description = description =
'' ''
@ -397,6 +514,7 @@ in
virtualisation.writableStoreUseTmpfs = virtualisation.writableStoreUseTmpfs =
mkOption { mkOption {
type = types.bool;
default = true; default = true;
description = description =
'' ''
@ -407,6 +525,7 @@ in
networking.primaryIPAddress = networking.primaryIPAddress =
mkOption { mkOption {
type = types.str;
default = ""; default = "";
internal = true; internal = true;
description = "Primary IP address used in /etc/hosts."; description = "Primary IP address used in /etc/hosts.";
@ -423,7 +542,7 @@ in
options = options =
mkOption { mkOption {
type = types.listOf types.unspecified; type = types.listOf types.str;
default = []; default = [];
example = [ "-vga std" ]; example = [ "-vga std" ];
description = "Options passed to QEMU."; description = "Options passed to QEMU.";
@ -432,7 +551,7 @@ in
consoles = mkOption { consoles = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = let default = let
consoles = [ "${qemuSerialDevice},115200n8" "tty0" ]; consoles = [ "${qemu-common.qemuSerialDevice},115200n8" "tty0" ];
in if cfg.graphics then consoles else reverseList consoles; in if cfg.graphics then consoles else reverseList consoles;
example = [ "console=tty1" ]; example = [ "console=tty1" ];
description = '' description = ''
@ -448,17 +567,18 @@ in
networkingOptions = networkingOptions =
mkOption { 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; 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 = '' description = ''
Networking-related command-line options that should be passed to qemu. 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 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. to keep the default runtime behaviour.
''; '';
}; };
@ -472,16 +592,16 @@ in
diskInterface = diskInterface =
mkOption { mkOption {
type = types.enum [ "virtio" "scsi" "ide" ];
default = "virtio"; default = "virtio";
example = "scsi"; example = "scsi";
type = types.enum [ "virtio" "scsi" "ide" ];
description = "The interface used for the virtual hard disks."; description = "The interface used for the virtual hard disks.";
}; };
guestAgent.enable = guestAgent.enable =
mkOption { mkOption {
default = true;
type = types.bool; type = types.bool;
default = true;
description = '' description = ''
Enable the Qemu guest agent. Enable the Qemu guest agent.
''; '';
@ -490,6 +610,7 @@ in
virtualisation.useBootLoader = virtualisation.useBootLoader =
mkOption { mkOption {
type = types.bool;
default = false; default = false;
description = description =
'' ''
@ -504,6 +625,7 @@ in
virtualisation.useEFIBoot = virtualisation.useEFIBoot =
mkOption { mkOption {
type = types.bool;
default = false; default = false;
description = description =
'' ''
@ -515,6 +637,7 @@ in
virtualisation.efiVars = virtualisation.efiVars =
mkOption { mkOption {
type = types.str;
default = "./${config.system.name}-efi-vars.fd"; default = "./${config.system.name}-efi-vars.fd";
description = description =
'' ''
@ -525,8 +648,8 @@ in
virtualisation.bios = virtualisation.bios =
mkOption { mkOption {
default = null;
type = types.nullOr types.package; type = types.nullOr types.package;
default = null;
description = description =
'' ''
An alternate BIOS (such as <package>qboot</package>) with which to start the VM. An alternate BIOS (such as <package>qboot</package>) with which to start the VM.
@ -539,6 +662,25 @@ in
config = { 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`] # Note [Disk layout with `useBootLoader`]
# #
# If `useBootLoader = true`, we configure 2 drives: # If `useBootLoader = true`, we configure 2 drives:
@ -560,6 +702,7 @@ in
then driveDeviceName 2 # second disk then driveDeviceName 2 # second disk
else cfg.bootDevice else cfg.bootDevice
); );
boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
boot.initrd.extraUtilsCommands = boot.initrd.extraUtilsCommands =
'' ''
@ -618,6 +761,28 @@ in
virtualisation.pathsInNixDB = [ config.system.build.toplevel ]; 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. # FIXME: Consolidate this one day.
virtualisation.qemu.options = mkMerge [ virtualisation.qemu.options = mkMerge [
(mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ (mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [
@ -646,7 +811,7 @@ in
virtualisation.qemu.drives = mkMerge [ virtualisation.qemu.drives = mkMerge [
[{ [{
name = "root"; name = "root";
file = "$NIX_DISK_IMAGE"; file = ''"$NIX_DISK_IMAGE"'';
driveExtraOpts.cache = "writeback"; driveExtraOpts.cache = "writeback";
driveExtraOpts.werror = "report"; driveExtraOpts.werror = "report";
}] }]
@ -655,7 +820,7 @@ in
# note [Disk layout with `useBootLoader`]. # note [Disk layout with `useBootLoader`].
{ {
name = "boot"; name = "boot";
file = "$TMPDIR/disk.img"; file = ''"$TMPDIR"/disk.img'';
driveExtraOpts.media = "disk"; driveExtraOpts.media = "disk";
deviceExtraOpts.bootindex = "1"; deviceExtraOpts.bootindex = "1";
} }
@ -672,15 +837,26 @@ in
# configuration, where the regular value for the `fileSystems' # configuration, where the regular value for the `fileSystems'
# attribute should be disregarded for the purpose of building a VM # attribute should be disregarded for the purpose of building a VM
# test image (since those filesystems don't exist in the VM). # test image (since those filesystems don't exist in the VM).
fileSystems = mkVMOverride ( fileSystems =
cfg.fileSystems // let
{ "/".device = cfg.bootDevice; mkSharedDir = tag: share:
${if cfg.writableStore then "/nix/.ro-store" else "/nix/store"} = {
{ device = "store"; name =
fsType = "9p"; if tag == "nix-store" && cfg.writableStore
options = [ "trans=virtio" "version=9p2000.L" "cache=loose" ] ++ lib.optional (cfg.msize != null) "msize=${toString cfg.msize}"; then "/nix/.ro-store"
neededForBoot = true; 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 "/tmp" = mkIf config.boot.tmpOnTmpfs
{ device = "tmpfs"; { device = "tmpfs";
fsType = "tmpfs"; fsType = "tmpfs";
@ -688,32 +864,20 @@ in
# Sync with systemd's tmp.mount; # Sync with systemd's tmp.mount;
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ]; options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmpOnTmpfsSize}" ];
}; };
"/tmp/xchg" =
{ device = "xchg"; "/nix/.rw-store" = mkIf (cfg.writableStore && cfg.writableStoreUseTmpfs)
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" =
{ fsType = "tmpfs"; { fsType = "tmpfs";
options = [ "mode=0755" ]; options = [ "mode=0755" ];
neededForBoot = true; neededForBoot = true;
}; };
} // optionalAttrs cfg.useBootLoader
{ "/boot" = "/boot" = mkIf cfg.useBootLoader
# see note [Disk layout with `useBootLoader`] # see note [Disk layout with `useBootLoader`]
{ device = "${lookupDriveDeviceName "boot" cfg.qemu.drives}2"; # 2 for e.g. `vdb2`, as created in `bootDisk` { device = "${lookupDriveDeviceName "boot" cfg.qemu.drives}2"; # 2 for e.g. `vdb2`, as created in `bootDisk`
fsType = "vfat"; fsType = "vfat";
noCheck = true; # fsck fails on a r/o filesystem noCheck = true; # fsck fails on a r/o filesystem
}; };
}); } // lib.mapAttrs' mkSharedDir cfg.sharedDirectories);
swapDevices = mkVMOverride [ ]; swapDevices = mkVMOverride [ ];
boot.initrd.luks.devices = mkVMOverride {}; boot.initrd.luks.devices = mkVMOverride {};
@ -734,7 +898,7 @@ in
# video driver the host uses. # video driver the host uses.
services.xserver.videoDrivers = mkVMOverride [ "modesetting" ]; services.xserver.videoDrivers = mkVMOverride [ "modesetting" ];
services.xserver.defaultDepth = mkVMOverride 0; services.xserver.defaultDepth = mkVMOverride 0;
services.xserver.resolutions = mkVMOverride [ { x = 1024; y = 768; } ]; services.xserver.resolutions = mkVMOverride [ cfg.resolution ];
services.xserver.monitorSection = services.xserver.monitorSection =
'' ''
# Set a higher refresh rate so that resolutions > 800x600 work. # Set a higher refresh rate so that resolutions > 800x600 work.

View file

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

View file

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

View file

@ -82,7 +82,7 @@ in
# chromium-based browsers refuse to run as root # chromium-based browsers refuse to run as root
test-support.displayManager.auto.user = "alice"; test-support.displayManager.auto.user = "alice";
# browsers may hang with the default memory # 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" ]; networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ]; 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. # which is why it will not use the system certificate store for the time being.
# firefox # firefox
chromium chromium
falkon qutebrowser
midori midori
]; ];
}; };
@ -152,21 +152,21 @@ in
with subtest("Unknown CA is untrusted in curl"): with subtest("Unknown CA is untrusted in curl"):
machine.fail("curl -fv https://bad.example.com") machine.fail("curl -fv https://bad.example.com")
browsers = [ browsers = {
# Firefox was disabled here, because we needed to disable p11-kit support in nss, # 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. # which is why it will not use the system certificate store for the time being.
# "firefox", #"firefox": "Security Risk",
"chromium", "chromium": "not private",
"falkon", "qutebrowser -T": "Certificate error",
"midori" "midori": "Security"
] }
errors = ["Security Risk", "not private", "Certificate Error", "Security"]
machine.wait_for_x() 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): with subtest("Good certificate is trusted in " + browser):
execute_as( 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) wait_for_window_as("alice", browser)
machine.wait_for_text("It works!") machine.wait_for_text("It works!")
@ -174,7 +174,7 @@ in
execute_as("alice", "xdotool key ctrl+w") # close tab execute_as("alice", "xdotool key ctrl+w") # close tab
with subtest("Unknown CA is untrusted in " + browser): 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.wait_for_text(error)
machine.screenshot("bad" + browser) machine.screenshot("bad" + browser)
machine.succeed("pkill " + 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"): with subtest("The pullImage tool works"):
docker.succeed( docker.succeed(
"docker load --input='${examples.nixFromDockerHub}'", "docker load --input='${examples.testNixFromDockerHub}'",
"docker run --rm nix:2.2.1 nix-store --version", "docker run --rm nix:2.2.1 nix-store --version",
"docker rmi nix:2.2.1", "docker rmi nix:2.2.1",
) )
@ -378,5 +378,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
docker.succeed( docker.succeed(
"docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'" "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. # Need some more memory to record audio.
virtualisation.memorySize = "500"; virtualisation.memorySize = 500;
# Create a virtual sound device, with mixing # Create a virtual sound device, with mixing
# and all, for recording audio. # and all, for recording audio.

View file

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

View file

@ -8,7 +8,7 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
with pkgs.lib; with pkgs.lib;
let 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, ... }: router = { config, pkgs, lib, ... }:
with pkgs.lib; with pkgs.lib;
@ -42,7 +42,7 @@ let
machines = flip map vlanIfs (vlan: machines = flip map vlanIfs (vlan:
{ {
hostName = "client${toString vlan}"; hostName = "client${toString vlan}";
ethernetAddress = qemu-flags.qemuNicMac vlan 1; ethernetAddress = qemu-common.qemuNicMac vlan 1;
ipAddress = "192.168.${toString vlan}.2"; 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[@]}") 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; { meta = with lib; {
description = "A real-time audio analyzer"; description = "A real-time audio analyzer";
homepage = "https://friture.org/"; homepage = "https://friture.org/";

View file

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

View file

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

View file

@ -2,12 +2,12 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "mopidy-mpris"; pname = "mopidy-mpris";
version = "3.0.2"; version = "3.0.3";
src = python3Packages.fetchPypi { src = python3Packages.fetchPypi {
inherit version; inherit version;
pname = "Mopidy-MPRIS"; pname = "Mopidy-MPRIS";
sha256 = "0mmdaikw00f43gzjdbvlcvzff6yppm7v8mv012r79adzd992q9y0"; sha256 = "sha256-rHQgNIyludTEL7RDC8dIpyGTMOt1Tazn6i/orKlSP4U=";
}; };
propagatedBuildInputs = [ 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 { buildGoModule rec {
pname = "NoiseTorch"; pname = "NoiseTorch";
version = "0.11.3"; version = "0.11.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lawl"; owner = "lawl";
repo = "NoiseTorch"; repo = "NoiseTorch";
rev = version; rev = version;
sha256 = "0rjs6hbi7dvd179lzjmvqy4rv4pbc9amgzb8jfky4yc0zh8xf5z5"; sha256 = "sha256-3+Yk7dqD7eyvd1I5CMmrg085ZtFxD2EnGqL5ttwx8eM=";
}; };
vendorSha256 = null; vendorSha256 = null;

View file

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

View file

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

View file

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

View file

@ -1,22 +1,24 @@
{ lib { lib
, stdenv
, rustPlatform , rustPlatform
, fetchFromGitHub , fetchFromGitHub
, llvmPackages , llvmPackages
, rocksdb , rocksdb
, Security
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "electrs"; pname = "electrs";
version = "0.8.12"; version = "0.9.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "romanz"; owner = "romanz";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0kd5zki9f1pnwscnvd921dw0lc45nfkwk23l33nzdjn005lmsw7v"; sha256 = "04dqbn2nfzllxfcn3v9vkfy2hn2syihijr575621r1pj65pcgf8y";
}; };
cargoSha256 = "1l8dwjwj21crxampzj5c0k98xnisgy3d9c3dkgf5vaybrcp04k85"; cargoSha256 = "0hl8q62lankrab8gq9vxmkn68drs0hw5pk0q6aiq8fxsb63dzsw0";
# needed for librocksdb-sys # needed for librocksdb-sys
nativeBuildInputs = [ llvmPackages.clang ]; nativeBuildInputs = [ llvmPackages.clang ];
@ -25,7 +27,8 @@ rustPlatform.buildRustPackage rec {
# link rocksdb dynamically # link rocksdb dynamically
ROCKSDB_INCLUDE_DIR = "${rocksdb}/include"; ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
ROCKSDB_LIB_DIR = "${rocksdb}/lib"; ROCKSDB_LIB_DIR = "${rocksdb}/lib";
cargoBuildFlags = "--no-default-features";
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
meta = with lib; { meta = with lib; {
description = "An efficient re-implementation of Electrum Server in Rust"; 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 let
pname = "ledger-live-desktop"; pname = "ledger-live-desktop";
@ -13,9 +13,22 @@ let
appimageContents = appimageTools.extractType2 { appimageContents = appimageTools.extractType2 {
inherit name src; 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; inherit name src;
extraPkgs = pkgs: [ systemdPatched ];
extraInstallCommands = '' extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname} mv $out/bin/${name} $out/bin/${pname}
install -m 444 -D ${appimageContents}/ledger-live-desktop.desktop $out/share/applications/ledger-live-desktop.desktop 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 { rustPlatform.buildRustPackage rec {
pname = "polkadot"; pname = "polkadot";
version = "0.9.9-1"; version = "0.9.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "paritytech"; owner = "paritytech";
repo = "polkadot"; repo = "polkadot";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-EmnrwBMHb9jpEZAG393yyMaFRRQJ6YYDRvsp+ATT7MY="; sha256 = "1iBA7R63g0UOuCmnFONc9j/7jfcHA54jJ327AL/aPIE=";
}; };
cargoHash = "sha256-WzsaUrqe7F4x+ShqG14kq78MTSWIxIMRa3pdr3RXrwk="; cargoSha256 = "1ysbyv323qmpswbnd2lvisrwnk30l4zvcidh866nrk6b6jqjag42";
nativeBuildInputs = [ clang ]; nativeBuildInputs = [ clang ];

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -86,5 +86,9 @@ stdenv.mkDerivation rec {
platforms = platforms.linux; platforms = platforms.linux;
# sse3 is not supported on aarch64 # sse3 is not supported on aarch64
badPlatforms = [ "aarch64-linux" ]; 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 { mkDerivation rec {
pname = "qimgv"; pname = "qimgv";
version = "0.9.1"; version = "1.0.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "easymodo"; owner = "easymodo";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0b2hddps969gjim2r9a22zaxmnzp600av2zz6icq66ksfrx1rpac"; sha256 = "1wybpmqvj7vj7cl6r4gif7mkrcdr6zpb939mmz46xsil5vb4pirh";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -2,7 +2,7 @@
let let
pname = "chrysalis"; pname = "chrysalis";
version = "0.8.4"; version = "0.8.5";
in appimageTools.wrapAppImage rec { in appimageTools.wrapAppImage rec {
name = "${pname}-${version}-binary"; name = "${pname}-${version}-binary";
@ -10,7 +10,7 @@ in appimageTools.wrapAppImage rec {
inherit name; inherit name;
src = fetchurl { src = fetchurl {
url = "https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}.AppImage"; 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 { buildGoModule rec {
pname = "dasel"; pname = "dasel";
version = "1.20.0"; version = "1.21.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "TomWright"; owner = "TomWright";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-SJWIjizPf0bRwanpnLpuqsWKjaCwc1wBV2sCPSqGiOs="; sha256 = "sha256-M63KFQ+g4b0HiWlv1Kym0ulqZcCMdfU9SoLhpaI4q/o=";
}; };
vendorSha256 = "sha256-u3KsMi63wOi1fCSLpGxATZNmbhoIAGeVpwcKh+nmi3k="; vendorSha256 = "sha256-yP4iF3403WWgWAmBHiuOpDsIAUx4+KR8uKPfjy3qXt8=";
ldflags = [ ldflags = [
"-s" "-w" "-X github.com/tomwright/dasel/internal.Version=${version}" "-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 { stdenv.mkDerivation rec {
pname = "nnn"; pname = "nnn";
version = "4.2"; version = "4.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jarun"; owner = "jarun";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-ICUF/LJhsbzDz9xZig1VE6TdG3u0C6Jf/61RoAjx3KI="; sha256 = "sha256-kiLmdEyOnD1wPS2GuFF5nTK9tgUOI6PVCzCRZXdObEo=";
}; };
configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf); 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 install -D psi-notify $out/bin/psi-notify
substituteInPlace psi-notify.service --replace 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 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 { rustPlatform.buildRustPackage rec {
pname = "zola"; pname = "zola";
@ -13,9 +24,18 @@ rustPlatform.buildRustPackage rec {
cargoSha256 = "1hg8j9a8c6c3ap24jd96y07rlp4f0s2mkyx5034nlnkm3lj4q42n"; cargoSha256 = "1hg8j9a8c6c3ap24jd96y07rlp4f0s2mkyx5034nlnkm3lj4q42n";
nativeBuildInputs = [ cmake pkg-config installShellFiles]; nativeBuildInputs = [
buildInputs = [ openssl oniguruma ] cmake
++ lib.optional stdenv.isDarwin CoreServices; pkg-config
installShellFiles
];
buildInputs = [
openssl
oniguruma
libsass
] ++ lib.optionals stdenv.isDarwin [
CoreServices
];
RUSTONIG_SYSTEM_LIBONIG = true; RUSTONIG_SYSTEM_LIBONIG = true;

View file

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

View file

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

View file

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

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "helmsman"; pname = "helmsman";
version = "3.7.3"; version = "3.7.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Praqma"; owner = "Praqma";
repo = "helmsman"; repo = "helmsman";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-7WN4YjhPbsFZfoFuZzsN85a+kdEVlEzQ9CfWh4nxxTs="; sha256 = "sha256-QJXCVcEf23oaTDemoCV/2aaajbubfXg0AfZrlSTS4Ag=";
}; };
vendorSha256 = "sha256-XHgdVFGIzbPPYgv/T4TtvDDbKAe3niev4S5tu/nwSqg="; vendorSha256 = "sha256-4imZrZfpR/5tw9ZFSTr7Gx4G9O1iHNE9YRYMOJFKvHU=";
doCheck = false; 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 { buildGoModule rec {
pname = "kube3d"; pname = "kube3d";
version = "4.4.7"; version = "4.4.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rancher"; owner = "rancher";
repo = "k3d"; repo = "k3d";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-S1vHmXUCP1ayPo3vvHAbNCqNm1ueJ0jE4NUBvg5P3MU="; sha256 = "sha256-PdbAkiua9AdcNDCpu4UILsmAz0nb4nLjahYomGSHqnc=";
}; };
vendorSha256 = null; vendorSha256 = null;
@ -17,10 +17,9 @@ buildGoModule rec {
excludedPackages = "\\(tools\\|docgen\\)"; excludedPackages = "\\(tools\\|docgen\\)";
ldflags = let t = "github.com/rancher/k3d/v4/version"; in ldflags =
[ let t = "github.com/rancher/k3d/v4/version"; in
"-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}" [ "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}" ];
];
doCheck = false; doCheck = false;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,7 +2,7 @@
"name": "element-desktop", "name": "element-desktop",
"productName": "Element", "productName": "Element",
"main": "lib/electron-main.js", "main": "lib/electron-main.js",
"version": "1.8.5", "version": "1.9.0",
"description": "A feature-rich client for Matrix.org", "description": "A feature-rich client for Matrix.org",
"author": "Element", "author": "Element",
"repository": { "repository": {
@ -57,7 +57,7 @@
"allchange": "^1.0.2", "allchange": "^1.0.2",
"asar": "^2.0.1", "asar": "^2.0.1",
"chokidar": "^3.5.2", "chokidar": "^3.5.2",
"electron": "^13.1.9", "electron": "13",
"electron-builder": "22.11.4", "electron-builder": "22.11.4",
"electron-builder-squirrel-windows": "22.11.4", "electron-builder-squirrel-windows": "22.11.4",
"electron-devtools-installer": "^3.1.1", "electron-devtools-installer": "^3.1.1",
@ -83,7 +83,7 @@
}, },
"build": { "build": {
"appId": "im.riot.app", "appId": "im.riot.app",
"electronVersion": "13.2.2", "electronVersion": "13.4.0",
"files": [ "files": [
"package.json", "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 { path = fetchurl {
name = "_babel_generator___generator_7.15.0.tgz"; name = "_babel_generator___generator_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz"; url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz";
sha1 = "a7d0c172e0d814974bad5aa77ace543b97917f15"; 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 { path = fetchurl {
name = "_babel_helper_function_name___helper_function_name_7.14.5.tgz"; 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.14.5.tgz"; url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz";
sha1 = "89e2c474972f15d8e233b52ee8c480e2cfcd50c4"; 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 { path = fetchurl {
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";
url = "https://registry.yarnpkg.com/@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.15.4.tgz";
sha1 = "25fbfa579b0937eee1f3b805ece4ce398c431815"; 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 { path = fetchurl {
name = "_babel_helper_hoist_variables___helper_hoist_variables_7.14.5.tgz"; 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.14.5.tgz"; url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz";
sha1 = "e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"; 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 { path = fetchurl {
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";
url = "https://registry.yarnpkg.com/@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.15.4.tgz";
sha1 = "22b23a54ef51c2b7605d851930c1976dd0bc693a"; sha1 = "aecab92dcdbef6a10aa3b62ab204b085f776e257";
}; };
} }
{ {
@ -98,43 +98,43 @@
}; };
} }
{ {
name = "_babel_parser___parser_7.15.3.tgz"; name = "_babel_parser___parser_7.15.6.tgz";
path = fetchurl { path = fetchurl {
name = "_babel_parser___parser_7.15.3.tgz"; name = "_babel_parser___parser_7.15.6.tgz";
url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz"; url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.6.tgz";
sha1 = "3416d9bea748052cfcb63dbcc27368105b1ed862"; sha1 = "043b9aa3c303c0722e5377fef9197f4cf1796549";
}; };
} }
{ {
name = "_babel_runtime___runtime_7.15.3.tgz"; name = "_babel_runtime___runtime_7.15.4.tgz";
path = fetchurl { path = fetchurl {
name = "_babel_runtime___runtime_7.15.3.tgz"; name = "_babel_runtime___runtime_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz"; url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz";
sha1 = "2e1c2880ca118e5b2f9988322bd8a7656a32502b"; sha1 = "fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a";
}; };
} }
{ {
name = "_babel_template___template_7.14.5.tgz"; name = "_babel_template___template_7.15.4.tgz";
path = fetchurl { path = fetchurl {
name = "_babel_template___template_7.14.5.tgz"; name = "_babel_template___template_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz"; url = "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz";
sha1 = "a9bc9d8b33354ff6e55a9c60d1109200a68974f4"; sha1 = "51898d35dcf3faa670c4ee6afcfd517ee139f194";
}; };
} }
{ {
name = "_babel_traverse___traverse_7.15.0.tgz"; name = "_babel_traverse___traverse_7.15.4.tgz";
path = fetchurl { path = fetchurl {
name = "_babel_traverse___traverse_7.15.0.tgz"; name = "_babel_traverse___traverse_7.15.4.tgz";
url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz"; url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz";
sha1 = "4cca838fd1b2a03283c1f38e141f639d60b3fc98"; sha1 = "ff8510367a144bfbff552d9e18e28f3e2889c22d";
}; };
} }
{ {
name = "_babel_types___types_7.15.0.tgz"; name = "_babel_types___types_7.15.6.tgz";
path = fetchurl { path = fetchurl {
name = "_babel_types___types_7.15.0.tgz"; name = "_babel_types___types_7.15.6.tgz";
url = "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz"; url = "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz";
sha1 = "61af11f2286c4e9c69ca8deb5f4375a73c72dcbd"; sha1 = "99abdc48218b2881c058dd0a7ab05b99c9be758f";
}; };
} }
{ {
@ -169,6 +169,14 @@
sha1 = "d736d6963d7003b6514e6324bec9c602ac340318"; 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"; name = "_jimp_bmp___bmp_0.16.1.tgz";
path = fetchurl { path = fetchurl {
@ -457,6 +465,14 @@
sha1 = "e95737e8bb6746ddedf69c556953494f196fe69a"; 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"; name = "_npmcli_git___git_2.1.0.tgz";
path = fetchurl { path = fetchurl {
@ -530,27 +546,27 @@
}; };
} }
{ {
name = "_octokit_graphql___graphql_4.6.4.tgz"; name = "_octokit_graphql___graphql_4.8.0.tgz";
path = fetchurl { path = fetchurl {
name = "_octokit_graphql___graphql_4.6.4.tgz"; name = "_octokit_graphql___graphql_4.8.0.tgz";
url = "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.4.tgz"; url = "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz";
sha1 = "0c3f5bed440822182e972317122acb65d311a5ed"; sha1 = "664d9b11c0e12112cbf78e10f49a05959aa22cc3";
}; };
} }
{ {
name = "_octokit_openapi_types___openapi_types_9.7.0.tgz"; name = "_octokit_openapi_types___openapi_types_10.2.2.tgz";
path = fetchurl { path = fetchurl {
name = "_octokit_openapi_types___openapi_types_9.7.0.tgz"; name = "_octokit_openapi_types___openapi_types_10.2.2.tgz";
url = "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-9.7.0.tgz"; url = "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-10.2.2.tgz";
sha1 = "9897cdefd629cd88af67b8dbe2e5fb19c63426b2"; 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 { path = fetchurl {
name = "_octokit_plugin_paginate_rest___plugin_paginate_rest_2.15.1.tgz"; 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.15.1.tgz"; url = "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.3.tgz";
sha1 = "264189dd3ce881c6c33758824aac05a4002e056a"; 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 { path = fetchurl {
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";
url = "https://registry.yarnpkg.com/@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.10.4.tgz";
sha1 = "33b342fe41f2603fdf8b958e6652103bb3ea3f3b"; sha1 = "97e85eb7375e30b9bf193894670f9da205e79408";
}; };
} }
{ {
@ -586,19 +602,19 @@
}; };
} }
{ {
name = "_octokit_rest___rest_18.9.1.tgz"; name = "_octokit_rest___rest_18.10.0.tgz";
path = fetchurl { path = fetchurl {
name = "_octokit_rest___rest_18.9.1.tgz"; name = "_octokit_rest___rest_18.10.0.tgz";
url = "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.9.1.tgz"; url = "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.10.0.tgz";
sha1 = "db1d7ac1d7b10e908f7d4b78fe35a392554ccb26"; sha1 = "8a0add9611253e0e31d3ed5b4bc941a3795a7648";
}; };
} }
{ {
name = "_octokit_types___types_6.25.0.tgz"; name = "_octokit_types___types_6.28.1.tgz";
path = fetchurl { path = fetchurl {
name = "_octokit_types___types_6.25.0.tgz"; name = "_octokit_types___types_6.28.1.tgz";
url = "https://registry.yarnpkg.com/@octokit/types/-/types-6.25.0.tgz"; url = "https://registry.yarnpkg.com/@octokit/types/-/types-6.28.1.tgz";
sha1 = "c8e37e69dbe7ce55ed98ee63f75054e7e808bf1a"; sha1 = "ab990d1fe952226055e81c7650480e6bacfb877c";
}; };
} }
{ {
@ -698,19 +714,19 @@
}; };
} }
{ {
name = "_types_node___node_16.7.1.tgz"; name = "_types_node___node_16.9.1.tgz";
path = fetchurl { path = fetchurl {
name = "_types_node___node_16.7.1.tgz"; name = "_types_node___node_16.9.1.tgz";
url = "https://registry.yarnpkg.com/@types/node/-/node-16.7.1.tgz"; url = "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz";
sha1 = "c6b9198178da504dfca1fd0be9b2e1002f1586f0"; sha1 = "0611b37db4246c937feef529ddcc018cf8e35708";
}; };
} }
{ {
name = "_types_node___node_14.17.11.tgz"; name = "_types_node___node_14.17.16.tgz";
path = fetchurl { path = fetchurl {
name = "_types_node___node_14.17.11.tgz"; name = "_types_node___node_14.17.16.tgz";
url = "https://registry.yarnpkg.com/@types/node/-/node-14.17.11.tgz"; url = "https://registry.yarnpkg.com/@types/node/-/node-14.17.16.tgz";
sha1 = "82d266d657aec5ff01ca59f2ffaff1bb43f7bf0f"; 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 { path = fetchurl {
name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.29.3.tgz"; name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.3.tgz"; url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz";
sha1 = "95cb8029a8bd8bd9c7f4ab95074a7cb2115adefa"; 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 { path = fetchurl {
name = "_typescript_eslint_experimental_utils___experimental_utils_4.29.3.tgz"; name = "_typescript_eslint_experimental_utils___experimental_utils_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.3.tgz"; url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz";
sha1 = "52e437a689ccdef73e83c5106b34240a706f15e1"; sha1 = "0c900f832f270b88e13e51753647b02d08371ce5";
}; };
} }
{ {
name = "_typescript_eslint_parser___parser_4.29.3.tgz"; name = "_typescript_eslint_parser___parser_4.31.1.tgz";
path = fetchurl { path = fetchurl {
name = "_typescript_eslint_parser___parser_4.29.3.tgz"; name = "_typescript_eslint_parser___parser_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.3.tgz"; url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.1.tgz";
sha1 = "2ac25535f34c0e98f50c0e6b28c679c2357d45f2"; 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 { path = fetchurl {
name = "_typescript_eslint_scope_manager___scope_manager_4.29.3.tgz"; name = "_typescript_eslint_scope_manager___scope_manager_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.3.tgz"; url = "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz";
sha1 = "497dec66f3a22e459f6e306cf14021e40ec86e19"; sha1 = "0c21e8501f608d6a25c842fcf59541ef4f1ab561";
}; };
} }
{ {
name = "_typescript_eslint_types___types_4.29.3.tgz"; name = "_typescript_eslint_types___types_4.31.1.tgz";
path = fetchurl { path = fetchurl {
name = "_typescript_eslint_types___types_4.29.3.tgz"; name = "_typescript_eslint_types___types_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.3.tgz"; url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.1.tgz";
sha1 = "d7980c49aef643d0af8954c9f14f656b7fd16017"; 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 { path = fetchurl {
name = "_typescript_eslint_typescript_estree___typescript_estree_4.29.3.tgz"; name = "_typescript_eslint_typescript_estree___typescript_estree_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.3.tgz"; url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz";
sha1 = "1bafad610015c4ded35c85a70b6222faad598b40"; 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 { path = fetchurl {
name = "_typescript_eslint_visitor_keys___visitor_keys_4.29.3.tgz"; name = "_typescript_eslint_visitor_keys___visitor_keys_4.31.1.tgz";
url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.3.tgz"; url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz";
sha1 = "c691760a00bd86bf8320d2a90a93d86d322f1abf"; sha1 = "f2e7a14c7f20c4ae07d7fc3c5878c4441a1da9cc";
}; };
} }
{ {
@ -866,19 +882,19 @@
}; };
} }
{ {
name = "ajv___ajv_8.6.2.tgz"; name = "ajv___ajv_8.6.3.tgz";
path = fetchurl { path = fetchurl {
name = "ajv___ajv_8.6.2.tgz"; name = "ajv___ajv_8.6.3.tgz";
url = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz"; url = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz";
sha1 = "2fb45e0e5fcbc0813326c1c3da535d1881bb0571"; sha1 = "11a66527761dc3e9a3845ea775d2d3c0414e8764";
}; };
} }
{ {
name = "allchange___allchange_1.0.2.tgz"; name = "allchange___allchange_1.0.3.tgz";
path = fetchurl { path = fetchurl {
name = "allchange___allchange_1.0.2.tgz"; name = "allchange___allchange_1.0.3.tgz";
url = "https://registry.yarnpkg.com/allchange/-/allchange-1.0.2.tgz"; url = "https://registry.yarnpkg.com/allchange/-/allchange-1.0.3.tgz";
sha1 = "86b9190e12b7ede4f230ae763cbd504c48fd907b"; 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 { path = fetchurl {
name = "ansi_regex___ansi_regex_5.0.0.tgz"; name = "ansi_regex___ansi_regex_5.0.1.tgz";
url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz"; url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz";
sha1 = "388539f55179bf39339c81af30a654d69f87cb75"; 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 { path = fetchurl {
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";
url = "https://registry.yarnpkg.com/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.7.tgz";
sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21"; sha1 = "b15474a932adab4ff8a50d9adfa7e4e926f21146";
}; };
} }
{ {
@ -1050,11 +1066,11 @@
}; };
} }
{ {
name = "asar___asar_3.0.3.tgz"; name = "asar___asar_3.1.0.tgz";
path = fetchurl { path = fetchurl {
name = "asar___asar_3.0.3.tgz"; name = "asar___asar_3.1.0.tgz";
url = "https://registry.yarnpkg.com/asar/-/asar-3.0.3.tgz"; url = "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz";
sha1 = "1fef03c2d6d2de0cbad138788e4f7ae03b129c7b"; sha1 = "70b0509449fe3daccc63beb4d3c7d2e24d3c6473";
}; };
} }
{ {
@ -1234,11 +1250,11 @@
}; };
} }
{ {
name = "boxen___boxen_5.0.1.tgz"; name = "boxen___boxen_5.1.1.tgz";
path = fetchurl { path = fetchurl {
name = "boxen___boxen_5.0.1.tgz"; name = "boxen___boxen_5.1.1.tgz";
url = "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz"; url = "https://registry.yarnpkg.com/boxen/-/boxen-5.1.1.tgz";
sha1 = "657528bdd3f59a772b8279b831f27ec2c744664b"; sha1 = "4faca6a437885add0bf8d99082e272d480814cd4";
}; };
} }
{ {
@ -1322,11 +1338,11 @@
}; };
} }
{ {
name = "cacache___cacache_15.2.0.tgz"; name = "cacache___cacache_15.3.0.tgz";
path = fetchurl { path = fetchurl {
name = "cacache___cacache_15.2.0.tgz"; name = "cacache___cacache_15.3.0.tgz";
url = "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz"; url = "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz";
sha1 = "73af75f77c58e72d8c630a7a2858cb18ef523389"; 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 { path = fetchurl {
name = "core_js___core_js_3.16.3.tgz"; name = "core_js___core_js_3.17.3.tgz";
url = "https://registry.yarnpkg.com/core-js/-/core-js-3.16.3.tgz"; url = "https://registry.yarnpkg.com/core-js/-/core-js-3.17.3.tgz";
sha1 = "1f2d43c51a9ed014cc6c83440af14697ae4b75f2"; sha1 = "8e8bd20e91df9951e903cabe91f9af4a0895bc1e";
}; };
} }
{ {
@ -1625,6 +1641,14 @@
sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; 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"; name = "counterpart___counterpart_0.18.6.tgz";
path = fetchurl { 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 { path = fetchurl {
name = "deep_is___deep_is_0.1.3.tgz"; name = "deep_is___deep_is_0.1.4.tgz";
url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz"; url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz";
sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; 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 { path = fetchurl {
name = "electron_notarize___electron_notarize_1.1.0.tgz"; name = "electron_notarize___electron_notarize_1.1.1.tgz";
url = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.1.0.tgz"; url = "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.1.1.tgz";
sha1 = "00ed0182366b97f5593cb5ccdcf1120f1de37179"; sha1 = "3ed274b36158c1beb1dbef14e7faf5927e028629";
}; };
} }
{ {
@ -1978,11 +2002,11 @@
}; };
} }
{ {
name = "electron___electron_13.2.2.tgz"; name = "electron___electron_13.4.0.tgz";
path = fetchurl { path = fetchurl {
name = "electron___electron_13.2.2.tgz"; name = "electron___electron_13.4.0.tgz";
url = "https://registry.yarnpkg.com/electron/-/electron-13.2.2.tgz"; url = "https://registry.yarnpkg.com/electron/-/electron-13.4.0.tgz";
sha1 = "332d91891d0db4f9a1d22d4d0bc3b500e59dc051"; sha1 = "f9f9e518d8c6bf23bfa8b69580447eea3ca0f880";
}; };
} }
{ {
@ -2346,11 +2370,11 @@
}; };
} }
{ {
name = "fastq___fastq_1.12.0.tgz"; name = "fastq___fastq_1.13.0.tgz";
path = fetchurl { path = fetchurl {
name = "fastq___fastq_1.12.0.tgz"; name = "fastq___fastq_1.13.0.tgz";
url = "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz"; url = "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz";
sha1 = "ed7b6ab5d62393fb2cc591c853652a5c318bf794"; 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 { path = fetchurl {
name = "minipass_fetch___minipass_fetch_1.3.4.tgz"; name = "minipass_fetch___minipass_fetch_1.4.1.tgz";
url = "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.4.tgz"; url = "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz";
sha1 = "63f5af868a38746ca7b33b03393ddf8c291244fe"; sha1 = "d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6";
}; };
} }
{ {
@ -3650,11 +3674,11 @@
}; };
} }
{ {
name = "minipass___minipass_3.1.3.tgz"; name = "minipass___minipass_3.1.5.tgz";
path = fetchurl { path = fetchurl {
name = "minipass___minipass_3.1.3.tgz"; name = "minipass___minipass_3.1.5.tgz";
url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz"; url = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz";
sha1 = "7d42ff1f39635482e15f9cdb53184deebd5815fd"; sha1 = "71f6251b0a33a49c01b3cf97ff77eda030dff732";
}; };
} }
{ {
@ -3722,11 +3746,11 @@
}; };
} }
{ {
name = "needle___needle_2.9.0.tgz"; name = "needle___needle_2.9.1.tgz";
path = fetchurl { path = fetchurl {
name = "needle___needle_2.9.0.tgz"; name = "needle___needle_2.9.1.tgz";
url = "https://registry.yarnpkg.com/needle/-/needle-2.9.0.tgz"; url = "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz";
sha1 = "c680e401f99b6c3d8d1f315756052edf3dc3bdff"; 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 { path = fetchurl {
name = "node_fetch___node_fetch_2.6.1.tgz"; name = "node_fetch___node_fetch_2.6.2.tgz";
url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz"; url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz";
sha1 = "045bd323631f76ed2e2b55573394416b639a0052"; sha1 = "986996818b73785e47b1965cc34eb093a1d464d0";
}; };
} }
{ {
@ -4178,11 +4202,11 @@
}; };
} }
{ {
name = "plist___plist_3.0.3.tgz"; name = "plist___plist_3.0.4.tgz";
path = fetchurl { path = fetchurl {
name = "plist___plist_3.0.3.tgz"; name = "plist___plist_3.0.4.tgz";
url = "https://registry.yarnpkg.com/plist/-/plist-3.0.3.tgz"; url = "https://registry.yarnpkg.com/plist/-/plist-3.0.4.tgz";
sha1 = "007df34c7be0e2c3dcfcf460d623e6485457857d"; 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 { path = fetchurl {
name = "socks_proxy_agent___socks_proxy_agent_6.0.0.tgz"; name = "socks_proxy_agent___socks_proxy_agent_6.1.0.tgz";
url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz"; url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz";
sha1 = "9f8749cdc05976505fa9f9a958b1818d0e60573b"; 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 { path = fetchurl {
name = "source_map_support___source_map_support_0.5.19.tgz"; name = "source_map_support___source_map_support_0.5.20.tgz";
url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz"; url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz";
sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61"; sha1 = "12166089f8f5e5e8c56926b377633392dd2cb6c9";
}; };
} }
{ {
@ -4890,11 +4914,11 @@
}; };
} }
{ {
name = "tar___tar_6.1.10.tgz"; name = "tar___tar_6.1.11.tgz";
path = fetchurl { path = fetchurl {
name = "tar___tar_6.1.10.tgz"; name = "tar___tar_6.1.11.tgz";
url = "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz"; url = "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz";
sha1 = "8a320a74475fba54398fa136cd9883aa8ad11175"; sha1 = "6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621";
}; };
} }
{ {
@ -5130,11 +5154,11 @@
}; };
} }
{ {
name = "typescript___typescript_4.3.5.tgz"; name = "typescript___typescript_4.4.3.tgz";
path = fetchurl { path = fetchurl {
name = "typescript___typescript_4.3.5.tgz"; name = "typescript___typescript_4.4.3.tgz";
url = "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz"; url = "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz";
sha1 = "4d1c37cc16e893973c45a06886b7113234f119f4"; sha1 = "bdc5407caa2b109efd4f82fe130656f977a29324";
}; };
} }
{ {
@ -5409,14 +5433,6 @@
sha1 = "be9bae1c8a046e76b31127726347d0ad7002beb3"; 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"; name = "xtend___xtend_4.0.2.tgz";
path = fetchurl { path = fetchurl {

View file

@ -19,12 +19,12 @@
let let
executableName = "element-desktop"; executableName = "element-desktop";
version = "1.8.5"; version = "1.9.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "vector-im"; owner = "vector-im";
repo = "element-desktop"; repo = "element-desktop";
rev = "v${version}"; 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"; electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
in in

View file

@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "element-web"; pname = "element-web";
version = "1.8.5"; version = "1.9.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz"; 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 = '' installPhase = ''

View file

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

View file

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

View file

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

View file

@ -1,655 +1,655 @@
{ {
version = "91.1.1"; version = "91.1.2";
sources = [ 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"; locale = "af";
arch = "linux-x86_64"; 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"; locale = "ar";
arch = "linux-x86_64"; 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"; locale = "ast";
arch = "linux-x86_64"; 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"; locale = "be";
arch = "linux-x86_64"; 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"; locale = "bg";
arch = "linux-x86_64"; 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"; locale = "br";
arch = "linux-x86_64"; 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"; locale = "ca";
arch = "linux-x86_64"; 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"; locale = "cak";
arch = "linux-x86_64"; 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"; locale = "cs";
arch = "linux-x86_64"; 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"; locale = "cy";
arch = "linux-x86_64"; 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"; locale = "da";
arch = "linux-x86_64"; 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"; locale = "de";
arch = "linux-x86_64"; 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"; locale = "dsb";
arch = "linux-x86_64"; 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"; locale = "el";
arch = "linux-x86_64"; 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"; locale = "en-CA";
arch = "linux-x86_64"; 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"; locale = "en-GB";
arch = "linux-x86_64"; 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"; locale = "en-US";
arch = "linux-x86_64"; 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"; locale = "es-AR";
arch = "linux-x86_64"; 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"; locale = "es-ES";
arch = "linux-x86_64"; 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"; locale = "et";
arch = "linux-x86_64"; 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"; locale = "eu";
arch = "linux-x86_64"; 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"; locale = "fi";
arch = "linux-x86_64"; 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"; locale = "fr";
arch = "linux-x86_64"; 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"; locale = "fy-NL";
arch = "linux-x86_64"; 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"; locale = "ga-IE";
arch = "linux-x86_64"; 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"; locale = "gd";
arch = "linux-x86_64"; 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"; locale = "gl";
arch = "linux-x86_64"; 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"; locale = "he";
arch = "linux-x86_64"; 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"; locale = "hr";
arch = "linux-x86_64"; 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"; locale = "hsb";
arch = "linux-x86_64"; 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"; locale = "hu";
arch = "linux-x86_64"; 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"; locale = "hy-AM";
arch = "linux-x86_64"; 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"; locale = "id";
arch = "linux-x86_64"; 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"; locale = "is";
arch = "linux-x86_64"; 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"; locale = "it";
arch = "linux-x86_64"; 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"; locale = "ja";
arch = "linux-x86_64"; 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"; locale = "ka";
arch = "linux-x86_64"; 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"; locale = "kab";
arch = "linux-x86_64"; 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"; locale = "kk";
arch = "linux-x86_64"; 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"; locale = "ko";
arch = "linux-x86_64"; 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"; locale = "lt";
arch = "linux-x86_64"; 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"; locale = "lv";
arch = "linux-x86_64"; 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"; locale = "ms";
arch = "linux-x86_64"; 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"; locale = "nb-NO";
arch = "linux-x86_64"; 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"; locale = "nl";
arch = "linux-x86_64"; 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"; locale = "nn-NO";
arch = "linux-x86_64"; 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"; locale = "pa-IN";
arch = "linux-x86_64"; 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"; locale = "pl";
arch = "linux-x86_64"; 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"; locale = "pt-BR";
arch = "linux-x86_64"; 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"; locale = "pt-PT";
arch = "linux-x86_64"; 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"; locale = "rm";
arch = "linux-x86_64"; 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"; locale = "ro";
arch = "linux-x86_64"; 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"; locale = "ru";
arch = "linux-x86_64"; 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"; locale = "sk";
arch = "linux-x86_64"; 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"; locale = "sl";
arch = "linux-x86_64"; 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"; locale = "sq";
arch = "linux-x86_64"; 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"; locale = "sr";
arch = "linux-x86_64"; 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"; locale = "sv-SE";
arch = "linux-x86_64"; 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"; locale = "th";
arch = "linux-x86_64"; 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"; locale = "tr";
arch = "linux-x86_64"; 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"; locale = "uk";
arch = "linux-x86_64"; 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"; locale = "uz";
arch = "linux-x86_64"; 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"; locale = "vi";
arch = "linux-x86_64"; 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"; locale = "zh-CN";
arch = "linux-x86_64"; 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"; locale = "zh-TW";
arch = "linux-x86_64"; 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"; locale = "af";
arch = "linux-i686"; 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"; locale = "ar";
arch = "linux-i686"; 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"; locale = "ast";
arch = "linux-i686"; 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"; locale = "be";
arch = "linux-i686"; 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"; locale = "bg";
arch = "linux-i686"; 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"; locale = "br";
arch = "linux-i686"; 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"; locale = "ca";
arch = "linux-i686"; 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"; locale = "cak";
arch = "linux-i686"; 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"; locale = "cs";
arch = "linux-i686"; 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"; locale = "cy";
arch = "linux-i686"; 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"; locale = "da";
arch = "linux-i686"; 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"; locale = "de";
arch = "linux-i686"; 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"; locale = "dsb";
arch = "linux-i686"; 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"; locale = "el";
arch = "linux-i686"; 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"; locale = "en-CA";
arch = "linux-i686"; 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"; locale = "en-GB";
arch = "linux-i686"; 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"; locale = "en-US";
arch = "linux-i686"; 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"; locale = "es-AR";
arch = "linux-i686"; 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"; locale = "es-ES";
arch = "linux-i686"; 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"; locale = "et";
arch = "linux-i686"; 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"; locale = "eu";
arch = "linux-i686"; 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"; locale = "fi";
arch = "linux-i686"; 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"; locale = "fr";
arch = "linux-i686"; 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"; locale = "fy-NL";
arch = "linux-i686"; 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"; locale = "ga-IE";
arch = "linux-i686"; 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"; locale = "gd";
arch = "linux-i686"; 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"; locale = "gl";
arch = "linux-i686"; 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"; locale = "he";
arch = "linux-i686"; 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"; locale = "hr";
arch = "linux-i686"; 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"; locale = "hsb";
arch = "linux-i686"; 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"; locale = "hu";
arch = "linux-i686"; 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"; locale = "hy-AM";
arch = "linux-i686"; 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"; locale = "id";
arch = "linux-i686"; 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"; locale = "is";
arch = "linux-i686"; 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"; locale = "it";
arch = "linux-i686"; 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"; locale = "ja";
arch = "linux-i686"; 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"; locale = "ka";
arch = "linux-i686"; 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"; locale = "kab";
arch = "linux-i686"; 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"; locale = "kk";
arch = "linux-i686"; 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"; locale = "ko";
arch = "linux-i686"; 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"; locale = "lt";
arch = "linux-i686"; 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"; locale = "lv";
arch = "linux-i686"; 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"; locale = "ms";
arch = "linux-i686"; 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"; locale = "nb-NO";
arch = "linux-i686"; 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"; locale = "nl";
arch = "linux-i686"; 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"; locale = "nn-NO";
arch = "linux-i686"; 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"; locale = "pa-IN";
arch = "linux-i686"; 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"; locale = "pl";
arch = "linux-i686"; 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"; locale = "pt-BR";
arch = "linux-i686"; 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"; locale = "pt-PT";
arch = "linux-i686"; 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"; locale = "rm";
arch = "linux-i686"; 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"; locale = "ro";
arch = "linux-i686"; 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"; locale = "ru";
arch = "linux-i686"; 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"; locale = "sk";
arch = "linux-i686"; 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"; locale = "sl";
arch = "linux-i686"; 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"; locale = "sq";
arch = "linux-i686"; 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"; locale = "sr";
arch = "linux-i686"; 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"; locale = "sv-SE";
arch = "linux-i686"; 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"; locale = "th";
arch = "linux-i686"; 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"; locale = "tr";
arch = "linux-i686"; 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"; locale = "uk";
arch = "linux-i686"; 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"; locale = "uz";
arch = "linux-i686"; 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"; locale = "vi";
arch = "linux-i686"; 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"; locale = "zh-CN";
arch = "linux-i686"; 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"; locale = "zh-TW";
arch = "linux-i686"; arch = "linux-i686";
sha256 = "bb222c6f9c8e5ed7681fa920ff6bb6e9d1262e16efb994dd5976e575e4f54a7c"; sha256 = "13dfa3e7a8b5a69ab9072c21eb22373ff36bd54c9c7c39c3480681bd911043c0";
} }
]; ];
} }

View file

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

View file

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

View file

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

View file

@ -1,52 +1,52 @@
{ { lib
lib, , buildPythonApplication
buildPythonApplication, , substituteAll
substituteAll, , fetchFromGitHub
fetchFromGitHub, , isPy3k
isPy3k, , colorama
colorama, , flask
flask, , flask-httpauth
flask-httpauth, , flask-socketio
flask-socketio, , stem
stem, , psutil
psutil, , pyqt5
pyqt5, , pycrypto
pycrypto, , pynacl
pyside2, , pyside2
pytestCheckHook, , pytestCheckHook
qrcode, , qrcode
qt5, , qt5
requests, , requests
unidecode, , unidecode
tor, , tor
obfs4, , obfs4
}: }:
let let
version = "2.3.3"; version = "2.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "micahflee"; owner = "onionshare";
repo = "onionshare"; repo = "onionshare";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-wU2020RNXlwJ2y9uzcLxIX4EECev1Z9YvNyiBalLj/Y="; sha256 = "sha256-Lclm7mIkaAkQpWcNILTRJtLA43dpiyHtWAeHS2r3+ZQ=";
}; };
meta = with lib; { meta = with lib; {
description = "Securely and anonymously send and receive files"; description = "Securely and anonymously send and receive files";
longDescription = '' longDescription = ''
OnionShare is an open source tool for securely and anonymously sending OnionShare is an open source tool for securely and anonymously sending
and receiving files using Tor onion services. It works by starting a web and receiving files using Tor onion services. It works by starting a web
server directly on your computer and making it accessible as an server directly on your computer and making it accessible as an
unguessable Tor web address that others can load in Tor Browser to 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 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, setting up a separate server, using a third party file-sharing service,
or even logging into an account. or even logging into an account.
Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly Unlike services like email, Google Drive, DropBox, WeTransfer, or nearly
any other way people typically send files to each other, when you use 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 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 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 (like pasting it in an encrypted messaging app), no one but you and the
person you're sharing with can access the files. person you're sharing with can access the files.
''; '';
homepage = "https://onionshare.org/"; homepage = "https://onionshare.org/";
@ -54,8 +54,19 @@ let
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ lourkeur ]; 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 { onionshare = buildPythonApplication {
pname = "onionshare-cli"; pname = "onionshare-cli";
inherit version meta; inherit version meta;
@ -74,9 +85,10 @@ in rec {
flask flask
flask-httpauth flask-httpauth
flask-socketio flask-socketio
stem stem'
psutil psutil
pycrypto pycrypto
pynacl
requests requests
unidecode unidecode
]; ];
@ -98,6 +110,7 @@ in rec {
disabledTests = [ disabledTests = [
"test_firefox_like_behavior" "test_firefox_like_behavior"
"test_if_unmodified_since" "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/nameservice>
include <abstractions/ssl_certs> include <abstractions/ssl_certs>
include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([ include "${apparmorRulesFromClosure { name = "transmission-daemon"; } ([
curl libevent openssl pcre zlib curl libevent openssl pcre zlib libnatpmp miniupnpc
] ++ lib.optionals enableSystemd [ systemd ] ] ++ lib.optionals enableSystemd [ systemd ]
++ lib.optionals stdenv.isLinux [ inotify-tools ] ++ lib.optionals stdenv.isLinux [ inotify-tools ]
)}" )}"
@ -116,6 +116,7 @@ in stdenv.mkDerivation {
''; '';
passthru.tests = { passthru.tests = {
apparmor = nixosTests.transmission; # starts the service with apparmor enabled
smoke-test = nixosTests.bittorrent; smoke-test = nixosTests.bittorrent;
}; };

View file

@ -26,13 +26,13 @@
let let
pname = "pcloud"; pname = "pcloud";
version = "1.9.5"; version = "1.9.7";
code = "XZy4VwXZjkvoMGM3x6kCTkIGLFYVKjqKbefX"; code = "XZ0FAtXZNxFJbda6KhLejU9tKAg4N0TEqx3V";
# Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive # Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
src = fetchzip { src = fetchzip {
url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${pname}-${version}.zip"; 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 { appimageContents = appimageTools.extractType2 {

View file

@ -147,10 +147,6 @@ stdenv.mkDerivation rec {
ln -s $out/share/desktopeditors/DesktopEditors $out/bin/DesktopEditors 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 \ substituteInPlace $out/share/applications/onlyoffice-desktopeditors.desktop \
--replace "/usr/bin/onlyoffice-desktopeditor" "$out/bin/DesktopEditor" --replace "/usr/bin/onlyoffice-desktopeditor" "$out/bin/DesktopEditor"
@ -158,7 +154,13 @@ stdenv.mkDerivation rec {
''; '';
preFixup = '' 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; passthru.updateScript = ./update.sh;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
}; };
installPhase = '' installPhase = ''
mkdir -p $out/lib/node_modules/three mkdir -p "$out/lib/node_modules/three/"
cp -r build version $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